diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000000000000000000000000000000000000..622858bcc78d890db16ca835760daad64592833d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,41 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: bug
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - PHP: [ php 5.6 ]
+ - PHP provenance: [original Debian] 
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
+
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 92a0ebf3169c8fc1206491481e5290da74a83e58..23ce5faf91176bf07e5b2012cc50c4464eca63e0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,8 +1,89 @@
-# Specify docker image
-image: debian:stretch
-
 stages:
+  - lint
+  - codestyle
+  - transifex
   - tarballs
+  - trigger
+
+## Stage lint
+
+# PHP lint (stretch)
+create_php_lint_rapport:
+  image: registry.fusiondirectory.org/fusiondirectory/fd/phpcodesniffer-cli:buster
+  stage: lint
+  only:
+    - branches
+  script:
+    - find . -type f -name '*.php' -o -name '*.inc' -print0 | xargs -0 -n1 php -l
+
+## Stage codestyle
+
+# PHP codesniffer
+create_php_code_sniffer_rapport:
+  image: registry.fusiondirectory.org/fusiondirectory/fd/phpcodesniffer-cli:buster
+  stage: codestyle
+  only:
+    - branches
+  script:
+    - test -d ../dev-tools/ && rm -Rf ../dev-tools/
+    - git clone --depth 1 https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
+    - find . -type f -name '*.php' -o -name '*.inc' > ./filelist
+    - /root/.composer/vendor/bin/phpcs --standard=../dev-tools/php-codesniffer-rules/FDStandard/ruleset.xml --file-list=./filelist
+    - /root/.composer/vendor/bin/phpcs --config-set installed_paths /PHPCompatibility,/PHPCSUtils
+    - /root/.composer/vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion $PHP_COMPATIBILITY --file-list=./filelist
+
+# phpstan
+create_phpstan_rapport:
+  image: registry.fusiondirectory.org/fusiondirectory/fd/phpstan-cli:buster
+  stage: codestyle
+  only:
+    - branches
+  script:
+    - test -d ../dev-tools/ && rm -Rf ../dev-tools/
+    - git clone --depth 1 https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
+    - composer global require phpstan/phpstan=0.12.94
+    - cp ../dev-tools/phpstan/fusiondirectory/1.4-dev/*.neon .
+    - /root/.composer/vendor/bin/phpstan analyse -c phpstan.neon
+
+# fusiondirectory-update-locale
+fusiondirectory-update-locale:
+  image: registry.fusiondirectory.org/fusiondirectory/fd/transifex-cli:buster
+  stage: transifex
+  only:
+    - /^1.*$/
+  script:
+    - test -d ../dev-tools/ && rm -Rf ../dev-tools/
+    - git clone --depth 1 https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
+    - ../dev-tools/locale-scripts/fusiondirectory-update-locale -g
+
+# Update transifex
+update-transifex:
+  image: registry.fusiondirectory.org/fusiondirectory/fd/transifex-cli:buster
+  stage: transifex
+  only:
+    - /^1.*$/
+  script:
+    - test -d ../dev-tools/ && rm -Rf ../dev-tools/
+    - git clone --depth 1 https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
+    - echo $'[https://www.transifex.com]\nrest_hostname = '"$TRANSIFEX_REST_HOSTNAME"$'\nusername = '"$TRANSIFEX_USER"$'\ntoken = '"$TRANSIFEX_TOKEN"$'\n' > ~/.transifexrc
+    - tx pull -a -f
+    - ../dev-tools/locale-scripts/fusiondirectory-update-locale -g
+    - tx push -s -t --skip
+
+build-tarballs:
+  stage: tarballs
+  only:
+    variables:
+    - $TARBALLS_TRIGGER_VERSION
+  script:
+    - mkdir ../fusiondirectory-$VERSION/
+    - mv ./* ../fusiondirectory-$VERSION/
+    - mv  ../fusiondirectory-$VERSION/ ./
+    - tar -cvzf fusiondirectory-$VERSION.tar.gz *
+  artifacts:
+    paths:
+      - fusiondirectory-$VERSION.tar.gz
+    expire_in: 30d
 
 build-release:
   stage: tarballs
@@ -17,3 +98,18 @@ build-release:
   artifacts:
     paths:
       - ./*.tar.gz
+
+trigger-plugins:
+  variables:
+    GROUP: $GROUP
+    BRANCH_CORE: $CI_COMMIT_REF_NAME
+    BRANCH_PLUGIN: $CI_COMMIT_REF_NAME
+    BRANCH_BUILD_DEBIAN_BUSTER: $BRANCH_BUILD_DEBIAN_BUSTER
+    BRANCH_BUILD_CENTOS_7: $BRANCH_BUILD_CENTOS_7
+  stage: trigger
+  only:
+    - 1.4-dev
+  trigger:
+    project: fusiondirectory/fd-plugins
+    branch: $CI_COMMIT_REF_NAME
+
diff --git a/.tx/config b/.tx/config
index 146bdd3d65af651ff56f22f4a45f283f0497369c..9e8f89d18cbfe3883f46e0353703ed2486fda91b 100644
--- a/.tx/config
+++ b/.tx/config
@@ -1,8 +1,7 @@
 [main]
 host = https://www.transifex.com
-type = PO
 
-[FusionDirectory-13.core]
+[o:fusiondirectory:p:FusionDirectory-14:r:core]
 file_filter = locale/<lang>/fusiondirectory.po
 source_file = locale/en/fusiondirectory.po
 source_lang = en
diff --git a/AUTHORS.md b/AUTHORS.md
index abeb3421ac9bf7cf72865a00924a81d276cba7a9..d9bb113f5aae8359816c637c2bb8f6fc0a15a8a8 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -83,6 +83,7 @@ documentation and additional help.
   First version of the quota plugin
   First version of the supann plugin
   First version of the board plugin
+  Plugin Manager
 
 * Leonid Bogdanov <leonid_bogdanov@mail.ru>
   patch for the manager fonctionnality in the General user tab
@@ -235,3 +236,12 @@ documentation and additional help.
   Security Audit of FusionDirectory
   Cross-Site Scripting (XSS)
   Improper session handling
+
+* Froger Soisik <soisik.froger@gmail.com>
+  Dynamic group tab support
+
+* Clement Oudot <clement.oudot@worteks.com>
+  Plugin NextCloud
+
+* Matthew Newton <matthew.newton@networkradius.com>
+  EpochDays attributes as human readable    
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 980c8af627b5c6def45f65bc7b9792b921fd4b06..3fb9676ecce0a6f6cd4e5d9c5f90146dd9182958 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -114,8 +114,8 @@ Fill out the **Contribution** template to create thoses issues, the information
 * **Provide a step-by-step description of the contribution** in as many details as possible.
 * **Include screenshots and animated GIFs** which help you demonstrate what this contribution is about. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.
 * **Explain why this contribution would be useful** to most FusionDirectory users.
-* **Follow the** [Coding style](https://fusiondirectory-developer-documentation.readthedocs.io/en/latest/coding/codingstandards.html)
-* **Use our** `PHP CodeSniffer <http://pear.php.net/package/PHP_CodeSniffer>`_ rules to check code compliance [CodeSniffer](https://fusiondirectory-developer-documentation.readthedocs.io/en/latest/coding/codingstandards.html#checking-standards)
+* **Follow the** [Coding style](https://fusiondirectory-developer-documentation.readthedocs.io/en/1.4/fusiondirectory/coding/codingstandards.html)
+* **Use our** `PHP CodeSniffer <http://pear.php.net/package/PHP_CodeSniffer>`_ rules to check code compliance [CodeSniffer](https://fusiondirectory-developer-documentation.readthedocs.io/en/1.4/fusiondirectory/coding/codingstandards.html)
 
 ## Coding with style
 
@@ -165,7 +165,7 @@ Where type can be :
 Examples:
 
 ```
-:sparkles: feat(supann): Make supannRefId multivaluated
+:sparkles: feat(supann): Make supannRefId multivalued
 
 supannRefId on Structure object is too small and mono valued
 
@@ -174,7 +174,7 @@ close #5685
 
 ### PHP style Guide
 
-To be sure to respect our guidelines, read [Coding standards](https://fusiondirectory-developer-documentation.readthedocs.io/en/latest/coding/index.html)
+To be sure to respect our guidelines, read [Coding standards](https://fusiondirectory-developer-documentation.readthedocs.io/en/1.4/fusiondirectory/coding/codingstandards.html)
 
 ## Licensing
 
diff --git a/Changelog.md b/Changelog.md
index 4609da665a4c94ff80bf2f8de70cd34a74ff1daf..b785d6c4d023631f15e22e4f742c97fabe337620 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,415 @@
+## %"FusionDirectory 1.4" - 2023-05-02
+
+### Added
+
+#### fusiondirectory
+- fd#1208 Columns selection
+- fd#2895 Add support for paginating ldap result in setup
+- fd#3710 Support users with no password
+- fd#4736 Ability to use custom LDAP filter in objects lists
+- fd#5531 Give ACL based on an LDAP filter
+- fd#5533 Columns modification should be saved in LDAP
+- fd#5778 Create a security library for fusiondirectory
+- fd#5779 Add support for U2F fido standard
+- fd#5785 Alphabetically list user groups on the user edit page.
+- fd#5804 add users to Posix group : ability to filter posix users in users list
+- fd#5859 Exceptions and Errors should be displayed in a better way
+- fd#5867 Fields searched for by text filter should be provided by tabs
+- fd#5886 Support disabling specific password methods
+- fd#5900 Add a class for dialog buttons
+- fd#5903 Ease template fields filling from LDAP values
+- fd#5905 add a placeholder to have the first letter in upper case and the others in minor case
+- fd#5908 Date field should have a start date parameter
+- fd#5910 Use more HTML5 input types
+- fd#5925 Add option for hooks to know which attributes were modified
+- fd#5966 Management configuration system
+- fd#5970 Allow plugins to easily take part in the user locking process
+- fd#5976 icons missing in filter selections in core
+- fd#5979 Samba and FD
+- fd#5980 Management should be a bit more flexible
+- fd#5986 Add a reinitialisation button for the management configuration
+- fd#5999 Allow ObjectsAttribute instances to specify filter elements
+- fd#6001 Show a warning when password is about to expire through ppolicy
+- fd#6025 Handling of booleans in CSV import
+- fd#6036 hooks page not showing the field when we are not clicking on edit
+- fd#6039 %askme% is not available in SelectAttribute at template creation
+- fd#6042 LDAP trace level should add DEBUG messages for all LDAP operations
+- fd#6046 Add a security tab on users
+- fd#6049 Add a configuration option for jpegPhoto resizing
+- fd#6051 Check locale availability upon configuration save
+- fd#6053 Add support for initials LDAP field on users
+- fd#6057 Methods for getting current URL and host would be useful
+- fd#6059 Enable TOTP second factor
+- fd#6060 Add b64 option to objects::ls
+- fd#6062 Add an option in fusiondirectory-setup to remove old SupAnn root information
+- fd#6065 Possibility to see debug in server logs instead of the interface
+- fd#6074 add an option to pause trigger aka keep the configuration but not run it
+- fd#6081 HiddenArrayAttribute cause problems when indexes are not contiguous
+- fd#6084 Extend the listing possibility
+- fd#6089 add an option to migrate the ip and mac adress to the new interface format into fusiondirectory-setup
+- fd#6093 Read fdPpolicyDefaultDn option instead of fdPpolicyDefaultCn
+- fd#6102 Add a modifier for incremental number
+- fd#6105 Add option ldif-wrap=no in class_ldap.inc
+- fd#6119 Add core features for Archive plugin
+- fd#6124 Rewrite fusiondirectory-setup cli tool in PHP
+- fd#6125 add an option to output clear password when we use --encrypt-passwords
+- fd#6128 Rewrite fusiondirectory-insert-schema based on ldap-config-manager
+- fd#6145 We need a modifier to generate valid uids
+- fd#6150 Add a configuration option to enable CAS verbose mode
+- fd#6169 Issue a warning if sizelimit or number of entries is higher than max_input_vars PHP ini setting
+- fd#6181 GivenName mandatory in FusionDirectory for the user but not mandatory in openldap schema
+- fd#6196 Improve contribution by adding a simple way to add / delete plugin
+- fd#6202 Creation of new Class - Mail Template Object - Standard
+- fd#6207 Creation of new Class - Tasks Object - standard
+- fd#6231 [Tasks-Dashboard] - Develop a new dashboard for tasks to allow granular status report on sub-tasks
+- fd#6241 [Icons] Proper icons for tasks - task dashboard - mail template
+
+#### fusiondirectory-plugins
+- fd-plugins#2912 the autofs plugin should be updated to support autofs5
+- fd-plugins#3632 DHCP sorting hosts by name or IP or HWaddr
+- fd-plugins#5809 Add an option to send a text to the user and manager when the account is effectively locked
+- fd-plugins#5838 Create a form plugin
+- fd-plugins#5850 Create an invitations plugin
+- fd-plugins#5867 Set title in public-forms and invitations external pages
+- fd-plugins#5878 Create icons for the new plugins invitations and public forms
+- fd-plugins#5879 Add a TOS checkbox feature in forms
+- fd-plugins#5880 Templates are needed on Supann structures
+- fd-plugins#5906 Support Supann 2018
+- fd-plugins#5907 SupAnn 2018 account life cycle
+- fd-plugins#5924 Add a REST-like API to webservice
+- fd-plugins#5931 create an icon for supann status in the user list
+- fd-plugins#5934 Add support for supannRessourceEtatDate in user-reminder
+- fd-plugins#5936 icons missing in filter selections
+- fd-plugins#5954 Add a helper for user locking handling through REST API
+- fd-plugins#5955 Add recovery features to REST API
+- fd-plugins#5964 Webservice should check account expiration
+- fd-plugins#5998 Create a plugin to store the Intranet Mail Routing
+- fd-plugins#6001 Add a captcha system to our public form system
+- fd-plugins#6002 Add support for the supannGroupe objectClass and its attributes
+- fd-plugins#6010 Improve security audit
+- fd-plugins#6013 Add plugin for WebAuthn
+- fd-plugins#6014 Server error when requestion jpegPhoto attribute in REST search request
+- fd-plugins#6015 Add support for SupAnn CMS (Carte Multi Service)
+- fd-plugins#6019 Add recovery code when we add a yubikey
+- fd-plugins#6020 Adding OTP codes to the 2FA methods
+- fd-plugins#6021 Show the form URL in edit mode
+- fd-plugins#6024 SupAnn 2018 second revision new schema, lists and fields
+- fd-plugins#6025 Add support for supannConsentement
+- fd-plugins#6040 make an ipam plugin
+- fd-plugins#6042 move cyrus mail option to a cyrus config tab
+- fd-plugins#6043 add supannParrainDN attribute in the supann plugin
+- fd-plugins#6049 Add CAA record support in DNS plugin
+- fd-plugins#6050 Review interface for SupAnn affectation, role and subscription
+- fd-plugins#6052 add rfc2307bis.schema into mixed groups plugin
+- fd-plugins#6053 Cloud plugin (OwnCloud/NextCloud)
+- fd-plugins#6062 Plugin for groupOfURLs support
+- fd-plugins#6069 Add an option to disable wrapping of LDIF export
+- fd-plugins#6075 Add an archival plugin to fusiondirectory
+- fd-plugins#6083 add template support to the alias plugin
+- fd-plugins#6085 Add several social handlers (Personal plugin)
+- fd-plugins#6088 Archive action is not available through webservice
+- fd-plugins#6089 make a zimbra mail plugin
+- fd-plugins#6093 we need a basic plugin for schac attributes
+- fd-plugins#6099 Add subscription plugin
+- fd-plugins#6109 Allow custom tags for supannMailPrive, supannTelephonePrive, supannAdressePostalePrivee
+- fd-plugins#6111 Add support for FranceConnect SupAnn attributes
+- fd-plugins#6112 Allow hiding supann tabs
+- fd-plugins#6115 Create a plugin to store status of mail protection in mailinblack
+- fd-plugins#6150 Create a ldapmanager tab on objects that let export the object easily in LDIF (one and subtree)
+- fd-plugins#6174 [supannEx] - Add new field eduPersonUniqueId within supannEx
+- fd-plugins#6175 [supannEx] - Add new field supannCodePopulation within supannEx
+- fd-plugins#6187 [Enhancement] - User Reference - Add mailAliasDistribution & mailAliasRedirection within reference tab
+- fd-plugins#6196 [Partage-Renater] - getAccount method - Proper account updates
+- fd-plugins#6197 [Partage-Renater] - Configuration tab for partage - mailbox deletion options
+- fd-plugins#6199 [Renater-Partage] - Management of access token received by the API
+- fd-plugins#6206 [Plugins] - A tool is required in order to generate a yaml properly with related plugin information.
+- fd-plugins#6214 [Subscriptions] - Adds proper icons to the icons folder.
+- fd-plugins#6220 [Webauthn] - Create one file named variables_webauthn allowing the load all requirements - helping patching for supported distributions
+- fd-plugins#6226 [Public-form] - Updates plugin in order to be fully compatible with securimage library
+
+### Changed
+
+#### fusiondirectory
+- fd#4866 Could the list displayed by fusiondirectory be sorted
+- fd#5039 acl_base management should be refactored
+- fd#5135 Management refactor (and filter enhancement)
+- fd#5721 Support Unicode in FD fields
+- fd#5827 Use the new features from PHP 5.6
+- fd#5833 Management tab footer should be in a smarty template
+- fd#5852 Convert breezy CSS to LESS code
+- fd#5854 Improve stand-alone page support
+- fd#5858 Review FD UI for disabled fields
+- fd#5866 Template filter should work as any type filter
+- fd#5924 Add a parameter in objects::link to return text without link
+- fd#5931 Use date HTML5 input type for DateAttribute
+- fd#5937 Hooks should be moved to a config tab
+- fd#5951 main.inc files should not be needed.
+- fd#5954 Unicity should be set explicitely
+- fd#5955 Use PHP7 array syntax
+- fd#5956 Use strict typing
+- fd#5965 Use only selectManagement for selection dialogs
+- fd#5971 Reorder tabs in the configuration to be more logical
+- fd#5973 Clean attributes var in columns
+- fd#5977 Special hook attrs are not available to other tabs
+- fd#5989 Do not set charset when content-type is not text/* in HTTP headers
+- fd#5996 Recovery system needs to give some access to webservice
+- fd#6002 Bump PHP_MIN_VERSION to PHP 7
+- fd#6052 Manage password with the webservice
+- fd#6018 Use autocomplete="new-password" for PasswordAttribute
+- fd#6037 rename hooks into triggers
+- fd#6040 Make the --install-plugins more friendly
+- fd#6047 Improve invalid value messages
+- fd#6068 Triggers should not show the command on script error
+- fd#6069 Change the css of the alert box to be more in line with the breezy theme
+- fd#6071 Rework the error system
+- fd#6072 Review dialog classes
+- fd#6077 Split tab list load and render
+- fd#6083 Improve ObjectsAttribute
+- fd#6106 Adapt core code to ease systems interfaces
+- fd#6120 Cleanup lock system
+- fd#6166 Refactor multiPlugin
+- fd#6170 When showing an internal exception not enough detail is shown
+- fd#6172 Improve SI error render
+- fd#6191 Bump minimum version to PHP 7.3 for 1.4
+- fd#6266 CAS library 1.6 need a new parameter
+- fd#6267 [Core] - Update the reference from our old tools naming convention to the new ones.
+- fd#6268 change the path in the apache configuration to point to /usr/share/fusiondirectory directly
+
+#### fusiondirectory-plugins
+- fd-plugins#3360 update class_sieve.inc to the latest version 0.1.0
+- fd-plugins#5776 Openldap Project update ppolicy schema
+- fd-plugins#5795 Using the TXT record for SPF and DKIM is not easy
+- fd-plugins#5820 Use the new features from PHP 5.6
+- fd-plugins#5826 Adapt the code to core changes
+- fd-plugins#5860 DHCP there is no sorting in dropdown about DHCP subnets.
+- fd-plugins#5865 Set server optional in mail plugin for groups
+- fd-plugins#5871 Adapt code to DateAttribute changes
+- fd-plugins#5877 Altered and provided attributes should be editable
+- fd-plugins#5914 Migrate plugins to new management class
+- fd-plugins#5921 Use strict typing
+- fd-plugins#5925 Use PHP array short hand syntax
+- fd-plugins#5927 Adapt plugins code to DateAttribute modifications
+- fd-plugins#5930 Move complex plugins configurations to their own tab
+- fd-plugins#5933 Reorder configuration tabs
+- fd-plugins#5937 Move away from simpleSelectManagement and associated attributes
+- fd-plugins#5989 Remove dependency on POSIX when using Samba4
+- fd-plugins#5946 Show description instead of supannCodeEntite in the entities dropdowns
+- fd-plugins#5952 Audit minimum date filter should default to current day
+- fd-plugins#5967 Support unicode in fdNickName
+- fd-plugins#5975 Adapt plugins code to department cache refactor
+- fd-plugins#5977 Adapt plugins code to acl_base refactor
+- fd-plugins#5987 Review FD UI for disabled fields
+- fd-plugins#5990 supannEtablissement field should be multivaluated
+- fd-plugins#6007 Migrate FAI plugin to selectManagement
+- fd-plugins#6026 Root establishment is not handled correctly
+- fd-plugins#6032 SupAnn diploma SISE select has too many options
+- fd-plugins#6036 Webservice does not allow search on own dn with self ACLs
+- fd-plugins#6039 update the system plugin
+- fd-plugins#6041 sort alphabeticaly the type of object in the developper plugin
+- fd-plugins#6044 Error when creating entry if default password policy is not directly in ou=ppolicies,dc=domain,dc=tld
+- fd-plugins#6059 $displayHeader should be protected
+- fd-plugins#6071 Adapt plugins code to dialog classes refactor
+- fd-plugins#6077 Adapt plugins code to Lock refactor
+- fd-plugins#6096 SupAnn Status tab should appear as «edit own info»
+- fd-plugins#6117 Latest FAI test showed that default "aptitude" install method didn't work
+- fd-plugins#6154 Cannot select date before today in supannRessourceEtatDate
+- fd-plugins#6217 [Plugins] - Update the reference from our old tools naming convention to the new ones.
+
+### Removed
+
+#### fusiondirectory
+- fd#6045 Remove simpleSelectManagement and simpleManagement
+- fd#6094 Moving rfc2307bis.schema in mixedgroup
+- fd#6101 Remove _OLD_TEMPLATES_ macro and related code
+- fd#6153 Remove samba domain caching from core
+- fd#6254 [Core] - Remove fusiondirectory-insert-schema written in Perl from the branch.
+- fd#6255 [Manpages] - Removes Perl manpages from Core
+
+#### fusiondirectory-plugins
+- fd-plugins#5980 removing puppert plugin from 1.4-dev
+- fd-plugins#5981 remove nagios plugin from 1.4-dev
+- fd-plugins#5982 remove pop3 service from basic service in mail plugin
+- fd-plugins#5983 remove the fusiondirectory-shell
+- fd-plugins#5984 Remove the squid plugin from 1.4-dev
+- fd-plugins#6003 some attributes are no longer used in plugin mail and should be marqued obsolete in the mail-fd.schema
+- fd-plugins#6005 Remove set_object_info call
+- fd-plugins#6060 remove the freeradius schema from our sources
+
+### Fixed
+
+#### fusiondirectory
+- fd#5177 dans groupes et role, rajouter une icon de propriétée du groupe
+- fd#5349 In select management classes the link should not end selection for multi-selection
+- fd#5536 When a SelectAttribute is in a SetAttribute it should hide existing values
+- fd#5563 Filter for mail groups only filter with posixGroup
+- fd#5715 Snapshots are not typed, and no check is done when restoring
+- fd#5751 Add the action to use a template in group and roles section
+- fd#5754 No defined variables in hook SnapshotCreateDialog
+- fd#5818 Groups of groups dynamic tab support
+- fd#5831 Fix sonar problems
+- fd#5856 Cannot create departements
+- fd#5880 Error after config step in setup
+- fd#5881 Apply template action is missing
+- fd#5882 Unique value generation in templates is broken
+- fd#5899 Hide empty sections from template creation
+- fd#5907 Error dialogs do not escape HTML from fields
+- fd#5912 simpleManagement filters are not displayed correctly
+- fd#5919 PHP errors in setup
+- fd#5927 When misusing an action, a fatal error is shown
+- fd#5934 Using Apply sends the POST to save_object after reopening
+- fd#5949 Using base scope in ACL does not work as expected
+- fd#5975 Sonar errors in class_dialogAttributes.inc
+- fd#5982 Error if the admin DN is not correct when the setup
+- fd#5984 fusiondirectory-setup --update-cache does not support abstract class
+- fd#5990 We cannot untick the lock in template
+- fd#5992 Support default dates for DateFilterElement
+- fd#5993 objects::ls does not handle correctly template searches with no attributes specified
+- fd#5994 DateAttribute max dates are buggy
+- fd#5998 Error when we configure view to contain only 1 column
+- fd#6000 CRSF token error in setup when migrating departements
+- fd#6008 Crash when locking a user with no password
+- fd#6015 Crash at index.php when we already have a session
+- fd#6019 PHP error when we apply a template
+- fd#6026 PHP error: count(): Parameter must be an array or an object that implements Countable
+- fd#6027 Impossible to use createTimestamp as a column in manager interface
+- fd#6028 Order of classes is wrong in ACL role edition dialog
+- fd#6032 Typos in template masks should be better handled
+- fd#6033 Using enter to submit search filter resets base
+- fd#6034 Applying a template to a user removes the mail tab
+- fd#6035 Template workflow allow an empty SSHA password
+- fd#6043 GenericDialogAttribute::addValue($dn, $entry) should be compatible with DialogOrderedArrayAttribute::addValue($value)
+- fd#6044 OrderedArrayAttribute action images should have formnovalidate attribute
+- fd#6050 SimplePlugin attempts to read CSN from LDAP on dn "new"
+- fd#6054 Sonar code smells
+- fd#6055 The calendar must be replaced by classic fields in template so we can use macros
+- fd#6056 Supann tab in group templates does not accept text values
+- fd#6058 Uncaught Error: Class 'URL' not found
+- fd#6064 Using %d macro returns "Array"
+- fd#6070 Fix quote situation in class_msgPool.inc
+- fd#6073 Error about wrong filename using geticon
+- fd#6076 Fatal error when applying template with no asked fields
+- fd#6075 ACL detection fails for attributes in dynamic tabs
+- fd#6078 Attribute option are not handled correctly by simplePlugin
+- fd#6079 SelectAttribute takes the wrong default value when optional
+- fd#6080 Template fields do not exactly match php-ldap format
+- fd#6085 Exception when an attribute used in a template mask is left empty
+- fd#6087 check function in simpleTabs should be public
+- fd#6088 Logout in cas mode make a redirection error
+- fd#6099 $displayHeader is protected but accessed from outside
+- fd#6100 Group removal workflow from usertab is inconsistent
+- fd#6104 CopyPaste handler does not respect management tabs
+- fd#6107 Search does not work on template
+- fd#6108 the link in the public form is wrong
+- fd#6115 Warning "Array and string offset access syntax with curly braces is deprecated"
+- fd#6116 Warning "Cannot use "parent" when current class scope has no parent"
+- fd#6121 CompositeAttribute attributes have no parent
+- fd#6138 SelectAttribute should also reset postValue in setChoices
+- fd#6141 Error from  BytesSizeAttribute when the field is empty
+- fd#6143 Locks are kept forever
+- fd#6144 Uncaught TypeError: Argument 1 passed to htmlescape() must be of the type string, null given
+- fd#6146 PHP errors on failed login
+- fd#6147 ACL checks for archive and snapshots are wrong
+- fd#6148 labels of subattributes are shown in read-only mode for multivalued CompositeAttributes
+- fd#6149 ACL on search field are not working as expected
+- fd#6151 Management configuration screen is broken for non-admin users
+- fd#6154 Size limit configure screen escapes the new limit field
+- fd#6155 Icon themes can trigger PHP errors
+- fd#6156 After exporting to CSV, button actions export again
+- fd#6157 fix reference to the documentation after moving around fusiondirectory documentationin UPGRADE.md and README.md
+- fd#6159 Tab update is only called on current tab
+- fd#6162 DateAttribute classes should accept LDAP format when set through webservice
+- fd#6163 UserPasswordAttribute does not handle correctly clear method in templates
+- fd#6165 Attempting to remove array values from a multivaluated attribute through the webservice removes all values
+- fd#6171 Class Attribute conflicts with PHP 8 Attribute class
+- fd#6174 The bug report generated email references old demo URL
+- fd#6180 Action names with numbers breaks management
+- fd#6186 Missing html in encrypt-password informations
+- fd#6187 HTML validation errors on user edition page
+- fd#6188 Invalid value in 'ou' for an object type creates PHP errors in unexpected places
+- fd#6210 Updates of Simple Plugin - Call_Hook - variables are not emptied between call.
+- fd#6213 [Objects] - ACL do not take LDAP options into consideration
+- fd#6226 [Bug] - SimplePlugin - Foreign Key attribute value is never found within a SetAttribute definition.
+- fd#6228 [Bug] - SimplePlugin - Foreign Key attribute values are not (always) being updated or deleted.
+- fd#6229 [Core] - ACL cache increases delays upon multiple actions on multiple users.
+- fd#6243 [Tasks] - When updating time-interval spam protection, the attribute lastExecTime is reset
+- fd#6244 SUPANN_DIR not correctly generated
+- fd#6245 Some English language updates and corrections [gitlab #75]
+- fd#6263 [Core] - Adapts core-fd schema to use the same OID for tasks, mailTemplate
+- fd#6264 [Core] - Removes un-required modules from Mail Template and Tasks, such as the Macro plugin.
+- fd#6265 [Core] - Fixes some transifex issues
+
+#### fusiondirectory-plugins
+- fd-plugins#4013 Ppolicy functions that not work
+- fd-plugins#5346 DNS postLdapSave should lock the object modified
+- fd-plugins#5797 Cyrus autocreate folders does not work correctly with virtdomains = on
+- fd-plugins#5985 Using padlock does not set pwdAccountLockedTime and setting pwdAccountLockedTime removes padlock
+- fd-plugins#5875 Submit inputs need formnovalidate attribute
+- fd-plugins#5887 Multivalue support in CSV import is broken
+- fd-plugins#5919 Unicity missing on some SupAnn attributes
+- fd-plugins#5920 Attribute::setUnique should not be called with TRUE
+- fd-plugins#5950 Return value of SocialAccountAttribute::check() must be of the type array
+- fd-plugins#5951 Fix entite_SUPANN labels
+- fd-plugins#5953 Add template handling to REST API
+- fd-plugins#5958 We should be able to select today as start date in SupAnn status
+- fd-plugins#5959 Dropdown for parent entities is always empty in establishments
+- fd-plugins#5960 Adapt servicesManagement to changes in SimpleTab interface
+- fd-plugins#5961 Trying to postpone user give an error
+- fd-plugins#5965 REST API returns empty array instead of empty object
+- fd-plugins#5974 PHP error in invitations plugin
+- fd-plugins#5995 Fatal error: Declaration of argonautQueue::getTabFooter() must be compatible with management::getTabFooter()
+- fd-plugins#5996 CSV import don't see POSIX GROUP templates so we cannot use the CSV to create groups
+- fd-plugins#5999 Activate createTimestamp ACL for SupAnn structures
+- fd-plugins#6004 fai code needs to be adapted to core changes
+- fd-plugins#6008 Removing dns zone not remove the zone for "slave dns"
+- fd-plugins#6011 Find a better way to pass array parameter in REST calls
+- fd-plugins#6016 Sinaps have continue calls targetting switches
+- fd-plugins#6022 Error when we install FD with GPG plugin installed
+- fd-plugins#6030 Copy/pasting FAI partitions with lvm fails
+- fd-plugins#6031 Deleting a zone should remove DNS tab on systems which have only this zone
+- fd-plugins#6033 supannCodeEntite should allow slashes
+- fd-plugins#6034 Handle special values for regimeinsc and sectdisc in supannEtuInscription
+- fd-plugins#6037 Cannot fill dynamic tabs at ogroup creation
+- fd-plugins#6038 Editing SupAnn Status does not work as expected.
+- fd-plugins#6046 SupAnn composite attributes do not remove values when last value is removed
+- fd-plugins#6048 Deprecated fallback was used for supannStructureExt::is_this_account
+- fd-plugins#6054 Crash in FAI plugin
+- fd-plugins#6057 Use  BytesSizeAttribute for mail quota
+- fd-plugins#6061 Adapt plugins code to changes on error system
+- fd-plugins#6067 Some plugins build search filters with empty values
+- fd-plugins#6082 Webservice does not seem to check lock on objects
+- fd-plugins#6084 CodeSniffer 3 is complaining
+- fd-plugins#6090 Error while searching DNS Zone 'ARRAY(0x2e3efa0).' :Bad filter at /usr/share/perl5/Argonaut/Libraries/Ldap2zone.pm line 202
+- fd-plugins#6091 Webservice should not return invalid JSON even when hitting a fatal error
+- fd-plugins#6092 Uncaught TypeError: Argument 1 passed to htmlescape() must be of the type string, null given
+- fd-plugins#6094 PHP error "A non-numeric value encountered" in samba tab on templates
+- fd-plugins#6095 Archive ACL is wrong on management action
+- fd-plugins#6097 SupAnn subscription section smarty template is outdated
+- fd-plugins#6105 fix reference to the documentation after moving around fusiondirectory documentationin UPGRADE.md and README.md
+- fd-plugins#6106 import OPSI workstation didn't create the new fdNetwork Object
+- fd-plugins#6107 an existing hash for sambaNTPassword is removed and replaced by a default hash when th samba tab is added to an existong account with posix enabled
+- fd-plugins#6108 PHP error when using askme in SupannCursusAnneeAttribute
+- fd-plugins#6110 Webservice behavior is dependent of tab order in JSON
+- fd-plugins#6114 Getting fields through webservice on configuration plugins tab returns no fields
+- fd-plugins#6118 Editing a FaiTemplate that contains an entry make errors
+- fd-plugins#6121 Adapt code to Attribute class renaming
+- fd-plugins#6123 the error message is filled with &nbsp in argonaut error message
+- fd-plugins#6124 Cannot refresh DNS zone if argonaut client tab is inherited
+- fd-plugins#6126 Some webservice actions only works on simplePlugin classes
+- fd-plugins#6127 change the wording of "CN of the certificate" in the argonaut plugin because it confuse people
+- fd-plugins#6130 Call to undefined method MacsAttribute::getSelectManagementParameters()
+- fd-plugins#6131 Argonaut task can be launched without ACL rights
+- fd-plugins#6132 the ping send from the action menu said that the systems are always off
+- fd-plugins#6138 uidNumber/gidNumber doesn't work when we use the webservice and a template
+- fd-plugins#6140 PHP errors in DHCP plugin
+- fd-plugins#6143 Setting interfaces through webservice is misbehaving
+- fd-plugins#6155 Force gidNumber in posixgroup doesn't work when create from a template
+- fd-plugins#6156 Not possible to set host trustmode to another value of disabled in a template
+- fd-plugins#6157 Start & End date - verification required - supannRessourceEtatDate
+- fd-plugins#6159 Uniformization required for attributes managed by ldap fdTemplate within Posix Classes
+- fd-plugins#6202 the behaviour of the samba plugin is not consistent
+- fd-plugins#6218 [Webauthn] - Missing icons for this webauthn plugin
+- fd-plugins#6221 [Audit] - It seems the audit plugin does not load the icons properly
+
 ## %"FusionDirectory 1.3.1" - 2022-09-09
 
 ### Added
@@ -627,7 +1039,7 @@
 - fd#5367 We should remove from setup migration step obsolete stuff
 - fd#5371 PHP error: Only variables should be passed by reference (/usr/share/fusiondirectory/include/functions.inc, line 2538)
 - fd#5372 Small error in breezy/style.css
-- fd#5380 Bad display of multivaluated attributes in listing columns
+- fd#5380 Bad display of multivalued attributes in listing columns
 - fd#5381 s modifier have problems with multibyte strings
 - fd#5385 Several foreignKeys for the same attribute should work
 - fd#5398 Cannot remove a role in groups and roles tabs for a template
@@ -1659,7 +2071,7 @@
 
 #### fusiondirectory-plugins
 - fd-plugins#3960 fusiondirectory-shell cannot cat a user
-- fd-plugins#3962 fusiondirectory-shell should handle multivaluated attributes properly
+- fd-plugins#3962 fusiondirectory-shell should handle multivalued attributes properly
 
 ## %"FusionDirectory 1.0.8.8" - 2015-07-01
 
diff --git a/README.md b/README.md
index 041aad2a17af31bee9c7aa3cc599ddc66d12bab1..7d811265a1dcbdd94c56c1b858ce95ce2c9c40e3 100644
--- a/README.md
+++ b/README.md
@@ -114,7 +114,7 @@ If you like us and want to send us a small contribution you can use the followin
 
 [FusionDirectory]: https://www.fusiondirectory.org/
 
-[fusiondirectory-install]: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/fusiondirectory/install/index.html
+[fusiondirectory-install]: https://fusiondirectory-user-manual.readthedocs.io/en/1.4/fusiondirectory/install/index.html
 
 [get help]: https://www.fusiondirectory.org/en/communaute/
 
diff --git a/UPGRADE.md b/UPGRADE.md
index 00faa6d329b9331e354b2d93f8d472cbf7d44ee2..5dbb422a9373887b5b9bb580b82197a5de90c52b 100644
--- a/UPGRADE.md
+++ b/UPGRADE.md
@@ -3261,11 +3261,214 @@ Fonctionality removed
 -   The google+ account storage has been removed from personal social
     accounts tab
 
+# Migrate FusionDirectory from 1.3.1 to 1.4
+
+## New Depot Configuration
+
+Since 1.3.1 the repositories have been cleaned and reorganized please
+update your configuration accordingly
+
+The gpg keys for FusionDirectory and Argonaut have been renewed so you
+need to install the new keys for the packages to install correctly
+
+## Upgrade FusionDirectory first
+
+Upgrade FusionDirectory core package before other ones to avoid
+dependencies errors:
+
+``` shell
+apt-get install fusiondirectory
+```
+
+Upgrade FusionDirectory schema package too.
+
+``` shell
+apt-get install fusiondirectory-schema
+```
+
+## Upgrade of LDAP directory
+
+Then update the core-fd-conf schema.
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/core-fd-conf.schema
+```
+
+Then update the core-fd schema.
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/core-fd.schema
+```
+
+Then update the template-fd schema.
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/template-fd.schema
+```
+
+if you are using the supann-ext plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/supann-ext-fd.schema
+```
+
+if you are using the systems plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/systems-fd.schema
+```
+
+if you are using the supann plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/internet2.schema
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/supann-fd-conf.schema
+```
+
+if you are using the ppolicy plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/ppolicy-fd-conf.schema
+```
+
+if you are using the audit plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/audit-fd.schema
+```
+
+if you are using the dns plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/dnszone.schema
+```
+
+if you are using the samba plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/samba-fd-conf.schema
+```
+
+if you are using the user-reminder plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/user-reminder-fd-conf.schema
+```
+
+if you are using the fusioninventory plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/inventory-fd.schema
+```
+
+if you are using the mail plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/mail-fd.schema
+```
+
+if you are using the cyrus plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/cyrus-fd.schema
+```
+
+if you are using the renater-partage plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/renater-partage-fd.schema
+```
+
+if you are using the personal plugin you have to update is schema
+
+``` shell
+fusiondirectory-schema-manager --replace-schema /etc/ldap/schema/fusiondirectory/personal-fd.schema 
+```
+
+## Check for deprecated attributes and objectClasses in your LDAP
+
+-   **fusiondirectory-configuration-manager \--list-deprecated** to list
+    deprecated attributes and objectclasses
+
+Deprecated attributes:
+
+``` shell
+fusiondirectory-migration-manager --list-deprecated List deprecated attributes and objectclasses Deprecated attributes:
+
+ argonautLdap2zoneAllowNotify   (Fusion Directory - Argonaut, allow notify.)                    - 1.3.6.1.4.1.38414.2.13.2
+ fdHttpAuthActivated            (FusionDirectory - HTTP Basic Auth activation)                  - 1.3.6.1.4.1.38414.8.15.6
+ fdHttpHeaderAuthActivated      (FusionDirectory - HTTP Header Auth activation)                 - 1.3.6.1.4.1.38414.8.15.7
+ fdCasActivated                 (FusionDirectory - CAS activation)                              - 1.3.6.1.4.1.38414.8.21.1
+ gotoLogonScript                (GOto - specifies a LogonScript)                                - 1.3.6.1.4.1.10098.1.1.11.10
+ gosaDefaultPrinter             (Defines a default printer a user owns)                         - 1.3.6.1.4.1.10098.1.1.12.13
+ gotoHotplugDevice              (GOto - keeps hotplug devices)                                  - 1.3.6.1.4.1.10098.1.1.11.14
+ gotoHotplugDeviceDN            (GOto - points to hotplug devices)                              - 1.3.6.1.4.1.10098.1.1.11.18
+ gotoLogoffScript               (GOto - specifies a LogoffScript)                               - 1.3.6.1.4.1.10098.1.1.11.19
+ gotoSyslogServer               (GOto - Gonicus Terminal Concept, value syslogServer.)          - 1.3.6.1.4.1.10098.1.1.1.1
+ gotoMode                       (GOto - Gonicus Terminal Concept, Terminal is active.)          - 1.3.6.1.4.1.10098.1.1.1.24
+ gotoLdapServer                 (LDAP server to use)                                            - 1.3.6.1.4.1.10098.1.1.1.38
+ gosaMailMaxSize                (Block mails bigger than this value)                            - 1.3.6.1.4.1.10098.1.1.12.8
+ gosaSpamSortLevel              (Spamassassins hits)                                            - 1.3.6.1.4.1.10098.1.1.12.9
+ gosaSpamMailbox                (Where to put spam)                                             - 1.3.6.1.4.1.10098.1.1.12.10
+```
+
+Deprecated objectClasses:
+
+``` shell
+goServer                       (Server description)                                            - 1.3.6.1.4.1.10098.1.2.1.27
+fdAsteriskPluginConf           (FusionDirectory asterisk plugin configuration)                 - 1.3.6.1.4.1.38414.19.2.1
+gotoTerminal                   (GOto - Gonicus Terminal Concept, objectclass)                  - 1.3.6.1.4.1.10098.1.2.1.1
+gotoWorkstation                (GOto - Gonicus Terminal Concept, objectclass)                  - 1.3.6.1.4.1.10098.1.2.1.30
+gotoPrinter                    (GOto - Gonicus Terminal Concept, objectclass)                  - 1.3.6.1.4.1.10098.1.2.1.31
+gotoEnvironment                (GOto - contains environment settings)                          - 1.3.6.1.4.1.10098.1.2.1.32
+gotoWorkstationTemplate        (GOto - Gonicus Terminal Concept, objectclass)                  - 1.3.6.1.4.1.10098.1.2.1.34
+gotoTerminalTemplate           (GOto - Gonicus Terminal Concept, objectclass)                  - 1.3.6.1.4.1.10098.1.2.1.35
+gotoDevice                     (GOto - contains environment settings)                          - 1.3.6.1.4.1.10098.1.2.1.42
+GOhard                         (Gonicus Hardware definitions, objectclass)                     - 1.3.6.1.4.1.10098.1.2.1.3
+```
+
+-   **fusiondirectory-migration-manager \--check-deprecated** will
+    output a list of dn using old attributes and objectClasses
+
+``` shell
+fusiondirectory-migration-manager --check-deprecated
+ List LDAP entries using deprecated attributes or objectclasses
+ cn=config,ou=fusiondirectory,dc=nodomain contains an obsolete attribute
+```
+
+-   **fusiondirectory-migration-manager \--ldif-deprecated** will output
+    an ldif file on the console that you can use with ldapmodify to
+    clean you ldap server from old attributes.
+
+    If they are old objectClasses it will warn you and you will have to
+    remove it by hand, they have been specified at the
+    **fusiondirectory-migration-manager \--check-deprecated** step.
+
+Please read it carefully before applying !!
+
+## Remove supann root entry
+
+if you where using the a root establishement, you need to remove it, run
+the **fusiondirectory-migration-manager \--remove-supann-root** for this
+
+``` shell
+fusiondirectory-migration-manager --remove-supann-root
+```
+
+## Migrate your interfaces
+
+if you where using the systems plugin, you need to migrate your
+interfaces for this, run the **fusiondirectory-migration-manager
+\--migrate-interfaces** for this
+
+``` shell
+fusiondirectory-migration-manager --migrate-interfaces
+```
 
 
 [php-cas]: http://packages.ubuntu.com/trusty/all/php-cas/download
 
-[repo-urls]: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/fusiondirectory/install/index.html
+[repo-urls]: https://fusiondirectory-user-manual.readthedocs.io/en/1.4/fusiondirectory/install/index.html
 
 ---
 * Further information
@@ -3273,7 +3476,7 @@ Fonctionality removed
 To improve this piece of software, please report all kind of errors using the bug tracker
 on https://gitlab.fusiondirectory.org
 
-Documentation: https://fusiondirectory-user-manual.readthedocs.io/en/1.3/index.html
+Documentation: https://fusiondirectory-user-manual.readthedocs.io/en/1.4/index.html
 Mailinglist:   https://lists.fusiondirectory.org/
 Irc:           #fusiondirectory on libera.chat
 
diff --git a/contrib/apache/fusiondirectory-apache.conf b/contrib/apache/fusiondirectory-apache.conf
index e21275cba60151d27f5f0bda27cf20761b39fd6b..9facd2a9831d2cc734480e894acd461dad9b9c04 100644
--- a/contrib/apache/fusiondirectory-apache.conf
+++ b/contrib/apache/fusiondirectory-apache.conf
@@ -1,8 +1,8 @@
 # Include FusionDirectory to your web service
-Alias /fusiondirectory /var/www/fusiondirectory/html
+Alias /fusiondirectory /usr/share/fusiondirectory/html
 
-<Directory /var/www/fusiondirectory/html>
-# Remove the comment from the line below if you use fusiondirectory-setup --encrypt-passwords
+<Directory /usr/share/fusiondirectory/html>
+# Remove the comment from the line below if you use fusiondirectory-configuration-manager --encrypt-passwords
 #   include /etc/fusiondirectory/fusiondirectory.secrets
 </Directory>
 
diff --git a/contrib/bin/fusiondirectory-insert-schema b/contrib/bin/fusiondirectory-insert-schema
deleted file mode 100644
index d40942de6d68919a386bcfc981ddfbbd113eb151..0000000000000000000000000000000000000000
--- a/contrib/bin/fusiondirectory-insert-schema
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/perl
-
-########################################################################
-#
-# fusiondirectory-insert-schema
-#
-# Manipulate and insert the needed schema into the ldap server
-#
-#  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-#  Copyright (C) 2011-2018  FusionDirectory
-#
-#  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-########################################################################
-
-use strict;
-use warnings;
-
-use 5.008;
-
-my $ldapSchemaManager = 'ldap-schema-manager';
-my $defaultpath       = "/etc/ldap/schema/fusiondirectory/";
-my @defaultschemas    = ("core-fd.schema","core-fd-conf.schema","ldapns.schema","template-fd.schema");
-
-exec (
-  $ldapSchemaManager,
-  '--tool-name', $0,
-  '--default-path', $defaultpath,
-  '--default-schemas', @defaultschemas, '--end',
-  @ARGV
-);
-
-=head1 NAME
-
-fusiondirectory-insert-schema - insert schema needed by FusionDirectory into the ldap server
-
-=head1 SYNOPSIS
-
-fusiondirectory-insert-schema [-y] [-n] [-c] [-o options] [path] [-h|-l|-i schema1 schema2|-m schema1 schema2|-e schema1 schema2]
-
-=head1 DESCRIPTION
-
-This program will insert the schema needed by FusionDirectory into the ldap server, or the specified schemas
-
-
-=head2 Options
-
-=over 6
-
-=item -i
-
-This option insert the given list of schemas instead of the default list
-
-=item -m
-
-This option insert the given list of schemas, replacing already inserted versions of those schemas
-
-=item -e
-
-This option empty the given list of schemas, removing attributes and objectClasses from those.
-This is useful because you cannot delete a schema without restarting slapd.
-
-=item -l
-
-This option list inserted schemas
-
-=item -n
-
-This option will make generated ldifs file to not be deleted after execution. Might be useful to understand errors.
-
-=item -c
-
-This option make the program continue even if an error occur
-
-=item -y
-
-This option answer yes to all questions. The only question right now is the confirmation one when you ask to empty a schema.
-
-=item -o
-
-This option allow you to specify specifics options to give to ldap commands such as ldapmodify,
-but beware that you will not be able to see things like password prompts as the output of these commands is piped.
-
-=back
-
-=head1 EXAMPLES
-
- fusion@catbert$ fusiondirectory-insert-schema
-   Insert the core schemas in your LDAP directory
-
- fusion@catbert$ fusiondirectory-insert-schema -i /etc/ldap/otherschema/myschema.ldif
-   Insert the schema /etc/ldap/otherschema/myschema.ldif
-
- fusion@catbert$ fusiondirectory-insert-schema -i /etc/ldap/otherschema/myschema.schema
-   Convert /etc/ldap/otherschema/myschema.schema to ldif and insert it
-
- fusion@catbert$ fusiondirectory-insert-schema -i myschema
-   Insert the schema myschema.ldif from working directory
-
- fusion@catbert$ fusiondirectory-insert-schema -m /etc/ldap/otherschema/myschema.schema
-   Convert /etc/ldap/otherschema/myschema.schema to ldif and replace the existing schema by this one
-
- fusion@catbert$ fusiondirectory-insert-schema -e myschema
-   Empty the schema myschema
-
- fusion@catbert$ fusiondirectory-insert-schema -o "-H ldap://my.ldap.com -ZZ -D 'cn=admin,cn=config' -w password -x"
-   Connect to another ldap server to insert the schema
-
-=head1 BUGS
-
-Please report any bugs, or post any suggestions, to the fusiondirectory mailing list fusiondirectory-users or to
-<https://gitlab.fusiondirectory.org/fusiondirectory/fd/issues/new>
-
-=head1 AUTHOR
-
-Come Bernigaud
-
-=head1 LICENCE AND COPYRIGHT
-
-This code is part of FusionDirectory <http://www.fusiondirectory.org>
-
-=over 1
-
-=item Copyright (C) 2011-2018 FusionDirectory Project
-
-=back
-
-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.
-
-=cut
diff --git a/contrib/bin/fusiondirectory-setup b/contrib/bin/fusiondirectory-setup
deleted file mode 100644
index 1a94de5acc63987ae03ab52e8520a54aa7048372..0000000000000000000000000000000000000000
--- a/contrib/bin/fusiondirectory-setup
+++ /dev/null
@@ -1,2119 +0,0 @@
-#!/usr/bin/perl
-
-########################################################################
-#
-#  fusiondirectory-setup
-#
-#  Manage fusiondirectory installs from the command line
-#
-#  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-#  Copyright (C) 2011-2018  FusionDirectory
-#
-#  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-########################################################################
-
-use strict;
-use warnings;
-use 5.008;
-
-# used to manage files
-use Path::Class;
-
-# used for checking config dirs rights (make the translation for lstat output)
-use Fcntl ':mode';
-
-# used to handle ldap connections
-use Net::LDAP;
-
-# used to base64 encode
-use MIME::Base64;
-
-# used to generate {SSHA} password (for LDAP)
-use Digest::SHA;
-use Crypt::CBC;
-use Bytes::Random::Secure qw(random_string_from);
-
-# used to uncompress tar.gz
-use Archive::Extract;
-
-# used to copy files
-use File::Copy::Recursive qw(rcopy);
-
-#XML parser
-use XML::Twig;
-
-# To hide password input
-use Term::ReadKey;
-
-use Data::Dumper;
-
-# fd's directory and class.cache file's path declaration
-my %vars = (
- fd_home          => "/var/www/fusiondirectory",
- fd_cache         => "/var/cache/fusiondirectory",
- fd_config_dir    => "/etc/fusiondirectory",
- fd_smarty_path   => "/usr/share/php/smarty3/Smarty.class.php",
- fd_spool_dir     => "/var/spool/fusiondirectory",
- ldap_conf        => "/etc/ldap/ldap.conf",
- config_file      => "fusiondirectory.conf",
- secrets_file     => "fusiondirectory.secrets",
- locale_dir       => "locale",
- class_cache      => "class.cache",
- locale_cache_dir => "locale",
- tmp_dir          => "tmp",
- fai_log_dir      => "fai",
- template_dir     => "template"
-);
-
-my ($fd_config,$fd_secrets,$locale_dir,$class_cache,$locale_cache_dir,$tmp_dir,$fai_log_dir,$template_dir);
-
-my (@root_config_dirs,@apache_config_dirs,@config_dirs);
-
-my @plugin_types = qw(addons admin personal);
-my $yes_flag = 0;
-
-my %classes_hash_result = ();
-my %i18n_hash_result = ();
-
-my $configrdn   = "cn=config,ou=fusiondirectory";
-my $userrdn     = "ou=people";
-my $aclrolerdn  = "ou=aclroles";
-my $grouprdn    = "ou=groups";
-my $systemrdn   = "ou=systems";
-my $dnsrdn      = "ou=dns";
-my $dhcprdn     = "ou=dhcp";
-my $workstationrdn  = "ou=workstations,ou=systems";
-my $winstationrdn   = "ou=computers,ou=systems";
-
-#################################################################################################################################################
-
-# ask a question send as parameter, and return true if the answer is "yes"
-sub ask_yn_question {
-  return 1 if ($yes_flag);
-  my ($question) = @_;
-  print ( "$question [Yes/No]?\n" );
-
-  while ( my $input = <STDIN> ) {
-    # remove the \n at the end of $input
-    chomp $input;
-
-    # if user's answer is "yes"
-    if ( lc($input) eq "yes" || lc($input) eq "y") {
-      return 1;
-    # else if he answer "no"
-    } elsif ( lc($input) eq "no" || lc($input) eq "n") {
-      return 0;
-    }
-  }
-}
-
-# function that ask for an user input and do some checks
-sub ask_user_input {
- my ($thing_to_ask, $default_answer, $hide_input) = @_;
- my $answer;
-
- if (defined $default_answer) {
-   $thing_to_ask .= " [$default_answer]";
- }
- print $thing_to_ask.":\n";
-
- if (defined $hide_input && $hide_input) {
-   ReadMode('noecho');
- }
-
- do
- {
-   if ($answer = <STDIN>) {
-     chomp $answer;
-     $answer =~ s/^\s+|\s+$//g;
-   } else {
-     $answer = "";
-   }
- } while (($answer eq "") && (not defined $default_answer));
-
- ReadMode('restore');
-
- if ($answer eq "") {
-   return $default_answer;
- }
- return $answer;
-}
-
-# Die on all LDAP error except for «No such object»
-sub die_on_ldap_errors
-{
-  my ($mesg) = @_;
-  if (($mesg->code != 0) && ($mesg->code != 32)) {
-    die $mesg->error;
-  }
-}
-
-{
-  my $indice = 0;
-  sub find_free_role_dn {
-    my ($ldap,$base,$prefix) = @_;
-    my ($cn,$dn,$mesg);
-    do {
-      $cn = $prefix.'-'.$indice;
-      $dn = "cn=$cn,$aclrolerdn,$base";
-      $indice++;
-      $mesg = $ldap->search(
-        base    => "$dn",
-        scope   => 'base',
-        filter  => '(objectClass=*)'
-      );
-      die_on_ldap_errors($mesg);
-    } while ($mesg->count);
-    return $cn;
-  }
-}
-
-sub create_role {
-  my ($ldap,$base,$cn,$acl) = @_;
-  my %role = (
-    'cn'              => "$cn",
-    'objectclass'     => [ 'top', 'gosaRole' ],
-    'gosaAclTemplate' => "0:$acl"
-  );
-
-  if (!branch_exists($ldap, "$aclrolerdn,$base")) {
-    create_branch($ldap, $base, $aclrolerdn);
-  }
-
-  my $role_dn = "cn=$cn,$aclrolerdn,$base";
-  # Add the administator role object
-  my @options = %role;
-  my $role_add = $ldap->add( $role_dn, attr => \@options );
-  # send a warning if the ldap's admin's add didn't gone well
-  $role_add->code && die "\n! failed to add LDAP's $role_dn entry - ".$role_add->error_name.": ".$role_add->error_text;
-  return $role_dn;
-}
-
-###################################################### Password encryption #########################################################################
-
-sub cred_encrypt {
-  my ($input, $password) = @_;
-  my $cipher = Crypt::CBC->new(
-                -key    =>  $password,
-                -cipher => 'Rijndael',
-                -salt   => 1,
-                -header => 'salt',
-              ) || die "Couldn't create CBC object";
-  return $cipher->encrypt_hex($input);
-}
-
-sub cred_decrypt {
-  my ($input, $password) = @_;
-  my $cipher = Crypt::CBC->new(
-                -key    =>  $password,
-                -cipher => 'Rijndael',
-                -salt   => 1,
-                -header => 'salt',
-              ) || die "Couldn't create CBC object";
-  return $cipher->decrypt_hex($input);
-}
-
-sub get_random_string {
-  my ($size) = @_;
-  $size = 32 if !$size;
-  my @chars = ("A".."Z", "a".."z", '.', '/', 0..9);
-  return random_string_from(join('', @chars), $size);
-}
-
-sub encrypt_passwords {
-  if (!-e $fd_config) {
-    die "Cannot find a valid configuration file ($fd_config)!\n";
-  }
-  if (-e $fd_secrets) {
-    die "There's already a file '$fd_secrets'. Cannot convert your existing fusiondirectory.conf - aborted\n";
-  }
-  print "Starting password encryption\n";
-  print "* generating random master key\n";
-  my $master_key = get_random_string();
-  print "* creating '$fd_secrets'\n";
-  my $fp_file = file($fd_secrets);
-  my $fp = $fp_file->openw() or die "! Unable to open '$fd_secrets' in write mode\n";
-  $fp->print("RequestHeader set FDKEY $master_key\n");
-  $fp->close or die "! Can't close '$fd_secrets'\n";
-  chmod 0600, $fd_secrets or die "! Unable to change '$fd_secrets' rights\n";
-  my $root_uid = getpwnam("root");
-  my $root_gid = getgrnam("root");
-  chown $root_uid,$root_gid,$fd_secrets or die "! Unable to change '$fd_secrets' owner\n";
-
-  # Move original fusiondirectory.conf out of the way and make it unreadable for the web user
-  print "* creating backup in '$fd_config.orig'\n";
-  rcopy($fd_config, "$fd_config.orig");
-  chmod 0600, "$fd_config.orig" or die "! Unable to change '$fd_config.orig' rights\n";
-  chown $root_uid,$root_gid,"$fd_config.orig" or die "! Unable to change '$fd_config.orig' owner\n";
-
-  print "* loading '$fd_config'\n";
-  my $twig = XML::Twig->new();    # create the twig
-  $twig->parsefile($fd_config); # build it
-  # Locate all passwords inside the fusiondirectory.conf
-  my @locs = $twig->root->first_child('main')->children('location');
-  foreach my $loc (@locs) {
-    my $ref = $loc->first_child('referral');
-    print "* encrypting FusionDirectory password for: ".$ref->{'att'}->{'adminDn'}."\n";
-    $ref->set_att('adminPassword' => cred_encrypt($ref->{'att'}->{'adminPassword'}, $master_key));
-  }
-
-  # Save
-  print "* saving modified '$fd_config'\n";
-  $twig->print_to_file($fd_config, pretty_print => 'indented') or die "Cannot write modified $fd_config - aborted\n";
-  print "OK\n\n";
-
-  # Print reminder
-  print "
-Please adapt your http fusiondirectory declaration to include the newly
-created $fd_secrets.
-
-Example:
-
-# Include FusionDirectory to your web service
-Alias /fusiondirectory $vars{fd_home}
-
-<Directory $vars{fd_home}>
-  # Include the secrects file
-  include $fd_secrets
-</Directory>
-
-
-Please reload your httpd configuration after you've modified anything.\n";
-}
-
-####################################################### class.cache update #########################################################################
-
-# function that scan recursivly a directory to find .inc and . php
-# then return a hash with class => path to the class file
-sub get_classes {
-
-    my ($path) = @_;
-
-    # if this function has been called without a parameter
-    die ("! function get_classes called without parameter\n") if ( !defined($path) );
-
-    # create a "dir" object with the path
-    my $dir = dir ($path) or die ("! Can't open $path\n");
-
-    my $contrib_dir = dir($vars{fd_home},"contrib");
-    if ("$dir" eq "$contrib_dir") {
-        return;
-    }
-
-    # create an array with the content of $dir
-    my @dir_files = $dir->children;
-
-    foreach my $file (@dir_files) {
-        # recursive call if $file is a directory
-        if ( -d $file ) {
-            get_classes($file);
-            next;
-        }
-
-        # only process if $file is a .inc or a .php file
-        if ( ( $file =~ /.*\.inc$/ ) && ( $file !~ /.*smarty.*/ ) ) {
-          # put the entire content of the file pointed by $file in $data
-          my @lines = $file->slurp;
-
-          # modifing $file, to contains relative path, not complete one
-          $file =~ s/^$vars{fd_home}//;
-
-          foreach my $line ( @lines ) {
-            # remove \n from the end of each line
-            chomp $line;
-
-            # only process for lines beginning with "class", and extracting the 2nd word (the class name)
-            if ( $line =~ /^class\s*(\w+).*/ ) {
-              # adding the values (class name and file path) to the hash
-              $classes_hash_result{$1} = $file;
-            }
-          }
-        }
-    }
-    return %classes_hash_result;
-}
-
-# call get_classes and create /var/cache/fusiondirectory/class.cache
-sub rescan_classes {
-
-  # hash that will contain the result of the "get_classes" function
-  my %get_classes_result = get_classes ($vars{fd_home});
-
-  # create a "file" object with the $class_cache path
-  my $file_class = file ($class_cache);
-
-  # create the handler (write mode) for the file previoulsy created
-  my $fhw = $file_class->openw() or die ("! Unable to open $class_cache in write mode\n");
-
-  # first lines of class.cache
-  $fhw->print ("<?php\n\t\$class_mapping= array(\n");
-
-  # for each $key/$value, writting a new line to $class_cache
-  while ( my($key,$value) = each %get_classes_result ) {
-    $fhw->print ("\t\t\"$key\" => \"$value\",\n");
-  }
-
-  # last line of classe.cache
-  $fhw->print ("\t);\n?>");
-
-  $fhw->close or die ("! Can't close $class_cache\n");
-}
-
-###################################################### Internalisation's update ####################################################################################
-
-# function that create .mo files with .po for each language
-sub get_i18n {
-
-    my ($path) = @_;
-
-    # if this function has been called without a parameter
-    die ("! function get_i18n called without parameter" ) if ( !defined($path) );
-
-    # create a "dir" object
-    my $dir = dir ($path) or die ("! Can't open $path\n");
-
-    # create an array with the content of $dir
-    my @dir_files = $dir->children;
-
-    foreach my $file (@dir_files) {
-      # recursive call if $file is a directory
-      if (-d $file) {
-        %i18n_hash_result = get_i18n ($file);
-        next;
-      }
-
-      # if the file's directory is ???/language/fusiondirectory.po
-      if ($file =~ qr{^.*/(\w+)/fusiondirectory.po$}) {
-        # push the file's path in the language (fr/en/es/it...) array (wich is inside the hash pointed by $ref_result
-        push @{$i18n_hash_result{$1}}, $file;
-      }
-    }
-  return %i18n_hash_result;
-}
-
-# call get_i18n with the FusionDirectory's locales's directory and the hash that will contain the result in parameter
-sub rescan_i18n {
-
-  # hash that will contain the result of the "get_i18n" function
-  my %get_i18n_result = get_i18n ($locale_dir);
-
-  while ( my ($lang, $files) = each %get_i18n_result ) {
-
-    # directory wich will contain the .mo file for each language
-    my $lang_cache_dir = dir ("$locale_cache_dir/$lang/LC_MESSAGES");
-
-    # if $lang_cache_dir doesn't already exists, creating it
-    if ( !-d $lang_cache_dir ) {
-      $lang_cache_dir->mkpath or die ("! Can't create $locale_cache_dir/$lang/LC_MESSAGES");
-    }
-
-    # glue .po files's names
-    my $po_files = join(" ", @{$files});
-    chomp $po_files;
-
-    # merging .po files
-    system ( "msgcat --use-first ".$po_files.">".$lang_cache_dir."/fusiondirectory.po" ) and die ("! Unable to merge .po files for $lang with msgcat, is it already installed?\n");
-
-    # compiling .po files in .mo files
-    system ( "msgfmt -o $lang_cache_dir/fusiondirectory.mo $lang_cache_dir/fusiondirectory.po && rm $lang_cache_dir/fusiondirectory.po" ) and die ("! Unable to compile .mo files with msgfmt, is it already installed?\n");
-  }
-}
-
-############################################################# Directories checking ###################################################################################
-
-#get the apache user group name
-sub get_apache_group {
-  my $apache_group = "";
-
-  # try to identify the running distribution, if it's not debian or rehat like, script ask for user input
-  if (-e "/etc/debian_version") {
-    $apache_group = "www-data";
-  } elsif ((-e "/etc/redhat-release") || (-e "/etc/mageia-release")) {
-    $apache_group = "apache";
-  } elsif (-e "/etc/SuSE-release") {
-    $apache_group = "www";
-  } elsif (-e "/etc/arch-release") {
-    $apache_group = "http";
-  } else {
-    print ("! Looks like you are not a Debian, Suse, Redhat or Mageia, I don't know your distribution !\n");
-    $apache_group = ask_user_input ("What is your apache group?");
-  }
-  return $apache_group;
-}
-
-#check the rights of a directory or file, creates missing directory if needed
-sub check_rights {
-  my ($dir,$user,$group,$rights,$create) = @_;
-  my $user_uid = getpwnam ( $user );
-  my $group_gid = getgrnam ( $group );
-
-  # if the current dir exists
-  if (-e $dir) {
-    print("$dir exists…\n");
-    # retrieve dir's informations
-    my @lstat = lstat ($dir);
-
-    # extract the owner and the group of the directory
-    my $dir_owner = getpwuid ( $lstat[4] );
-    my $dir_group = getgrgid ( $lstat[5] );
-
-    # extract the dir's rights
-    my $dir_rights = S_IMODE( $lstat[2] );
-
-    if ( ($dir_owner ne $user) || ($dir_group ne $group) || ($dir_rights ne $rights) ) {
-      if ( ask_yn_question ("$dir is not set properly, do you want to fix it ?: ") ) {
-        chown ($user_uid,$group_gid,$dir) or die ("! Unable to change $dir owner\n") if ( ($dir_owner ne $user) || ($dir_group ne $group) );
-        chmod ( $rights, $dir ) or die ("! Unable to change $dir rights\n") if ($dir_rights ne $rights);
-      } else {
-        print ("Skipping...\n");
-      }
-    } else {
-      print("Rights on $dir are correct\n");
-    }
-  } elsif ($create) {
-
-    if ( ask_yn_question("Directory $dir doesn't exists, do you want to create it ?: ") ) {
-      my $conf_dir = dir ($dir);
-
-      # create the directory, and change the rights
-      $conf_dir->mkpath (0,$rights);
-      chmod ($rights, $dir);
-      chown ($user_uid,$group_gid,$dir) or die ("Unable to change $dir rights\n");
-
-    } else {
-      print ( "Skipping...\n" );
-    }
-  } else {
-    return 0;
-  }
-  return 1;
-}
-
-# function that check FusionDirectory's directories
-sub check_directories {
-  my $apache_group = get_apache_group();
-
-  # for each config directory
-  foreach my $dir (@config_dirs) {
-
-      # if $dir is one of the dirs that remains to root
-      if ( grep (/.*$dir.*/, @root_config_dirs) ) {
-        check_rights($dir,"root","root",oct(755),1);
-
-      # else if $dir is one of the dirs that remains to apache's user group, and the dir's owner is not root or the group is not the apache's user group, modifying owner
-      } elsif ( grep ( /.*$dir.*/, @apache_config_dirs) ) {
-        check_rights($dir,"root",$apache_group,oct(770),1);
-      }
-  }
-}
-
-# function that check FusionDirectory's config file
-sub check_config {
-  my $apache_group = get_apache_group();
-
-  # check config file
-  check_rights($fd_config,"root",$apache_group,oct(640),0) or die 'The config file does not exists!';
-}
-
-############################################################# Change install directories #################################################################################
-
-sub write_vars {
-  my $filecontent = <<eof;
-<?php
-require_once('variables_common.inc');
-
-/*! \\file
- * Define common locations and variables
- * Generated by fusiondirectory-setup */
-
-if (!defined("CONFIG_DIR")) {
-  define ("CONFIG_DIR", "$vars{fd_config_dir}/"); /* FusionDirectory etc path */
-}
-
-/* Allow setting the config file in the apache configuration
-    e.g.  SetEnv CONFIG_FILE fusiondirectory.conf 1.0
- */
-if (!defined("CONFIG_FILE")) {
-  define ("CONFIG_FILE", "$vars{config_file}"); /* FusionDirectory filename */
-}
-
-/* Path for smarty3 libraries */
-define("SMARTY", "$vars{fd_smarty_path}");
-
-/* Smarty compile dir */
-define ("SPOOL_DIR", "$vars{fd_spool_dir}/"); /* FusionDirectory spool directory */
-
-/* Global cache dir */
-define ("CACHE_DIR", "$vars{fd_cache}/"); /* FusionDirectory var directory */
-
-/* Global locale cache dir */
-define ("LOCALE_DIR", "$locale_cache_dir/"); /* FusionDirectory locale directory */
-
-/* Global tmp dir */
-define ("TEMP_DIR", "$tmp_dir/"); /* FusionDirectory tmp directory */
-
-/* Directory containing the configuration template */
-define ("CONFIG_TEMPLATE_DIR", "$template_dir/"); /* FusionDirectory template directory */
-
-/* Directory containing the fai logs */
-define ("FAI_LOG_DIR", "$fai_log_dir/"); /* FusionDirectory fai directory */
-
-/* Directory containing the supann files
-define ("SUPANN_DIR", "$vars{fd_config_dir}/supann/"); /* FusionDirectory supann template directory */
-
-/* name of the class.cache file */
-define("CLASS_CACHE", "$vars{class_cache}"); /* name of the class cache */
-?>
-eof
-
-  my $variables_path = "$vars{fd_home}/include/variables.inc";
-  my $variables_file = file ($variables_path);
-  my $vars_file = $variables_file->openw() or die ("! Unable to open $variables_path in write mode\n");
-  $vars_file->print($filecontent);
-  $vars_file->close or die ("! Can't close $variables_file\n");
-}
-
-############################################################# LDAP conformity check #################################################################################
-
-# function that add the FusionDirectory's admin account
-# return nothing is it a problem?
-sub add_ldap_admin {
-  my ($base, $ldap, $admindns, $people_entries, $roles) = @_;
-
-  # Get the configuration to know which attribute must be used in the dn
-  my $mesg = $ldap->search(
-    base => "$configrdn,$base",
-    filter => '(objectClass=fusionDirectoryConf)',
-    scope => 'base',
-    attrs => ['fdAccountPrimaryAttribute', 'fdForcePasswordDefaultHash', 'fdPasswordDefaultHash']
-  );
-  $mesg->code && die $mesg->error;
-  my $attr;
-  if ($mesg->count <= 0) {
-    print "Could not find configuration object, using default value\n";
-    $attr = 'uid';
-  } elsif (($mesg->entries)[0]->exists('fdAccountPrimaryAttribute')) {
-    $attr = ($mesg->entries)[0]->get_value('fdAccountPrimaryAttribute');
-  } else {
-    $attr = 'uid';
-  }
-  if ($mesg->count > 0) {
-    if (($mesg->entries)[0]->exists('fdForcePasswordDefaultHash') && ($mesg->entries)[0]->exists('fdPasswordDefaultHash')) {
-      if ((($mesg->entries)[0]->get_value('fdForcePasswordDefaultHash') eq 'TRUE') &&
-          (($mesg->entries)[0]->get_value('fdPasswordDefaultHash') ne 'ssha')) {
-        warn "Warning: Administator password will be hashed with ssha instead of forced default ".($mesg->entries)[0]->get_value('fdPasswordDefaultHash')."\n";
-      }
-    }
-  }
-
-  my $fd_admin_uid = ask_user_input ("Please enter a login for FusionDirectory's admin", "fd-admin");
-  # Does this user exists?
-  my $dn = "";
-  foreach my $entry (@$people_entries) {
-    my $mesg = $ldap->search(
-      base => "$entry",
-      filter => "(&(objectClass=inetOrgPerson)(uid=$fd_admin_uid))",
-      attrs => ['uid']
-    );
-    $mesg->code && die $mesg->error;
-    if ($mesg->count) {
-      print "User $fd_admin_uid already existing, adding admin acl to it\n";
-      $dn = ($mesg->entries)[0]->dn;
-      last;
-    }
-  }
-
-  if ($dn eq "") {
-    my $fd_admin_pwd = ask_user_input ("Please enter FusionDirectory's admin password", undef, 1);
-    my $fd_admin_pwd_confirm = ask_user_input ("Please enter it again", undef, 1);
-
-    # while the confirmation password is not the same than the first one
-    while ( ($fd_admin_pwd_confirm ne $fd_admin_pwd) && ($fd_admin_pwd_confirm ne "quit" ) ) {
-      $fd_admin_pwd_confirm = ask_user_input ("! Inputs don't match, try again or type 'quit' to end this function");
-    }
-    return -1 if ($fd_admin_pwd_confirm eq "quit");
-
-    my $ctx = Digest::SHA->new(1);
-    my $salt = get_random_string(8);
-    $ctx->add($fd_admin_pwd);
-    $ctx->add($salt);
-    my $hashedPasswd = '{SSHA}'.encode_base64($ctx->digest.$salt, '');
-    my %obj = (
-      'cn'  =>  'System Administrator',
-      'sn'  =>  'Administrator',
-      'uid' =>  $fd_admin_uid,
-      'givenname'     =>  'System',
-      'objectclass'   =>  [ 'top', 'person', 'organizationalPerson', 'inetOrgPerson' ],
-      'userPassword'  =>  $hashedPasswd
-    );
-    if (not defined $obj{$attr}) {
-      print "Error : invalid account primary attribute $attr, using uid\n";
-      $attr = 'uid';
-    }
-    $dn = "$attr=".$obj{$attr}.",$userrdn,$base";
-
-    # Add the administator user object
-    my @options = %obj;
-    my $admin_add = $ldap->add( $dn, attr => \@options );
-    # send a warning if the ldap's admin's add didn't gone well
-    $admin_add->code && die "\n! failed to add LDAP's $dn entry - ".$admin_add->error_name.": ".$admin_add->error_text;
-  }
-
-  # Create admin role if not existing
-  my $role;
-  if (scalar @$roles == 0) {
-    my $role_dn = create_role($ldap,$base,'admin','all;cmdrw');
-    $role = encode_base64($role_dn, '');
-  } else {
-    $role = shift(@$roles);
-  }
-
-  # Add the assignment that make him an administrator
-  my $acls = $ldap->search (
-    base    => "$base",
-    scope   => 'base',
-    filter  => "(objectClass=*)",
-    attrs   => ['objectClass', 'gosaAclEntry']
-  );
-  $acls->code && die "\n! failed to search acls in '$base' - ".$acls->error_name.": ".$acls->error_text;
-  ($acls->count == 0) && die "\n! failed to search acls in '$base' - base not found";
-  my $oclass = ($acls->entries)[0]->get_value("objectClass", asref => 1);
-  # Add admin acl
-  my $newacl = ["0:subtree:$role:".encode_base64($dn, '')];
-  if (not (grep $_ eq 'gosaAcl', @$oclass)) {
-    push (@$oclass, 'gosaAcl');
-  } else {
-    my $acl = ($acls->entries)[0]->get_value("gosaAclEntry", asref => 1);
-    my $i = 1;
-    if (defined $acl) {
-      foreach my $line (@$acl) {
-        # Reorder existing non-admin acls
-        $line =~ s/^\d+:/$i:/;
-        push (@$newacl, $line);
-        $i++;
-      }
-    }
-  }
-  my $result = $ldap->modify (
-    $base,
-    replace => {
-      'objectClass'   => $oclass,
-      'gosaAclEntry'  => $newacl
-    }
-  );
-  $result->code && warn "\n! failed to add ACL for admin on '$base' - ".$result->error_name.": ".$result->error_text;
-}
-
-# function that initiate the ldap connexion, and bind as the ldap's admin
-sub get_ldap_connexion {
-  my %hash_result = ();
-  my $bind_dn = "";
-  my $bind_pwd = "";
-  my $uri = "";
-  my $base = "";
-  my $tls = 0;
-
-  # read ldap's server's info from /etc/fusiondirectory/fusiondirectory.conf
-  if (-e $fd_config) {
-    my $twig = XML::Twig->new();    # create the twig
-    $twig->safe_parsefile($fd_config) or die("There is an error in $fd_config XML code: ".(split /\n/, $@)[1]."\n");
-    my @locs = $twig->root->first_child('main')->children('location');
-    my %locations = ();
-    foreach my $loc (@locs) {
-      $loc->lc_attnames();
-      my $ref = $loc->first_child('referral');
-      # Ignore case
-      $ref->lc_attnames();
-      $locations{$loc->{'att'}->{'name'}} = {
-        'tls'       => 0,
-        'uri'       => $ref->{'att'}->{'uri'},
-        'base'      => ($ref->{'att'}->{'base'} or $loc->{'att'}->{'base'} or ''),
-        'bind_dn'   => $ref->{'att'}->{'admindn'},
-        'bind_pwd'  => $ref->{'att'}->{'adminpassword'}
-      };
-      if (defined $loc->{'att'}->{'ldaptls'} and $loc->{'att'}->{'ldaptls'} =~ m/true/i) {
-        $locations{$loc->{'att'}->{'name'}}->{'tls'} = 1
-      }
-    }
-
-    my ($location) = keys(%locations);
-    if (scalar(keys(%locations)) > 1) {
-      my $question = "There are several locations in your config file, which one should be used : (".join(',',keys(%locations)).")";
-      my $answer;
-      do {
-        $answer = ask_user_input ($question, $location);
-      } while (not exists($locations{$answer}));
-      $location = $answer;
-    }
-
-    if ($locations{$location}->{'base'} ne '') {
-      $uri  = $locations{$location}->{'uri'};
-      $base = $locations{$location}->{'base'};
-    } elsif ($locations{$location}->{'uri'} =~ qr|^(.*)/([^/]+)$|) {
-      # Format from FD<1.3
-      $uri  = $1;
-      $base = $2;
-    } else {
-      die '"'.$locations{$location}->{'uri'}.'" does not contain any base!';
-    }
-    $bind_dn  = $locations{$location}->{'bind_dn'};
-    $bind_pwd = $locations{$location}->{'bind_pwd'};
-    $tls      = $locations{$location}->{'tls'};
-
-  # if can't find fusiondirectory.conf
-  } else {
-
-    if ( ask_yn_question ("Can't find fusiondirectory.conf, do you want to specify LDAP's information yourself ?: ") ) {
-      $uri = ask_user_input ("LDAP server's URI");
-      $base = ask_user_input ("Search base");
-      $hash_result{base} = $base;
-
-      $bind_dn = ask_user_input ("Bind DN");
-      $bind_pwd = ask_user_input("Bind password", undef, 1);
-    } else {
-      return;
-    }
-  }
-
-  # ldap connection
-  my $ldap = Net::LDAP->new ($uri) or die ("! Can't contact LDAP server $uri\n");
-
-  $hash_result{ldap} = $ldap;
-  $hash_result{base} = $base;
-
-  # bind to the LDAP server
-  if (-e $fd_secrets) {
-    open(my $secrets, q{<}, $fd_secrets) || die ("Could not open $fd_secrets");
-    my $key = "";
-    while(<$secrets>) {
-      if ($_ =~ m/RequestHeader set FDKEY ([^ \n]+)\n/) {
-        $key = $1;
-        last;
-      }
-    }
-    close($secrets);
-    $bind_pwd = cred_decrypt($bind_pwd, $key);
-  }
-
-  if ($tls) {
-    # Read LDAP config file
-    open (my $ldapconf, q{<}, $vars{ldap_conf}) or die ("! Failed to open ldap config file '$vars{ldap_conf}': $!\n");
-
-    my %tls_options = (
-      'REQCERT'   => 'require',
-      'CERT'      => '',
-      'KEY'       => '',
-      'CACERTDIR' => '',
-      'CACERT'    => '',
-    );
-    # Scan LDAP config
-    while (<$ldapconf>) {
-      /^\s*(#|$)/ && next;
-      chomp;
-      if (m/^TLS_(REQCERT|CERT|KEY|CACERTDIR|CACERT)\s+(.*)\s*$/i) {
-        $tls_options{uc $1} = $2;
-      }
-    }
-    close($ldapconf);
-
-    $ldap->start_tls(
-      verify      => $tls_options{'REQCERT'},
-      clientcert  => $tls_options{'CERT'},
-      clientkey   => $tls_options{'KEY'},
-      capath      => $tls_options{'CACERTDIR'},
-      cafile      => $tls_options{'CACERT'}
-    );
-  }
-
-  my $bind = $ldap->bind ($bind_dn, password => $bind_pwd);
-
-  # send a warning if the bind didn't gone well
-  $bind->code && die ("! Failed to bind to LDAP server: ", $bind->error."\n");
-
-  return %hash_result;
-}
-
-# function that check if there is an admin
-sub check_admin {
-  my ($base, $ldap, $people_entries) = @_;
-
-  # search for FusionDirectory's admin account
-
-  # search for admin role
-  my $admin_roles = $ldap->search (
-    base => "$base",
-    filter => "(&(objectClass=gosaRole)(gosaAclTemplate=*:all;cmdrw))",
-    attrs => ['gosaAclTemplate']
-  );
-  $admin_roles->code && die $admin_roles->error;
-  my @dns = ();
-  my @roles = ();
-  my $count = 0;
-  while (my $entry = $admin_roles->shift_entry) {
-    my $role_dn64 = encode_base64($entry->dn, '');
-    push @roles, $role_dn64;
-    print ("Role ".$entry->dn." is an admin ACL role\n");
-    # Search for base-wide assignments
-    my $assignments = $ldap->search (
-      base    => "$base",
-      scope   => 'base',
-      filter  => "(&(objectClass=gosaAcl)(gosaAclEntry=*:subtree:$role_dn64:*))",
-      attrs   => ['gosaAclEntry']
-    );
-    $assignments->code && die $assignments->error;
-    while (my $assignment = $assignments->shift_entry) {
-      my $acl = $assignment->get_value("gosaAclEntry", asref => 1);
-      foreach my $line (@$acl) {
-        if ($line =~ m/^.:subtree:\Q$role_dn64\E/) {
-          my @parts = split(':',$line,4);
-          my @members = split(",",$parts[3]);
-          foreach my $member (@members) {
-            # Is this an existing user?
-            my $dn = decode_base64($member);
-            my $member_node = $ldap->search(
-              base    => $dn,
-              scope   => 'base',
-              filter  => "(objectClass=inetOrgPerson)"
-            );
-            if ($member_node->count == 1) {
-              print ("$dn is a valid admin\n");
-              return;
-            }
-            # Is this a group?
-            $member_node = $ldap->search(
-              base    => $dn,
-              scope   => 'base',
-              filter  => "(objectClass=posixGroup)",
-              attrs   => ['memberUid']
-            );
-            if ($member_node->count == 1) {
-              # Find group members
-              my $member_entry  = $member_node->shift_entry;
-              my $memberUids    = $member_entry->get_value("memberUid", asref => 1);
-              my $filter = '(&(objectClass=inetOrgPerson)(|(uid='.join(')(uid=', @$memberUids).')))';
-              my $group_members = $ldap->search(
-                base    => $base,
-                filter  => $filter,
-              );
-              $group_members->code && die $group_members->error;
-              if (my $group_member_entry = $group_members->shift_entry) {
-                print ($group_member_entry->dn." is a valid admin\n");
-                return;
-              }
-            } else {
-              push @dns, $dn;
-            }
-          }
-        }
-      }
-    }
-    $count++;
-  }
-  if ($count < 1) {
-    print ("! There is no admin ACL role\n");
-  }
-  foreach my $dn (@dns) {
-    print ("! $dn is supposed to be admin but does not exists\n");
-  }
-  if (ask_yn_question("No valid admin account found, do you want to create it ?")) {
-    return add_ldap_admin($base, $ldap, \@dns, $people_entries, \@roles);
-  }
-}
-
-sub create_branch {
-  my ($ldap, $base, $ou) = @_;
-  $ou =~ m/^ou=([^,]*),?$/ or die "Can’t create branch of unknown type $ou\n";
-  my $branch_add = $ldap->add( "$ou,$base",
-    attr => [
-      'ou'  => $1,
-      'objectClass' =>  'organizationalUnit'
-      ]
-  );
-
-  $branch_add->code && die "! failed to add LDAP's $ou,$base branch: ".$branch_add->error."\n";
-}
-
-sub branch_exists {
-  my ($ldap, $branch) = @_;
-
-  # search for branch
-  my $branch_mesg = $ldap->search (base => $branch, filter => '(objectClass=*)', scope => 'base');
-  if ($branch_mesg->code == 32) {
-    return 0;
-  }
-  $branch_mesg->code && die $branch_mesg->error;
-
-  my @entries = $branch_mesg->entries;
-  return (defined ($entries[0]));
-}
-
-# function that check LDAP configuration
-sub check_ldap {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $admin_add = "";
-
-  # Collect existing people branches (even if main one may not exists);
-  my $people = $ldap->search (base => $base, filter => $userrdn);
-  $people->code && die $people->error;
-  my @people_entries = $people->entries;
-  @people_entries = map {$_->dn} @people_entries;
-
-  # if people branch exists
-  if ( branch_exists($ldap, "$userrdn,$base") ) {
-    check_admin($base, $ldap, \@people_entries);
-
-  # if ou=people doesn't exists
-  } else {
-    print ( "! $userrdn,$base not found in your LDAP directory\n" );
-
-    # if user's answer is "yes", creating ou=people branch
-    if ( ask_yn_question("Do you want to create it ?: ") ) {
-      create_branch($ldap, $base, $userrdn);
-      push @people_entries, "$userrdn,$base";
-      check_admin($base, $ldap, \@people_entries);
-    } else {
-      print ("Skipping...\n");
-    }
-  }
-
-  # if groups branch does not exist
-  if (!branch_exists($ldap, "$grouprdn,$base")) {
-    print ("! $grouprdn,$base not found in your LDAP directory\n");
-
-    # if user's answer is "yes", creating groups branch
-    if ( ask_yn_question("Do you want to create it ?: ") ) {
-      create_branch($ldap, $base, $grouprdn);
-    } else {
-      print ("Skipping...\n");
-    }
-  }
-
-  # search for workstations and object groups
-  my $faiclasses = $ldap->search (base => "$base",
-                                  filter => "(&(FAIclass=*)(!(objectClass~=FAIprofile)))" );
-  $faiclasses->code && die $faiclasses->error;
-  my @faiclass_entries = $faiclasses->entries;
-  foreach my $entry (@faiclass_entries) {
-    my $faiclass = $entry->get_value('FAIclass');
-    my (@profiles) = split(' ',$faiclass);
-    if (scalar @profiles > 2) {
-      print "! System or group ".$entry->get_value('cn')." have more than one FAI profile : ".$faiclass."\n";
-    } elsif (scalar @profiles < 2) {
-      print "! System or group ".$entry->get_value('cn')." have no release set in its FAIclass : ".$faiclass."\n";
-    }
-  }
-
-  # search for old config dn
-  if (branch_exists($ldap, "cn=fusiondirectory,ou=configs,$base")) {
-    print ("! There is a configuration in cn=fusiondirectory,ou=configs,$base in your LDAP directory\n");
-    print ("! The correct configuration dn is now cn=config,ou=fusiondirectory,$base\n");
-    print ("! FusionDirectory will not read your configuration at its current dn\n");
-
-    if ( ask_yn_question("Do you want to move and rename this entry? ") ) {
-      if (!branch_exists($ldap, "ou=fusiondirectory,$base")) {
-        create_branch($ldap, $base, 'ou=fusiondirectory');
-      }
-      my $result = $ldap->moddn (
-        "cn=fusiondirectory,ou=configs,$base",
-        newrdn        => 'cn=config',
-        deleteoldrdn  => '1',
-        newsuperior   => "ou=fusiondirectory,$base"
-      );
-      $result->code && die "Migration of configuration entry failed, LDAP error: ".$result->error."\n";
-    } else {
-      print ("Skipping...\n");
-    }
-  }
-
-
-  # unbind to the LDAP server
-  my $unbind = $ldap->unbind;
-  $unbind->code && warn "! Unable to unbind from LDAP server: ", $unbind->error."\n";
-}
-
-# function that check for duplicated uid or gid numbers
-sub check_id_numbers {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $ldap = $hash_ldap_param{ldap};
-  my $base = $hash_ldap_param{base};
-
-  check_id_numbers_generic($ldap, $base, 'posixAccount','uidNumber','users');
-
-  check_id_numbers_generic($ldap, $base, 'posixGroup','gidNumber','groups');
-}
-
-sub check_id_numbers_generic {
-  my ($ldap, $base, $objectClass, $attribute, $type) = @_;
-
-  my $mesg = $ldap->search(
-    filter  => "(&(objectClass=$objectClass)($attribute=*))",
-    base    => $base,
-    attrs   => [$attribute]
-  );
-  $mesg->code && die $mesg->error;
-
-  my @entries = $mesg->entries;
-
-  my %tmp = ();
-
-  foreach my $entry (@entries) {
-    if (not defined $tmp{$entry->get_value($attribute)}) {
-      $tmp{$entry->get_value($attribute)} = ();
-    }
-    push @{$tmp{$entry->get_value($attribute)}}, $entry->dn();
-  }
-
-  my $dups = 0;
-  while (my ($id, $dns) = each %tmp) {
-    if (scalar(@$dns) > 1) {
-      $dups = 1;
-      print "The following $type use the same $attribute $id:\n";
-      foreach my $dn (@$dns) {
-        print "\t$dn\n";
-      }
-    }
-  }
-  if ($dups == 0) {
-    print "There are no duplicated ${attribute}s\n";
-  }
-}
-
-# function that create a directory and copy plugin files in it
-sub create_and_copy_plugin_dir {
-  my ($plugin_dir,$dest_dir) = @_;
-  if ( -e $plugin_dir ){
-    my $dir = dir ($dest_dir);
-    $dir->mkpath() or warn ("! Unable to make ".$dest_dir."\n") if ( !-e $dest_dir);
-    my $files_dirs_copied = rcopy($plugin_dir."/*", $dest_dir);
-  }
-}
-
-# function that install all the FD's plugins from a directory
-sub install_plugins {
-  # ask for the plugins archive
-  my $plugins_archive = ask_user_input ("Where is your plugins archive ?");
-  die ("! ".$plugins_archive." doesn't exists") if (!-e $plugins_archive);
-
-  # check the archive format
-  $plugins_archive =~ /^.*\/(.*).tar.gz$/;
-  my $name = $1 or die ("! Unkwnow archive $plugins_archive");
-
-  # where the extract files will go
-  my $tmp_plugins_dir = "/tmp";
-
-  print ("Installing plugins into $vars{fd_home}, please wait...\n");
-
-  my $dir = dir ($tmp_plugins_dir."/".$name);
-
-  # extract the plugins archive
-  my $archive = Archive::Extract->new (archive => $plugins_archive);
-  my $extract = $archive->extract( to => "$tmp_plugins_dir" ) or die ("! Unable to extract $plugins_archive\n");
-
-  my @plugins = $dir->children;
-
-  chdir ($dir) or die ("! Unable to move to $dir\n");
-
-  foreach my $plugin_path (@plugins) {
-    $plugin_path =~ /^$tmp_plugins_dir\/$name\/(.*)$/;
-    my $plugin = $1;
-
-    # copy addons into plugins
-    create_and_copy_plugin_dir($plugin_path."/addons/", $vars{fd_home}."/plugins/addons/");
-
-    # copy admin into plugins
-    create_and_copy_plugin_dir($plugin_path."/admin/", $vars{fd_home}."/plugins/admin/");
-
-    # copy config into plugins
-    create_and_copy_plugin_dir($plugin_path."/config/", $vars{fd_home}."/plugins/config/");
-
-    # copy personal into plugins
-    create_and_copy_plugin_dir($plugin_path."/personal/", $vars{fd_home}."/plugins/personal/");
-
-    # copy extra HTML and images
-    create_and_copy_plugin_dir($plugin_path."/html/", $vars{fd_home}."/html/");
-
-    # copy extra theme templates
-    create_and_copy_plugin_dir($plugin_path."/ihtml/", $vars{fd_home}."/ihtml/");
-
-    # copy includes
-    create_and_copy_plugin_dir($plugin_path."/include/", $vars{fd_home}."/include/");
-
-    # copy ldap schema
-    create_and_copy_plugin_dir($plugin_path."/contrib/openldap/", $vars{fd_home}."/contrib/openldap/");
-
-    # copy etc files
-    create_and_copy_plugin_dir($plugin_path."/contrib/etc/", $vars{fd_config_dir}."/".$plugin."/");
-
-    # copy doc
-    create_and_copy_plugin_dir($plugin_path."/contrib/doc/", $vars{fd_home}."/contrib/doc/");
-
-    # copy the locales
-    create_and_copy_plugin_dir($plugin_path."/locale/", $vars{fd_home}."/locale/plugins/".$plugin."/locale/");
-  }
-
-  #finally update FusionDirectory's class.cache and locales
-  rescan_classes();
-  rescan_i18n();
-}
-
-# function that add object classes to people branch users
-sub migrate_users {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $mesg = $ldap->search(
-     filter => '(&'.
-        '(|'.
-          '(objectClass=posixAccount)'.
-          '(objectClass=person)'.
-          '(objectClass=OpenLDAPperson)'.
-        ')'.
-        '(!(objectClass=ipHost))'.
-        '(!(objectClass=inetOrgPerson))'.
-        '(uid=*)'.
-      ')',
-    base   => $base
-  );
-  $mesg->code && die $mesg->error;
-
-  if ($mesg->count > 0) {
-    print ("The following users are missing objectClasses:\n");
-
-    my @entries = $mesg->entries;
-
-    foreach my $entry (@entries) {
-      print $entry->dn()."\n";
-    }
-
-    if (ask_yn_question("Add the inetOrgPerson objectClass to all these entries?")) {
-      foreach my $entry (@entries) {
-        $mesg = $ldap->modify($entry->dn(), add => { "objectClass" => ["person","organizationalPerson","inetOrgPerson"]});
-        $mesg->code && print $mesg->error."\n";
-      }
-    }
-  }
-
-  # unbind to the LDAP server
-  my $unbind = $ldap->unbind;
-  $unbind->code && warn "! Unable to unbind from LDAP server: ", $unbind->error."\n";
-}
-
-# function that moves DHCP configurations from systems to ou=dhcp
-sub migrate_dhcp {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  # Search for DHCP configurations
-  my $mesg = $ldap->search(
-    base => "$base",
-    filter => "(objectClass=dhcpService)",
-    attrs => ['cn']
-  );
-  $mesg->code && die $mesg->error;
-
-  my @entries = $mesg->entries;
-
-  print "There are ".$mesg->count." DHCP configurations in the LDAP\n";
-
-  my @baddns  = ();
-
-  foreach my $entry (@entries) {
-    if ($entry->dn() !~ m/$dhcprdn/) {
-      if (scalar(@baddns) == 0) {
-        print "The following are not in the DHCP branch ($dhcprdn):\n";
-      }
-      print $entry->dn()."\n";
-      push @baddns, $entry->dn();
-    }
-  }
-
-  if (scalar(@baddns) == 0) {
-    print "They all already are in the DHCP branch ($dhcprdn):\n";
-  } else {
-    if (ask_yn_question("Move these entries to the DHCP branch ($dhcprdn)?")) {
-      foreach my $entrydn (@baddns) {
-        $entrydn =~ m/^([^,]+),(cn=([^,]+),.*$systemrdn,(.+))$/ or die "Could not parse dn ".$entrydn."\n";
-        my $rdn = $1;
-        my $systemdn = $2;
-        my $systemcn = $3;
-        my $entrybase = $4;
-        if (!branch_exists($ldap, "$dhcprdn,$entrybase")) {
-          create_branch($ldap, $entrybase, $dhcprdn);
-        }
-        my $result = $ldap->moddn (
-          $entrydn,
-          newrdn        => "$rdn-$systemcn",
-          deleteoldrdn  => '1',
-          newsuperior   => "$dhcprdn,$entrybase"
-        );
-        $result->code && die "Migration of DHCP configuration entry failed, LDAP error: ".$result->error."\n";
-
-        my $configDn = "$rdn-$systemcn,$dhcprdn,$entrybase";
-
-        # Add DHCP service on server
-        $mesg = $ldap->search(
-          base    => $systemdn,
-          scope   => 'base',
-          filter  => '(objectClass=*)'
-        );
-        $mesg->code && die $mesg->error;
-        my $system_entry = $mesg->shift_entry;
-        $system_entry->get_value('objectClass');
-        my @classes = $system_entry->get_value('objectClass');
-        if (grep {$_ eq 'dhcpServer'} @classes) {
-          $result = $ldap->modify (
-            "$systemdn",
-            replace => {
-              'dhcpServiceDN' => $configDn,
-            }
-          );
-        } else {
-          $result = $ldap->modify (
-            "$systemdn",
-            replace => {
-              'dhcpServiceDN' => $configDn,
-            },
-            add => {
-              'objectClass' => 'dhcpServer'
-            }
-          );
-        }
-        $result->code && print "Could not add DHCP service on $systemdn, LDAP error: ".$result->error."\nYou'll need to activate it yourself\n";
-      }
-    }
-  }
-}
-
-sub delete_gosa_locks {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  # Search for old formatted ACLs
-  my $mesg = $ldap->search(
-    base => "$base",
-    filter => "(objectClass=gosaLockEntry)",
-    attrs => ['dn']
-  );
-  $mesg->code && die $mesg->error;
-
-  my @entries = $mesg->entries;
-
-  foreach my $entry (@entries) {
-    $mesg = $ldap->delete($entry);
-    if ($mesg->code) {
-      print "Failed to delete lock '".$entry->dn."': ".$mesg->error."\n";
-    } else {
-      print "Deleted lock '".$entry->dn."'\n";
-    }
-  }
-}
-
-# Get LDAP attributes which have been deprecated
-sub get_deprecated {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $schema_info = $ldap->schema();
-
-  my @attributes      = $schema_info->all_attributes();
-  my @obsolete_attrs  = ();
-  foreach my $attribute (@attributes) {
-    if ($attribute->{'obsolete'}) {
-      push @obsolete_attrs, $attribute;
-    }
-  }
-
-  my @ocs               = $schema_info->all_objectclasses();
-  my @obsolete_classes  = ();
-  foreach my $oc (@ocs) {
-    if ($oc->{'obsolete'}) {
-      push @obsolete_classes, $oc;
-    }
-  }
-
-  return (\@obsolete_attrs, \@obsolete_classes);
-}
-
-# function that migrates systems from FD<1.1 to FD>=1.1
-sub migrate_systems {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my @oldOCs = ('gotoWorkstation',  'goServer', 'gotoTerminal', 'gotoDevice');
-  my @newOCs = ('fdWorkstation',    'fdServer', 'fdTerminal',   'device');
-  foreach my $i (0 .. $#oldOCs) {
-    my $oldOC = $oldOCs[$i];
-    my $newOC = $newOCs[$i];
-
-    my $mesg = $ldap->search(
-      filter => "(objectClass=$oldOC)",
-      base   => $base
-    );
-    $mesg->code && die $mesg->error;
-
-    if ($mesg->count > 0) {
-      print ("The following systems are using the obsolete $oldOC objectClass:\n");
-
-      my @entries = $mesg->entries;
-
-      foreach my $entry (@entries) {
-        print $entry->dn()."\n";
-      }
-
-      if (ask_yn_question("Migrate these entries to $newOC objectClass?")) {
-        foreach my $entry (@entries) {
-          my $tmprdn = "cn=".$entry->get_value('cn')."+ipHostNumber=".$entry->get_value('ipHostNumber');
-          my $newrdn = "cn=".$entry->get_value('cn');
-          my $dn_old = $entry->dn();
-          my $dn_new = $entry->dn();
-          $dn_new =~ s/^[^,]+,/$tmprdn,/;
-          $entry->dn($dn_new);
-          my @replace = ('ieee802Device', 'ipHost', $newOC);
-          my @classes = $entry->get_value('objectClass');
-          foreach my $class (@classes) {
-            if (($class ne $oldOC) && ($class ne 'GOhard')) {
-              push(@replace, "$class");
-            }
-          }
-          $entry->replace("objectClass" => \@replace);
-          if ($entry->exists('gotoMode')) {
-            my $gotoMode = $entry->get_value('gotoMode');
-            if ($gotoMode eq 'locked') {
-              $entry->add('fdMode' => 'locked');
-            } else {
-              $entry->add('fdMode' => 'unlocked');
-            }
-            $entry->delete('gotoMode');
-          }
-          if ($entry->exists('argonautLdap2zoneAllowNotify')) {
-            $entry->delete('argonautLdap2zoneAllowNotify');
-          }
-          $mesg = $ldap->add($entry);
-          if ($mesg->code) {
-            print $entry->dn().": ".$mesg->error."\n";
-            next;
-          }
-          undef @replace;
-          $mesg = $ldap->delete($dn_old);
-          if ($mesg->code) {
-            print $entry->dn().": ".$mesg->error."\n";
-            next;
-          }
-          $mesg = $ldap->moddn($dn_new, newrdn => $newrdn);
-          if ($mesg->code) {
-            print $entry->dn().": ".$mesg->error."\n";
-            next;
-          }
-        }
-      }
-    } else {
-      print "Found no system using $oldOC\n";
-    }
-  }
-
-  # unbind to the LDAP server
-  my $unbind = $ldap->unbind;
-  $unbind->code && warn "! Unable to unbind from LDAP server: ", $unbind->error."\n";
-}
-
-# function that migrates winstations from FD<1.1 to FD>=1.1
-sub migrate_winstations
-{
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $mesg = $ldap->search(
-    filter => "(&(!(objectClass=fdWorkstation))(!(objectClass=inetOrgPerson))(!(objectClass=posixGroup))(uid=*\$)(objectClass=sambaSamAccount))",
-    base   => $base
-  );
-  $mesg->code && die $mesg->error;
-
-  if ($mesg->count > 0) {
-    print ("The following winstations are not using the new fdWorkstation objectClass:\n");
-
-    my @entries = $mesg->entries;
-
-    foreach my $entry (@entries) {
-      print $entry->dn()."\n";
-    }
-
-    if (ask_yn_question("Migrate these entries to fdWorkstation objectClass?")) {
-      foreach my $entry (@entries) {
-        my $cn = $entry->get_value('cn');
-        $cn =~ s/\$$//;
-        $entry->replace('cn' => $cn);
-        my $newrdn = "cn=".$cn;
-        my $dn_old = $entry->dn();
-        my $entrybase;
-        if ($dn_old =~ m/^[^,]+,$winstationrdn,(.+)$/) {
-          $entrybase = $1;
-        } elsif ($dn_old =~ m/^[^,]+,.*$systemrdn,(.+)$/) {
-          $entrybase = $1;
-        } elsif ($dn_old =~ m/^[^,]+,.*$winstationrdn,(.+)$/) {
-          $entrybase = $1;
-        } else {
-          die "Could not parse dn ".$dn_old."\n";
-        }
-        if (!branch_exists($ldap, "$workstationrdn,$entrybase")) {
-          if ($workstationrdn =~ m/^([^,]+),([^,]+)$/) {
-            if (!branch_exists($ldap, "$2,$entrybase")) {
-              create_branch($ldap, $entrybase, $2);
-            }
-            create_branch($ldap, "$2,$entrybase", $1);
-          } else {
-            create_branch($ldap, $entrybase, $workstationrdn);
-          }
-        }
-        my $dn_new = "$newrdn,$workstationrdn,$entrybase";
-        $entry->dn($dn_new);
-        my @replace = ('fdWorkstation');
-        my @classes = $entry->get_value('objectClass');
-        foreach my $class (@classes) {
-          if ($class ne 'account') {
-            push(@replace, "$class");
-          }
-        }
-        $entry->replace("objectClass" => \@replace);
-        $entry->add('fdMode' => 'unlocked');
-        $mesg = $ldap->add($entry);
-        if ($mesg->code) {
-          print $entry->dn().": ".$mesg->error."\n";
-          next;
-        }
-        undef @replace;
-        $mesg = $ldap->delete($dn_old);
-        if ($mesg->code) {
-          print $entry->dn().": ".$mesg->error."\n";
-          next;
-        }
-      }
-    }
-  } else {
-    print "Found no winstation to migrate\n";
-  }
-}
-
-# function that migrates phones from FD<1.1 to FD>=1.1
-sub migrate_phones {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $mesg = $ldap->search(
-    filter => '(&(objectClass=fdPhone)(objectClass=device))',
-    base   => $base
-  );
-  $mesg->code && die $mesg->error;
-
-  if ($mesg->count > 0) {
-    print ("The following phones are still using the device objectClass:\n");
-
-    my @entries = $mesg->entries;
-
-    foreach my $entry (@entries) {
-      print $entry->dn()."\n";
-    }
-
-    if (ask_yn_question("Migrate these entries to fdPhone objectClass?")) {
-      foreach my $entry (@entries) {
-        my $tmprdn = "cn=".$entry->get_value('cn')."+objectClass=fdPhone";
-        my $newrdn = "cn=".$entry->get_value('cn');
-        my $dn_old = $entry->dn();
-        my $dn_new = $entry->dn();
-        $dn_new =~ s/^[^,]+,/$tmprdn,/;
-        $entry->dn($dn_new);
-        my @replace = ();
-        my @classes = $entry->get_value('objectClass');
-        foreach my $class (@classes) {
-          if ($class ne 'device') {
-            push(@replace, "$class");
-          }
-        }
-        $entry->replace("objectClass" => \@replace);
-        $mesg = $ldap->add($entry);
-        if ($mesg->code) {
-          print $entry->dn().": ".$mesg->error."\n";
-          next;
-        }
-        undef @replace;
-        $mesg = $ldap->delete($dn_old);
-        if ($mesg->code) {
-          print $entry->dn().": ".$mesg->error."\n";
-          next;
-        }
-        $mesg = $ldap->moddn($dn_new, newrdn => $newrdn);
-        if ($mesg->code) {
-          print $entry->dn().": ".$mesg->error."\n";
-          next;
-        }
-      }
-    }
-  }
-
-  # unbind to the LDAP server
-  my $unbind = $ldap->unbind;
-  $unbind->code && warn "! Unable to unbind from LDAP server: ", $unbind->error."\n";
-}
-
-# function that migrates supannTypeEntite from FD<1.3 to FD>=1.3
-sub migrate_supanntypeentite {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $mesg = $ldap->search(
-    filter => '(&(supannTypeEntite=*)(!(supannTypeEntite={*}*)))',
-    base   => $base
-  );
-  $mesg->code && die $mesg->error;
-
-  if ($mesg->count > 0) {
-    print ("The following entries are missing prefix in supannTypeEntite value:\n");
-
-    my @entries = $mesg->entries;
-
-    foreach my $entry (@entries) {
-      print $entry->dn().": ".$entry->get_value("supannTypeEntite")."\n";
-    }
-
-    if (ask_yn_question("Migrate these entries to add the {SUPANN} prefix?")) {
-      foreach my $entry (@entries) {
-        $entry->replace("supannTypeEntite" => "{SUPANN}".$entry->get_value("supannTypeEntite"));
-        $mesg = $entry->update($ldap);
-        if ($mesg->code) {
-          print $entry->dn().": ".$mesg->error."\n";
-          next;
-        }
-      }
-    }
-  }
-
-  # unbind to the LDAP server
-  my $unbind = $ldap->unbind;
-  $unbind->code && warn "! Unable to unbind from LDAP server: ", $unbind->error."\n";
-}
-
-# List LDAP attributes which have been deprecated
-sub list_deprecated {
-  my ($obsolete_attrs, $obsolete_classes) = get_deprecated();
-
-  print "Deprecated attributes:\n";
-  foreach my $attribute (@$obsolete_attrs) {
-    printf(" %-30s\t%-60s\t- %s\n", $attribute->{'name'}, '('.$attribute->{'desc'}.')', $attribute->{'oid'});
-  }
-
-  print "Deprecated objectClasses:\n";
-  foreach my $oc (@$obsolete_classes) {
-    printf(" %-30s\t%-60s\t- %s\n", $oc->{'name'}, '('.$oc->{'desc'}.')', $oc->{'oid'});
-  }
-}
-
-# List LDAP entries using attributes which have been deprecated
-sub check_deprecated {
-  my ($obsolete_attrs, $obsolete_classes) = get_deprecated();
-
-  my $filterAttrs   = '(|'.join('', (map{ '('.$_->{'name'}.'=*)' } @$obsolete_attrs)).')';
-
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $entries = $ldap->search(
-    base    => "$base",
-    filter  => "$filterAttrs",
-  );
-  $entries->code && die $entries->error;
-
-  if ($entries->count > 0) {
-    while (my $entry = $entries->shift_entry) {
-      print $entry->dn." contains an obsolete attribute\n";
-    }
-  } else {
-    print "There are no entries in the LDAP using obsolete attributes\n";
-  }
-
-  my $useobsoletes = 0;
-  foreach my $class (@$obsolete_classes) {
-    $entries = $ldap->search(
-      base    => "$base",
-      filter  => '(objectClass='.$class->{'name'}.')',
-    );
-    $entries->code && die $entries->error;
-
-    if ($entries->count > 0) {
-      $useobsoletes = 1;
-      while (my $entry = $entries->shift_entry) {
-        print $entry->dn." uses the obsolete object class ".$class->{'name'}."\n";
-      }
-    }
-  }
-
-  if (!$useobsoletes) {
-    print "There are no entries in the LDAP using obsolete classes\n";
-  }
-}
-
-# Print a LDIF file removing attributes which have been deprecated
-sub ldif_deprecated {
-  my ($obsolete_attrs, $obsolete_classes) = get_deprecated();
-
-  my $filterAttrs   = '(|'.join('', (map{ '('.$_->{'name'}.'=*)' } @$obsolete_attrs)).')';
-  my $filterClasses = '(|'.join('', (map{ '(objectClass='.$_->{'name'}.')' } @$obsolete_classes)).')';
-
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $entries = $ldap->search(
-    base    => "$base",
-    filter  => "$filterAttrs",
-  );
-  $entries->code && die $entries->error;
-
-  if ($entries->count > 0) {
-    while (my $entry = $entries->shift_entry) {
-      print 'dn:'.$entry->dn."\n";
-      print "changetype:modify\n";
-      foreach my $attr (@$obsolete_attrs) {
-        if ($entry->exists($attr->{'name'})) {
-          print "delete:".$attr->{'name'}."\n-\n";
-        }
-      }
-      print "\n";
-    }
-  } else {
-    print "# There are no entries in the LDAP using obsolete attributes\n";
-  }
-
-  $entries = $ldap->search(
-    base    => "$base",
-    filter  => "$filterClasses",
-  );
-  $entries->code && die $entries->error;
-
-  if ($entries->count > 0) {
-    print "# WARNING: There are entries in the LDAP using obsolete classes, you need to edit them manually\n";
-  } else {
-    print "# There are no entries in the LDAP using obsolete classes\n";
-  }
-}
-
-# Read FD config in the LDAP
-sub read_ldap_config {
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $mesg = $ldap->search (base => "$configrdn,$base", filter => '(objectClass=fusionDirectoryConf)', scope => 'base');
-  die_on_ldap_errors($mesg);
-
-  if ($mesg->count > 0) {
-    if (($mesg->entries)[0]->exists('fdUserRDN')) {
-      $userrdn = ($mesg->entries)[0]->get_value('fdUserRDN');
-    }
-    if (($mesg->entries)[0]->exists('fdOGroupRDN')) {
-      $grouprdn = ($mesg->entries)[0]->get_value('fdOGroupRDN');
-    }
-    if (($mesg->entries)[0]->exists('fdAclRoleRDN')) {
-      $aclrolerdn = ($mesg->entries)[0]->get_value('fdAclRoleRDN');
-    }
-    if (($mesg->entries)[0]->exists('fdSystemRDN')) {
-      $systemrdn = ($mesg->entries)[0]->get_value('fdSystemRDN');
-    }
-    if (($mesg->entries)[0]->exists('fdDnsRDN')) {
-      $dnsrdn = ($mesg->entries)[0]->get_value('fdDnsRDN');
-    }
-    if (($mesg->entries)[0]->exists('fdDhcpRDN')) {
-      $dhcprdn = ($mesg->entries)[0]->get_value('fdDhcpRDN');
-    }
-    if (($mesg->entries)[0]->exists('fdWorkstationRDN')) {
-      $workstationrdn = ($mesg->entries)[0]->get_value('fdWorkstationRDN');
-    }
-    if (($mesg->entries)[0]->exists('fdSambaMachineAccountRDN')) {
-      $winstationrdn = ($mesg->entries)[0]->get_value('fdSambaMachineAccountRDN');
-    }
-  }
-
-  return ($mesg->entries)[0];
-}
-
-sub show_ldap_config {
-  my $config_node = read_ldap_config();
-  $config_node->dump();
-}
-
-sub set_config_var {
-  my ($var, $value) = @_;
-  if (!($var =~ m/^fd/)) {
-    $var = "fd$var";
-  }
-
-  print "Setting configuration var $var to $value\n";
-
-  # initiate the LDAP connexion
-  my %hash_ldap_param = get_ldap_connexion();
-
-  # LDAP's connection's parameters
-  my $base = $hash_ldap_param{base};
-  my $ldap = $hash_ldap_param{ldap};
-
-  my $result = $ldap->modify (
-    "$configrdn,$base",
-    replace => {
-      $var  => $value
-    }
-  );
-  $result->code && warn "! failed to set value for '".$var."' - ".$result->error_name.": ".$result->error_text;
-}
-
-sub show_version {
-  my $variables_common_path = "$vars{fd_home}/include/variables_common.inc";
-  if (-e $variables_common_path) {
-    open(my $vars, q{<}, $variables_common_path) || die ("Could not open $variables_common_path");
-    while(<$vars>) {
-      if ($_ =~ m/^define \(["']FD_VERSION["'], "([^"]+)"\);/) {
-        print "FusionDirectory version is $1\n";
-        last;
-      }
-    }
-    close($vars);
-  } else {
-    print "File $variables_common_path does not exists, can’t find out FusionDirectory version\n";
-  }
-}
-
-# function that set useful vars based on user specified folders and files
-sub set_vars {
-  $fd_config        = $vars{fd_config_dir}."/".$vars{config_file};
-  $fd_secrets       = $vars{fd_config_dir}."/".$vars{secrets_file};
-  $locale_dir       = $vars{fd_home}."/".$vars{locale_dir};
-  $class_cache      = $vars{fd_cache}."/".$vars{class_cache};
-  $locale_cache_dir = $vars{fd_cache}."/".$vars{locale_cache_dir};
-  $tmp_dir          = $vars{fd_cache}."/".$vars{tmp_dir};
-  $fai_log_dir      = $vars{fd_cache}."/".$vars{fai_log_dir};
-  $template_dir     = $vars{fd_cache}."/".$vars{template_dir};
-  my $supann_dir    = $vars{fd_cache}."/supann";
-
-  @root_config_dirs   = ( $vars{fd_home}, $vars{fd_config_dir} );
-  @apache_config_dirs = ( $vars{fd_spool_dir}, $vars{fd_cache}, $tmp_dir, $fai_log_dir,
-                          $template_dir );
-  @config_dirs = ( @root_config_dirs, @apache_config_dirs );
-}
-
-# function that list variables that can be modified by the user
-sub list_vars {
-  while ( my ($key, $value) = each(%vars) ) {
-    print "$key\t[$value]"."\n";
-  }
-}
-
-#################### main function #####################
-#die if the user is not root
-die ("! You have to run this script as root\n") if ($<!=0);
-
-  my @vars_keys = keys %vars;
-
-  # $commands{<cli-option>} = [<description>, <function>, <needs-ldap-config>];
-  my %commands = ();
-  $commands{"--update-cache"}         = ["Updating class.cache",                          \&rescan_classes];
-  $commands{"--update-locales"}       = ["Updating translations",                         \&rescan_i18n];
-  $commands{"--check-directories"}    = ["Checking FusionDirectory's directories",        \&check_directories];
-  $commands{"--check-config"}         = ["Checking FusionDirectory's config file",        \&check_config];
-  $commands{"--check-ldap"}           = ["Checking your LDAP tree",                       \&check_ldap, 1];
-  $commands{"--check-ids"}            = ["Checking for duplicated uid or gid numbers",    \&check_id_numbers, 1];
-  $commands{"--migrate-users"}        = ["Migrating your users",                          \&migrate_users, 1];
-  $commands{"--migrate-phones"}       = ["Migrating your phones from FD < 1.1",           \&migrate_phones, 1];
-  $commands{"--migrate-systems"}      = ["Migrating your systems from FD < 1.1",          \&migrate_systems, 1];
-  $commands{"--migrate-winstations"}  = ["Migrating your winstations from FD < 1.1",      \&migrate_winstations, 1];
-  $commands{"--migrate-dhcp"}         = ["Migrating DHCP configurations for FD >= 1.0.17",\&migrate_dhcp, 1];
-  $commands{"--migrate-supannentite"} = ["Fixing supannTypeEntite from FD < 1.3",         \&migrate_supanntypeentite];
-  $commands{"--delete-gosa-locks"}    = ["Delete lock tokens using old gosaLockEntry class", \&delete_gosa_locks];
-  $commands{"--install-plugins"}      = ["Installing FusionDirectory's plugins",          \&install_plugins];
-  $commands{"--encrypt-passwords"}    = ["Encrypt passwords in fusiondirectory.conf",     \&encrypt_passwords];
-  $commands{"--show-version"}         = ["Show FusionDirectory version from variables_common.inc", \&show_version];
-  $commands{"--list-vars"}            = ["List possible vars to give --set",              \&list_vars];
-  $commands{"--write-vars"}           = ["Choose FusionDirectory Directories",            \&write_vars];
-  $commands{"--set-VAR=value"}        = ["Set the variable VAR to value see --list-vars", \&die]; # Won't be called because it contains uppercase
-  $commands{"--list-deprecated"}      = ["List deprecated attributes and objectclasses",  \&list_deprecated];
-  $commands{"--check-deprecated"}     = ["List LDAP entries using deprecated attributes or objectclasses", \&check_deprecated];
-  $commands{"--ldif-deprecated"}      = ["# Print an LDIF removing deprecated attributes",\&ldif_deprecated];
-  $commands{"--show-config"}          = ["Show an LDAP dump of the FusionDirectory configuration", \&show_ldap_config];
-  $commands{"--set-config-VAR=value"} = ["Set the value in LDAP of a configuration field",\&set_config_var];
-
-  my $usage = 0;
-
-  set_vars();
-
-  foreach my $arg ( @ARGV ) {
-    if (( $arg =~ m/^--set-(.*)=(.*)$/ ) && (grep {$_ eq lc($1)} @vars_keys)) {
-      $vars{lc($1)} = $2;
-      print "Setting ".lc($1)." to $2\n";
-      set_vars();
-    } elsif ( $arg =~ m/^--set-config-(.*)=(.*)$/ ) {
-      set_config_var($1, $2);
-    } elsif ( defined $commands { lc ( $arg ) } ) {
-      my @command = @{ $commands{ $arg } };
-      if ((defined $command[2]) && $command[2]) {
-        read_ldap_config();
-      }
-      print( $command[0]."\n" );
-      $command[1]();
-    } elsif ( ( lc($arg) eq "--help" ) || ( lc($arg) eq "-h" ) ) {
-      print ( "\nCommands:\n" );
-      while ( my ( $key,$value ) = each %commands ) {
-        print ( "$key\t".$value->[0]."\n" );
-      }
-      print ("--yes\t\t\tAlways answer yes to yes/no questions\n");
-      print ("--help\t\t\tShows this help\n\n");
-
-    } elsif (( lc($arg) eq "--yes" ) || ( lc($arg) eq "-y" )) {
-      $yes_flag = 1;
-    } else {
-      print ("\nInvalid argument\n\n");
-      $usage = 1;
-    }
-  }
-
-  if( $usage || ( @ARGV <= 0 ) ) {
-    print ( "Usage : $0 [--yes]" );
-    foreach my $command ( keys ( %commands )) {
-      print ( " [$command]" );
-    }
-    print "\n\n";
-  }
-exit 0;
-
-__END__
-
-=head1 NAME
-
-fusiondirectory-setup - FusionDirectory configuration management tool
-
-=head1 DESCRIPTION
-
-This script is designed to perform multiple checks on your FusionDirectory/LDAP architecture, and fix usual misconfiguration.
-Some extra features allow you to install FusionDirectory's plugins, and change destinations directories.
-
-=head2 Options
-
-=over 4
-
-=item --update-cache
-
-This option update the /var/cache/fusiondirectory/class.cache file. Which contain PHP classes used in FusionDirectory, and their location.
-
-=item --update-locales
-
-This option update internalization, by generating a new .mo locales file for each language, with every .po files it found.
-Needs I<msgcat> and I<msgfmt> to be installed.
-
-=item --check-directories
-
-This option perform a check on all FusionDirectory's files or directories.
-
-=item --check-config
-
-This option perform a check on FusionDirectory's config file.
-
-=item --check-ldap
-
-This option check your LDAP tree. Looking for admin account, and groups or people branch. If one of those don't exists, the script will ask you what to do.
-
-=item --check-ids
-
-This option check your LDAP tree for duplicated uidNumber or gidNumber among users and groups.
-
-=item --migrate-users
-
-This option add FusionDirectory attributes to the people branch.
-
-=item --migrate-phones
-
-This option removes device objectClass for phones as fdPhones is now structural since FD 1.1.
-
-=item --migrate-systems
-
-This option replace old systems objectClasses by new objectClasses from FD 1.1.
-
-=item --migrate-winstations
-
-This option replace old winstations objectClasses by new objectClasses from FD 1.1.
-
-=item --migrate-dhcp
-
-This option moves DHCP configurations from systems branch to DHCP branch, which is necessary for FusionDirectory 1.0.17 and above.
-
-=item --migrate-supannentite
-
-This option adds the {SUPANN} prefix that was missing in supannTypeEntite values before FD 1.3.
-
-=item --delete-gosa-locks
-
-This option will delete old GOsa style lock tokens from 1.0.15 or older
-
-=item --install-plugins
-
-This option will install the plugin from a tar.gz of the plugin. This option is intended for people wanting to install from the sources.
-
-=item --encrypt-passwords
-
-This option will encrypt the password inside your fusiondirectory.conf file, it need the headers module to be activated in your apache to work.
-
-=item --show-version
-
-This option will parse the file variables_common.inc of FusionDirectory to find out which version of FusionDirectory is installed.
-
-=item --list_vars
-
-This option will list the variables you can change to install FusionDirectory on another set of directories. This option is intended for people wanting to install from the sources.
-
-=item --write-vars
-
-This option will write back the variables.inc file with the updated variables and is only useful with --set-VAR=variable and for people installing from sources.
-
-=item --set-VAR=variable
-
-This option will change the variable for the FusionDirectory installation. it is only useful with --install-directories and for people installing from sources.
-
-=item --list-deprecated
-
-This option will list the deprecated attributes and objectclasses still in your schemas and no longer used by FusionDirectory.
-
-=item --check-deprecated
-
-This option will list the dn of LDAP entries using deprecated attributes or objectclasses and no longer used by FusionDirectory.
-
-=item --ldif-deprecated
-
-This option will print an LDIF to allow you to remove deprecated attributes from you ldap server. Be careful and check before applying.
-
-=item --show-config
-
-This option will print a dump of the FusionDirectory configuration LDAP node.
-
-=item --set-config-VAR=value
-
-This option sets the value of a configuration field in the LDAP. The value needs to be in the correct LDAP format.
-You cannot set multivalued field with this. The var name can be provided with or without the fd prefix.
-
-=item --yes
-
-This flag will answer "yes" to every yes/no question asked by the script
-
-=back
-
-=head1 EXAMPLE
-
- benoit@catbert$ fusiondirectory-setup --update-cache --update-locales
-
- Update FusionDirectory class cache and update localization
-
- benoit@catbert$ fusiondirectory-setup --list-vars
- List possible vars to give --set
-locale_cache_dir	[locale]
-config_file     	[fusiondirectory.conf]
-fd_cache        	[/var/cache/fusiondirectory]
-fd_smarty_path  	[/usr/share/php/smarty3/Smarty.class.php]
-fd_spool_dir    	[/var/spool/fusiondirectory]
-fai_log_dir     	[fai]
-tmp_dir         	[tmp]
-secrets_file    	[fusiondirectory.secrets]
-template_dir    	[template]
-locale_dir      	[locale]
-class_cache     	[class.cache]
-fd_config_dir   	[/etc/fusiondirectory]
-fd_home         	[/var/www/fusiondirectory]
-
-
- benoit@catbert$ fusiondirectory-setup --set-class_cache=class.cache --write-vars
-
- update the class.cache name and write back the variables.inc file
-
-=head1 BUGS
-
-Please report any bugs, or post any suggestions, to the fusiondirectory mailing list fusiondirectory-users or to
-<https://gitlab.fusiondirectory.org/fusiondirectory/fd/issues/new>
-
-=head1 AUTHORS
-
-Benjamin Carpentier
-
-Come Bernigaud
-
-=head1 LICENCE AND COPYRIGHT
-
-This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-
-=over 2
-
-=item Copyright (C) 2011-2018  FusionDirectory
-
-=back
-
-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.
-
-=cut
diff --git a/contrib/man/fusiondirectory-insert-schema.1 b/contrib/man/fusiondirectory-insert-schema.1
deleted file mode 100644
index 3cd7698733ec8a0a5cdff6dba4d96bd420bfbebe..0000000000000000000000000000000000000000
--- a/contrib/man/fusiondirectory-insert-schema.1
+++ /dev/null
@@ -1,217 +0,0 @@
-.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-.    ds C`
-.    ds C'
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is >0, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.\"
-.\" Avoid warning from groff about undefined register 'F'.
-.de IX
-..
-.nr rF 0
-.if \n(.g .if rF .nr rF 1
-.if (\n(rF:(\n(.g==0)) \{\
-.    if \nF \{\
-.        de IX
-.        tm Index:\\$1\t\\n%\t"\\$2"
-..
-.        if !\nF==2 \{\
-.            nr % 0
-.            nr F 2
-.        \}
-.    \}
-.\}
-.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "FUSIONDIRECTORY-INSERT-SCHEMA 1"
-.TH FUSIONDIRECTORY-INSERT-SCHEMA 1 "2019-05-20" "FusionDirectory 1.3.1" "FusionDirectory Documentation"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-fusiondirectory\-insert\-schema \- insert schema needed by FusionDirectory into the ldap server
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-fusiondirectory-insert-schema [\-y] [\-n] [\-c] [\-o options] [path] [\-h|\-l|\-i schema1 schema2|\-m schema1 schema2|\-e schema1 schema2]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-This program will insert the schema needed by FusionDirectory into the ldap server, or the specified schemas
-.SS "Options"
-.IX Subsection "Options"
-.IP "\-i" 6
-.IX Item "-i"
-This option insert the given list of schemas instead of the default list
-.IP "\-m" 6
-.IX Item "-m"
-This option insert the given list of schemas, replacing already inserted versions of those schemas
-.IP "\-e" 6
-.IX Item "-e"
-This option empty the given list of schemas, removing attributes and objectClasses from those.
-This is useful because you cannot delete a schema without restarting slapd.
-.IP "\-l" 6
-.IX Item "-l"
-This option list inserted schemas
-.IP "\-n" 6
-.IX Item "-n"
-This option will make generated ldifs file to not be deleted after execution. Might be useful to understand errors.
-.IP "\-c" 6
-.IX Item "-c"
-This option make the program continue even if an error occur
-.IP "\-y" 6
-.IX Item "-y"
-This option answer yes to all questions. The only question right now is the confirmation one when you ask to empty a schema.
-.IP "\-o" 6
-.IX Item "-o"
-This option allow you to specify specifics options to give to ldap commands such as ldapmodify,
-but beware that you will not be able to see things like password prompts as the output of these commands is piped.
-.SH "EXAMPLES"
-.IX Header "EXAMPLES"
-.Vb 2
-\& fusion@catbert$ fusiondirectory\-insert\-schema
-\&   Insert the core schemas in your LDAP directory
-\&
-\& fusion@catbert$ fusiondirectory\-insert\-schema \-i /etc/ldap/otherschema/myschema.ldif
-\&   Insert the schema /etc/ldap/otherschema/myschema.ldif
-\&
-\& fusion@catbert$ fusiondirectory\-insert\-schema \-i /etc/ldap/otherschema/myschema.schema
-\&   Convert /etc/ldap/otherschema/myschema.schema to ldif and insert it
-\&
-\& fusion@catbert$ fusiondirectory\-insert\-schema \-i myschema
-\&   Insert the schema myschema.ldif from working directory
-\&
-\& fusion@catbert$ fusiondirectory\-insert\-schema \-m /etc/ldap/otherschema/myschema.schema
-\&   Convert /etc/ldap/otherschema/myschema.schema to ldif and replace the existing schema by this one
-\&
-\& fusion@catbert$ fusiondirectory\-insert\-schema \-e myschema
-\&   Empty the schema myschema
-\&
-\& fusion@catbert$ fusiondirectory\-insert\-schema \-o "\-H ldap://my.ldap.com \-ZZ \-D \*(Aqcn=admin,cn=config\*(Aq \-w password \-x"
-\&   Connect to another ldap server to insert the schema
-.Ve
-.SH "BUGS"
-.IX Header "BUGS"
-Please report any bugs, or post any suggestions, to the fusiondirectory mailing list fusiondirectory-users or to
-<https://gitlab.fusiondirectory.org/fusiondirectory/fd/issues/new>
-.SH "AUTHOR"
-.IX Header "AUTHOR"
-Come Bernigaud
-.SH "LICENCE AND COPYRIGHT"
-.IX Header "LICENCE AND COPYRIGHT"
-This code is part of FusionDirectory <http://www.fusiondirectory.org>
-.IP "Copyright (C) 2011\-2018 FusionDirectory Project" 1
-.IX Item "Copyright (C) 2011-2018 FusionDirectory Project"
-.PP
-This program is distributed in the hope that it will be useful,
-but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of
-\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0  See the
-\&\s-1GNU\s0 General Public License for more details.
diff --git a/contrib/man/fusiondirectory-setup.1 b/contrib/man/fusiondirectory-setup.1
deleted file mode 100644
index be17318af469666aa65f5caf572a279bc637b325..0000000000000000000000000000000000000000
--- a/contrib/man/fusiondirectory-setup.1
+++ /dev/null
@@ -1,272 +0,0 @@
-.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-.    ds C`
-.    ds C'
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is >0, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.\"
-.\" Avoid warning from groff about undefined register 'F'.
-.de IX
-..
-.nr rF 0
-.if \n(.g .if rF .nr rF 1
-.if (\n(rF:(\n(.g==0)) \{\
-.    if \nF \{\
-.        de IX
-.        tm Index:\\$1\t\\n%\t"\\$2"
-..
-.        if !\nF==2 \{\
-.            nr % 0
-.            nr F 2
-.        \}
-.    \}
-.\}
-.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "FUSIONDIRECTORY-SETUP 1"
-.TH FUSIONDIRECTORY-SETUP 1 "2019-06-27" "FusionDirectory 1.3.1" "FusionDirectory Documentation"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-fusiondirectory\-setup \- FusionDirectory configuration management tool
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-This script is designed to perform multiple checks on your FusionDirectory/LDAP architecture, and fix usual misconfiguration.
-Some extra features allow you to install FusionDirectory's plugins, and change destinations directories.
-.SS "Options"
-.IX Subsection "Options"
-.IP "\-\-update\-cache" 4
-.IX Item "--update-cache"
-This option update the /var/cache/fusiondirectory/class.cache file. Which contain \s-1PHP\s0 classes used in FusionDirectory, and their location.
-.IP "\-\-update\-locales" 4
-.IX Item "--update-locales"
-This option update internalization, by generating a new .mo locales file for each language, with every .po files it found.
-Needs \fImsgcat\fR and \fImsgfmt\fR to be installed.
-.IP "\-\-check\-directories" 4
-.IX Item "--check-directories"
-This option perform a check on all FusionDirectory's files or directories.
-.IP "\-\-check\-config" 4
-.IX Item "--check-config"
-This option perform a check on FusionDirectory's config file.
-.IP "\-\-check\-ldap" 4
-.IX Item "--check-ldap"
-This option check your \s-1LDAP\s0 tree. Looking for admin account, and groups or people branch. If one of those don't exists, the script will ask you what to do.
-.IP "\-\-check\-ids" 4
-.IX Item "--check-ids"
-This option check your \s-1LDAP\s0 tree for duplicated uidNumber or gidNumber among users and groups.
-.IP "\-\-migrate\-users" 4
-.IX Item "--migrate-users"
-This option add FusionDirectory attributes to the people branch.
-.IP "\-\-migrate\-phones" 4
-.IX Item "--migrate-phones"
-This option removes device objectClass for phones as fdPhones is now structural since \s-1FD 1.1.\s0
-.IP "\-\-migrate\-systems" 4
-.IX Item "--migrate-systems"
-This option replace old systems objectClasses by new objectClasses from \s-1FD 1.1.\s0
-.IP "\-\-migrate\-winstations" 4
-.IX Item "--migrate-winstations"
-This option replace old winstations objectClasses by new objectClasses from \s-1FD 1.1.\s0
-.IP "\-\-migrate\-dhcp" 4
-.IX Item "--migrate-dhcp"
-This option moves \s-1DHCP\s0 configurations from systems branch to \s-1DHCP\s0 branch, which is necessary for FusionDirectory 1.0.17 and above.
-.IP "\-\-migrate\-supannentite" 4
-.IX Item "--migrate-supannentite"
-This option adds the {\s-1SUPANN\s0} prefix that was missing in supannTypeEntite values before \s-1FD 1.3.\s0
-.IP "\-\-delete\-gosa\-locks" 4
-.IX Item "--delete-gosa-locks"
-This option will delete old GOsa style lock tokens from 1.0.15 or older
-.IP "\-\-install\-plugins" 4
-.IX Item "--install-plugins"
-This option will install the plugin from a tar.gz of the plugin. This option is intended for people wanting to install from the sources.
-.IP "\-\-encrypt\-passwords" 4
-.IX Item "--encrypt-passwords"
-This option will encrypt the password inside your fusiondirectory.conf file, it need the headers module to be activated in your apache to work.
-.IP "\-\-show\-version" 4
-.IX Item "--show-version"
-This option will parse the file variables_common.inc of FusionDirectory to find out which version of FusionDirectory is installed.
-.IP "\-\-list_vars" 4
-.IX Item "--list_vars"
-This option will list the variables you can change to install FusionDirectory on another set of directories. This option is intended for people wanting to install from the sources.
-.IP "\-\-write\-vars" 4
-.IX Item "--write-vars"
-This option will write back the variables.inc file with the updated variables and is only useful with \-\-set\-VAR=variable and for people installing from sources.
-.IP "\-\-set\-VAR=variable" 4
-.IX Item "--set-VAR=variable"
-This option will change the variable for the FusionDirectory installation. it is only useful with \-\-install\-directories and for people installing from sources.
-.IP "\-\-list\-deprecated" 4
-.IX Item "--list-deprecated"
-This option will list the deprecated attributes and objectclasses still in your schemas and no longer used by FusionDirectory.
-.IP "\-\-check\-deprecated" 4
-.IX Item "--check-deprecated"
-This option will list the dn of \s-1LDAP\s0 entries using deprecated attributes or objectclasses and no longer used by FusionDirectory.
-.IP "\-\-ldif\-deprecated" 4
-.IX Item "--ldif-deprecated"
-This option will print an \s-1LDIF\s0 to allow you to remove deprecated attributes from you ldap server. Be careful and check before applying.
-.IP "\-\-show\-config" 4
-.IX Item "--show-config"
-This option will print a dump of the FusionDirectory configuration \s-1LDAP\s0 node.
-.IP "\-\-set\-config\-VAR=value" 4
-.IX Item "--set-config-VAR=value"
-This option sets the value of a configuration field in the \s-1LDAP.\s0 The value needs to be in the correct \s-1LDAP\s0 format.
-You cannot set multivalued field with this. The var name can be provided with or without the fd prefix.
-.IP "\-\-yes" 4
-.IX Item "--yes"
-This flag will answer \*(L"yes\*(R" to every yes/no question asked by the script
-.SH "EXAMPLE"
-.IX Header "EXAMPLE"
-.Vb 1
-\& benoit@catbert$ fusiondirectory\-setup \-\-update\-cache \-\-update\-locales
-\&
-\& Update FusionDirectory class cache and update localization
-\&
-\& benoit@catbert$ fusiondirectory\-setup \-\-list\-vars
-\& List possible vars to give \-\-set
-\&locale_cache_dir        [locale]
-\&config_file             [fusiondirectory.conf]
-\&fd_cache                [/var/cache/fusiondirectory]
-\&fd_smarty_dir           [/usr/share/php/smarty3]
-\&fd_spool_dir            [/var/spool/fusiondirectory]
-\&fai_log_dir             [fai]
-\&tmp_dir                 [tmp]
-\&secrets_file            [fusiondirectory.secrets]
-\&template_dir            [template]
-\&locale_dir              [locale]
-\&class_cache             [class.cache]
-\&fd_config_dir           [/etc/fusiondirectory]
-\&fd_home [/var/www/fusiondirectory]
-\&
-\&
-\& benoit@catbert$ fusiondirectory\-setup \-\-set\-class_cache=class.cache \-\-write\-vars
-\&
-\& update the class.cache name and write back the variables.inc file
-.Ve
-.SH "BUGS"
-.IX Header "BUGS"
-Please report any bugs, or post any suggestions, to the fusiondirectory mailing list fusiondirectory-users or to
-<https://gitlab.fusiondirectory.org/fusiondirectory/fd/issues/new>
-.SH "AUTHORS"
-.IX Header "AUTHORS"
-Benjamin Carpentier
-.PP
-Come Bernigaud
-.SH "LICENCE AND COPYRIGHT"
-.IX Header "LICENCE AND COPYRIGHT"
-This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-.IP "Copyright (C) 2011\-2018  FusionDirectory" 2
-.IX Item "Copyright (C) 2011-2018 FusionDirectory"
-.PP
-This program is distributed in the hope that it will be useful,
-but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of
-\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0  See the
-\&\s-1GNU\s0 General Public License for more details.
diff --git a/contrib/man/fusiondirectory.conf.5 b/contrib/man/fusiondirectory.conf.5
deleted file mode 100644
index 60ae97b2cf1a4a95a353cfefee4ecfef98d3b6fc..0000000000000000000000000000000000000000
--- a/contrib/man/fusiondirectory.conf.5
+++ /dev/null
@@ -1,279 +0,0 @@
-.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-.    ds C`
-.    ds C'
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is >0, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.\"
-.\" Avoid warning from groff about undefined register 'F'.
-.de IX
-..
-.nr rF 0
-.if \n(.g .if rF .nr rF 1
-.if (\n(rF:(\n(.g==0)) \{\
-.    if \nF \{\
-.        de IX
-.        tm Index:\\$1\t\\n%\t"\\$2"
-..
-.        if !\nF==2 \{\
-.            nr % 0
-.            nr F 2
-.        \}
-.    \}
-.\}
-.rr rF
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "FUSIONDIRECTORY.CONF 1"
-.TH FUSIONDIRECTORY.CONF 1 "2019-05-20" "FusionDirectory 1.3.1" "FusionDirectory Documentation"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-fusiondirectory.conf \- FusionDirectory configuration file
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The fusiondirectory.conf file is a \s-1XML\s0 style configuration file. It is parsed by FusionDirectory during log in.  The file may contain extra tabs and newlines for formatting purposes.  Tag keywords in the file are case-insensitive. Comments should be placed outside of \s-1XML\s0 tags and should  be  encapsulated  inside  of <!\-\- \-\-> tags.
-.PP
-The fusiondirectory.conf file can be used to configure the access control of the FusionDirectory webinterface.
-.SS "Configuration layout"
-.IX Subsection "Configuration layout"
-The configuration has to be specified inside of the <conf> tags. It is composed by a main configuration \- including information about several locations.
-.PP
-Layout example:
-.PP
-<?xml version=\*(L"1.0\*(R"?>
-.PP
-.Vb 1
-\&   <conf>
-\&
-\&     <!\-\- Global setup \-\->
-\&     <main>
-\&
-\&        <!\-\- Location specific setups \-\->
-\&        <location name="">
-\&    ...
-\&        </location>
-\&
-\&     </main>
-\&
-\&   </conf>
-.Ve
-.SS "Main section"
-.IX Subsection "Main section"
-The main section defines global settings, which might be overridden by each location definition inside of this global definition.
-.PP
-Example layout:
-.PP
-<main default=\*(L"Example Net\*(R" listSummary=\*(L"false\*(R" ... >
-.PP
-.Vb 4
-\&   <location name="Example Net"
-\&      logging="TRUE"
-\&      forceSSL="TRUE"
-\&       ...
-\&
-\&       <referral uri="ldaps://ldap.example.net:636" base="dc=example,dc=net"
-\&           admin="cn=fusiondirectory\-admin,dc=example,dc=net"
-\&           password="secret" />
-\&
-\&    </location>
-.Ve
-.PP
-</main>
-.SS "Main section options"
-.IX Subsection "Main section options"
-.IP "\fBforceSSL\fR \fIbool\fR" 4
-.IX Item "forceSSL bool"
-The forceSSL statement enables \s-1PHP\s0 security checks to force encrypted access to the web interface. FusionDirectory will try to redirect to the same \s-1URL\s0 just  with https://.
-.IP "\fBlogging\fR \fIbool\fR" 4
-.IX Item "logging bool"
-The logging statement enables event logging on FusionDirectory side. Setting it to true, FusionDirectory will log every action a user performs via syslog.  If  you  use rsyslog and configure it to mysql logging, you can browse all events within FusionDirectory.
-FusionDirectory will not log anything, if the logging value is empty or set to false.
-.IP "\fBtemplateCompileDirectory\fR \fIpath\fR" 4
-.IX Item "templateCompileDirectory path"
-The templateCompileDirectory statements defines the path, where the \s-1PHP\s0 templating engins smarty should store its compiled FusionDirectory templates for improved speed.
-This path needs to be writeable by the user your webserver is running with.
-.IP "\fBignoreAcl\fR \fIdn\fR" 4
-.IX Item "ignoreAcl dn"
-The ignoreAcl value tells FusionDirectory to ignore complete \s-1ACL\s0 sets for the given \s-1DN.\s0 Add your \s-1DN\s0 here and you'll be able to restore accidentally dropped ACLs.
-.IP "\fBdisplayerrors\fR bool" 4
-.IX Item "displayerrors bool"
-The  displayerrors  statement tells FusionDirectory to show \s-1PHP\s0 errors in the upper part of the screen. This should be disabled in productive deployments, because there
-might be some important passwords around.
-.SS "Location section options"
-.IX Subsection "Location section options"
-.IP "\fBname\fR \fIstring\fR" 4
-.IX Item "name string"
-The name of this location section that will appear in the dropdown on FusionDirectory homepage
-.IP "\fBconfig\fR \fIdn\fR" 4
-.IX Item "config dn"
-The config statement defines the \s-1LDAP\s0 base, where FusionDirectory stores management information, such as site wide locking and user notifications.
-.IP "\fBdebuglevel\fR \fIinteger\fR" 4
-.IX Item "debuglevel integer"
-The debuglevel value tells FusionDirectory to display certain information on each page load. Value is an \s-1OR\s0 combination of the following byte values :
-.Sp
-\&\s-1DEBUG_TRACE\s0    = 1
-.Sp
-\&\s-1DEBUG_LDAP\s0     = 2
-.Sp
-\&\s-1DEBUG_DB\s0       = 4
-.Sp
-\&\s-1DEBUG_SHELL\s0    = 8
-.Sp
-\&\s-1DEBUG_POST\s0     = 16
-.Sp
-\&\s-1DEBUG_SESSION\s0  = 32
-.Sp
-\&\s-1DEBUG_CONFIG\s0   = 64
-.Sp
-\&\s-1DEBUG_ACL\s0      = 128
-.Sp
-\&\s-1DEBUG_ARGONAUT\s0 = 256
-.Sp
-\&\s-1DEBUG_MAIL\s0     = 512
-.SS "\s-1LDAP\s0 options"
-.IX Subsection "LDAP options"
-.IP "\fBldapTLS\fR \fIbool\fR" 4
-.IX Item "ldapTLS bool"
-The ldapTLS statement enables or disables \s-1TLS\s0 operating on \s-1LDAP\s0 connections.
-.IP "\fBldapFollowReferrals\fR \fIbool\fR" 4
-.IX Item "ldapFollowReferrals bool"
-The ldapFollowReferrals statement tells FusionDirectory to follow \s-1LDAP\s0 referrals.
-.SS "\s-1LDAP\s0 resource definition"
-.IX Subsection "LDAP resource definition"
-For every location you define inside your fusiondirectory.conf, you need at least one entry of the type referral. These entries define the way how to connect to some directory service.
-.PP
-Example:
-.PP
-.Vb 3
-\&   <referral uri="ldap://ldap.example.net" base="dc=example,dc=net"
-\&       admin="cn=fusiondirectory\-admin,dc=example,dc=net"
-\&       password="secret" />
-.Ve
-.PP
-uri is a valid \s-1LDAP\s0 uri. base is the base this referral is responsible for.  admin is the \s-1DN\s0 which has the permission to write \s-1LDAP\s0 entries. And password is the corresponding password for this \s-1DN.\s0
-You can define a set of referrals if you have several server to connect to.
-.SH "BUGS"
-.IX Header "BUGS"
-Please report any bugs, or post any suggestions, to the fusiondirectory mailing list fusiondirectory-users or to <https://gitlab.fusiondirectory.org/fusiondirectory/fd/issues/new>
-.SH "LICENCE AND COPYRIGHT"
-.IX Header "LICENCE AND COPYRIGHT"
-This code is part of FusionDirectory <http://www.fusiondirectory.org>
-.IP "Copyright (C) 2003\-2010 \s-1GONICUS\s0 GmbH" 2
-.IX Item "Copyright (C) 2003-2010 GONICUS GmbH"
-.PD 0
-.IP "Copyright (C) 2011\-2018 FusionDirectory project" 2
-.IX Item "Copyright (C) 2011-2018 FusionDirectory project"
-.PD
-.PP
-This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0  See the \s-1GNU\s0 General Public License for more details.
diff --git a/contrib/man/fusiondirectory.conf.pod b/contrib/man/fusiondirectory.conf.pod
deleted file mode 100644
index 708b6319ef907d5f62be8facfdde480e7dcf3e43..0000000000000000000000000000000000000000
--- a/contrib/man/fusiondirectory.conf.pod
+++ /dev/null
@@ -1,165 +0,0 @@
-=head1 NAME
-
-fusiondirectory.conf - FusionDirectory configuration file
-
-=head1 DESCRIPTION
-
-The fusiondirectory.conf file is a XML style configuration file. It is parsed by FusionDirectory during log in.  The file may contain extra tabs and newlines for formatting purposes.  Tag keywords in the file are case-insensitive. Comments should be placed outside of XML tags and should  be  encapsulated  inside  of <!-- --> tags.
-
-The fusiondirectory.conf file can be used to configure the access control of the FusionDirectory webinterface.
-
-=head2 Configuration layout
-
-The configuration has to be specified inside of the <conf> tags. It is composed by a main configuration - including information about several locations.
-
-Layout example:
-
-<?xml version="1.0"?>
-
-   <conf>
-
-     <!-- Global setup -->
-     <main>
-
-        <!-- Location specific setups -->
-        <location name="">
-    ...
-        </location>
-
-     </main>
-
-   </conf>
-
-=head2 Main section
-
-The main section defines global settings, which might be overridden by each location definition inside of this global definition.
-
-Example layout:
-
-<main default="Example Net" listSummary="false" ... >
-
-   <location name="Example Net"
-      logging="TRUE"
-      forceSSL="TRUE"
-       ...
-
-       <referral uri="ldaps://ldap.example.net:636" base="dc=example,dc=net"
-           admin="cn=fusiondirectory-admin,dc=example,dc=net"
-           password="secret" />
-
-    </location>
-
-</main>
-
-=head2 Main section options
-
-=over
-
-=item B<forceSSL> I<bool>
-
-The forceSSL statement enables PHP security checks to force encrypted access to the web interface. FusionDirectory will try to redirect to the same URL just  with https://.
-
-=item B<logging> I<bool>
-
-The logging statement enables event logging on FusionDirectory side. Setting it to true, FusionDirectory will log every action a user performs via syslog.  If  you  use rsyslog and configure it to mysql logging, you can browse all events within FusionDirectory.
-FusionDirectory will not log anything, if the logging value is empty or set to false.
-
-=item B<templateCompileDirectory> I<path>
-
-The templateCompileDirectory statements defines the path, where the PHP templating engins smarty should store its compiled FusionDirectory templates for improved speed.
-This path needs to be writeable by the user your webserver is running with.
-
-=item B<ignoreAcl> I<dn>
-
-The ignoreAcl value tells FusionDirectory to ignore complete ACL sets for the given DN. Add your DN here and you'll be able to restore accidentally dropped ACLs.
-
-=item B<displayerrors> bool
-
-The  displayerrors  statement tells FusionDirectory to show PHP errors in the upper part of the screen. This should be disabled in productive deployments, because there
-might be some important passwords around.
-
-=back
-
-=head2 Location section options
-
-=over
-
-=item B<name> I<string>
-
-The name of this location section that will appear in the dropdown on FusionDirectory homepage
-
-=item B<config> I<dn>
-
-The config statement defines the LDAP base, where FusionDirectory stores management information, such as site wide locking and user notifications.
-
-=item B<debuglevel> I<integer>
-
-The debuglevel value tells FusionDirectory to display certain information on each page load. Value is an OR combination of the following byte values :
-
-DEBUG_TRACE    = 1
-
-DEBUG_LDAP     = 2
-
-DEBUG_DB       = 4
-
-DEBUG_SHELL    = 8
-
-DEBUG_POST     = 16
-
-DEBUG_SESSION  = 32
-
-DEBUG_CONFIG   = 64
-
-DEBUG_ACL      = 128
-
-DEBUG_ARGONAUT = 256
-
-DEBUG_MAIL     = 512
-
-=back
-
-=head2 LDAP options
-
-=over
-
-=item B<ldapTLS> I<bool>
-
-The ldapTLS statement enables or disables TLS operating on LDAP connections.
-
-=item B<ldapFollowReferrals> I<bool>
-
-The ldapFollowReferrals statement tells FusionDirectory to follow LDAP referrals.
-
-=back
-
-=head2 LDAP resource definition
-
-For every location you define inside your fusiondirectory.conf, you need at least one entry of the type referral. These entries define the way how to connect to some directory service.
-
-Example:
-
-   <referral uri="ldap://ldap.example.net" base="dc=example,dc=net"
-       admin="cn=fusiondirectory-admin,dc=example,dc=net"
-       password="secret" />
-
-uri is a valid LDAP uri. base is the base this referral is responsible for.  admin is the DN which has the permission to write LDAP entries. And password is the corresponding password for this DN.
-You can define a set of referrals if you have several server to connect to.
-
-=head1 BUGS
-
-Please report any bugs, or post any suggestions, to the fusiondirectory mailing list fusiondirectory-users or to <https://gitlab.fusiondirectory.org/fusiondirectory/fd/issues/new>
-
-=head1 LICENCE AND COPYRIGHT
-
-This code is part of FusionDirectory <http://www.fusiondirectory.org>
-
-=over 2
-
-=item Copyright (C) 2003-2010 GONICUS GmbH
-
-=item Copyright (C) 2011-2018 FusionDirectory project
-
-=back
-
-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.
-
diff --git a/contrib/openldap/core-fd-conf.schema b/contrib/openldap/core-fd-conf.schema
index 840d1ff2bbd02b1b2ed52ba27ebbe2b0065e3fd5..191abfa0063155f7642731fe229b8e2c2f7444e0 100644
--- a/contrib/openldap/core-fd-conf.schema
+++ b/contrib/openldap/core-fd-conf.schema
@@ -155,6 +155,18 @@ attributetype ( 1.3.6.1.4.1.38414.8.12.21 NAME 'fdPostalAddressPattern'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
   SINGLE-VALUE)
 
+attributetype ( 1.3.6.1.4.1.38414.8.12.22 NAME 'fdMaxAvatarSize'
+  DESC 'FusionDirectory - Maximum user picture width and height in pixels'
+  EQUALITY integerMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.38414.8.12.23 NAME 'fdGivenNameRequired'
+  DESC 'FusionDirectory - Whether givenName field is required on users'
+  EQUALITY booleanMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
+  SINGLE-VALUE )
+
 # Password
 
 attributetype ( 1.3.6.1.4.1.38414.8.13.1 NAME 'fdPasswordDefaultHash'
@@ -202,6 +214,12 @@ attributetype ( 1.3.6.1.4.1.38414.8.13.8 NAME 'fdForcePasswordDefaultHash'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
   SINGLE-VALUE )
 
+attributetype ( 1.3.6.1.4.1.38414.8.13.9 NAME 'fdPasswordAllowedHashes'
+  DESC 'FusionDirectory - Allowed password hashes'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
 # Core settings
 
 attributetype ( 1.3.6.1.4.1.38414.8.14.2 NAME 'fdListSummary'
@@ -270,12 +288,14 @@ attributetype ( 1.3.6.1.4.1.38414.8.15.5 NAME 'fdSessionLifeTime'
 
 attributetype ( 1.3.6.1.4.1.38414.8.15.6 NAME 'fdHttpAuthActivated'
   DESC 'FusionDirectory - HTTP Basic Auth activation'
+  OBSOLETE
   EQUALITY booleanMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
   SINGLE-VALUE )
 
 attributetype ( 1.3.6.1.4.1.38414.8.15.7 NAME 'fdHttpHeaderAuthActivated'
   DESC 'FusionDirectory - HTTP Header Auth activation'
+  OBSOLETE
   EQUALITY booleanMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
   SINGLE-VALUE )
@@ -287,6 +307,13 @@ attributetype ( 1.3.6.1.4.1.38414.8.15.8 NAME 'fdHttpHeaderAuthHeaderName'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
   SINGLE-VALUE )
 
+attributetype ( 1.3.6.1.4.1.38414.8.15.9 NAME 'fdLoginMethod'
+  DESC 'FusionDirectory - Active login method'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE )
+
 # Debugging
 
 attributetype ( 1.3.6.1.4.1.38414.8.16.1 NAME 'fdDisplayErrors'
@@ -313,6 +340,12 @@ attributetype ( 1.3.6.1.4.1.38414.8.16.4 NAME 'fdDebugLevel'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
   SINGLE-VALUE)
 
+attributetype ( 1.3.6.1.4.1.38414.8.16.5 NAME 'fdDebugLogging'
+  DESC 'FusionDirectory - Debug logging'
+  EQUALITY booleanMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
+  SINGLE-VALUE )
+
 # Snapshots
 
 attributetype ( 1.3.6.1.4.1.38414.8.17.1 NAME 'fdEnableSnapshots'
@@ -328,6 +361,31 @@ attributetype ( 1.3.6.1.4.1.38414.8.17.2 NAME 'fdSnapshotBase'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
   SINGLE-VALUE)
 
+attributetype ( 1.3.6.1.4.1.38414.8.17.3 NAME 'fdEnableAutomaticSnapshots'
+  DESC 'FusionDirectory - Weither or not to enable snapshots'
+  EQUALITY booleanMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.8.17.4 NAME 'fdSnapshotMinRetention'
+    DESC 'Minimum number of snapshots to be kept in store'
+    EQUALITY integerMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+    SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.8.17.5 NAME 'fdSnapshotRetentionDays'
+    DESC 'Number of days a snapshot should be kept'
+    EQUALITY integerMatch
+    SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+    SINGLE-VALUE )
+
+attributetype (  1.3.6.1.4.1.38414.8.17.6 NAME 'fdSnapshotSourceData'
+  DESC 'Possible Origin / Source of data received '
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+  SINGLE-VALUE)
+
 # Miscellaneous
 
 attributetype ( 1.3.6.1.4.1.38414.8.18.2 NAME 'fdTabHook'
@@ -362,9 +420,9 @@ attributetype ( 1.3.6.1.4.1.38414.8.18.6 NAME 'fdAclTabOnObjects'
 
 attributetype ( 1.3.6.1.4.1.38414.8.18.7 NAME 'fdDepartmentCategories'
   DESC 'FusionDirectory - available categories for departments'
-  EQUALITY caseExactIA5Match
-  SUBSTR caseExactIA5SubstringsMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+  EQUALITY caseExactMatch
+  SUBSTR caseExactSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
 
 attributetype ( 1.3.6.1.4.1.38414.8.18.8 NAME 'fdDefaultShell'
   DESC 'FusionDirectory - default shell'
@@ -379,6 +437,32 @@ attributetype ( 1.3.6.1.4.1.38414.8.18.9 NAME 'fdPluginsMenuBlacklist'
   SUBSTR caseIgnoreSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
 
+attributetype ( 1.3.6.1.4.1.38414.8.18.10 NAME 'fdManagementConfig'
+  DESC 'FusionDirectory - Configuration for management classes'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.38414.8.18.11 NAME 'fdManagementUserConfig'
+  DESC 'FusionDirectory - Per user configuration for management classes'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15)
+
+attributetype ( 1.3.6.1.4.1.38414.8.18.12 NAME 'fdAclTargetFilterLimit'
+  DESC 'Fusion Directory - Size limit for LDAP filter on ACL targets'
+  EQUALITY integerMatch
+  ORDERING integerOrderingMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.8.18.13 NAME 'fdIncrementalModifierStates'
+  DESC 'FusionDirectory - States of the incremental modifier intances, with keys value and date, encoded as JSON'
+  EQUALITY caseExactMatch
+  SUBSTR caseExactSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+  SINGLE-VALUE )
+
 # Plugins
 
 attributetype ( 1.3.6.1.4.1.38414.8.19.1 NAME 'fdOGroupRDN'
@@ -421,6 +505,7 @@ attributetype ( 1.3.6.1.4.1.38414.8.20.3 NAME 'fdSslCertPath'
 
 attributetype ( 1.3.6.1.4.1.38414.8.21.1 NAME 'fdCasActivated'
   DESC 'FusionDirectory - CAS activation'
+  OBSOLETE
   EQUALITY booleanMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
   SINGLE-VALUE )
@@ -452,6 +537,25 @@ attributetype ( 1.3.6.1.4.1.38414.8.21.5 NAME 'fdCasContext'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
   SINGLE-VALUE)
 
+attributetype ( 1.3.6.1.4.1.38414.8.21.6 NAME 'fdCasVerbose'
+  DESC 'FusionDirectory - CAS verbose flag'
+  EQUALITY booleanMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.8.21.7 NAME 'fdCasLibraryBool'
+  DESC 'FusionDirectory - CAS boolean to activate CAS library >= 1.6'
+  EQUALITY booleanMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.8.21.8 NAME 'fdCasClientServiceName'
+  DESC 'FusionDirectory - CAS client service name'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE)
+
 # merged from dashboard-fd.schema - Needed by Fusion Directory for dashboard options
 
 attributetype ( 1.3.6.1.4.1.38414.27.1.1 NAME 'fdDashboardPrefix'
@@ -549,21 +653,24 @@ objectclass ( 1.3.6.1.4.1.38414.8.2.1 NAME 'fusionDirectoryConf'
     fdStrictNamingRules $ fdMinId $ fdUidNumberBase $
     fdGidNumberBase $ fdUserRDN $ fdGroupRDN $ fdIdAllocationMethod $
     fdGidNumberPoolMin $ fdUidNumberPoolMin $ fdGidNumberPoolMax $ fdUidNumberPoolMax $
-    fdAclRoleRDN $ fdCnPattern $ fdRestrictRoleMembers $ fdSplitPostalAddress $ fdPostalAddressPattern $
+    fdAclRoleRDN $ fdCnPattern $ fdRestrictRoleMembers $
+    fdSplitPostalAddress $ fdPostalAddressPattern $ fdMaxAvatarSize $ fdGivenNameRequired $
     fdPasswordDefaultHash $ fdPasswordMinLength $ fdPasswordMinDiffer $
     fdHandleExpiredAccounts $ fdSaslRealm $ fdSaslExop $
-    fdForcePasswordDefaultHash $
+    fdForcePasswordDefaultHash $ fdPasswordAllowedHashes $
     fdListSummary $
     fdModificationDetectionAttribute $ fdLogging $ fdLdapSizeLimit $ fdWildcardForeignKeys $
     fdLoginAttribute $ fdForceSSL $ fdWarnSSL $ fdStoreFilterSettings $ fdSessionLifeTime $
     fdHttpAuthActivated $ fdHttpHeaderAuthActivated $ fdHttpHeaderAuthHeaderName $
-    fdDisplayErrors $ fdLdapMaxQueryTime $ fdLdapStats $ fdDebugLevel $
+    fdDisplayErrors $ fdLdapMaxQueryTime $ fdLdapStats $ fdDebugLevel $ fdDebugLogging $
     fdEnableSnapshots $ fdSnapshotBase $
     fdTabHook $ fdShells $ fdDefaultShell $ fdDisplayHookOutput $
-    fdPluginsMenuBlacklist $
-    fdAclTabOnObjects $ fdDepartmentCategories $
-    fdSslCaCertPath $ fdSslKeyPath $ fdSslCertPath $
-    fdCasActivated $ fdCasServerCaCertPath $ fdCasHost $ fdCasPort $ fdCasContext
+    fdPluginsMenuBlacklist $ fdManagementConfig $ fdManagementUserConfig $
+    fdAclTabOnObjects $ fdDepartmentCategories $ fdAclTargetFilterLimit $
+    fdIncrementalModifierStates $
+    fdSslCaCertPath $ fdSslKeyPath $ fdSslCertPath $ fdSnapshotRetentionDays $ fdSnapshotSourceData $
+    fdCasActivated $ fdCasServerCaCertPath $ fdCasHost $ fdCasPort $ fdCasContext $ fdCasVerbose $
+    fdLoginMethod $ fdCasLibraryBool $ fdCasClientServiceName $ fdEnableAutomaticSnapshots $ fdSnapshotMinRetention
   ) )
 
 objectclass ( 1.3.6.1.4.1.38414.8.2.2 NAME 'fusionDirectoryPluginsConf'
diff --git a/contrib/openldap/core-fd.schema b/contrib/openldap/core-fd.schema
index a57a87e7ab15fc8d6a2cfe3c28fe70014c935fb5..da9453bad3c0a1cc1ae722f28fd9c10f1d793793 100644
--- a/contrib/openldap/core-fd.schema
+++ b/contrib/openldap/core-fd.schema
@@ -2,8 +2,7 @@
 ## core-fd.schema - Needed by FusionDirectory for its basic fonctionnalities
 ##
 
-
-# Attributes
+##### Attributes from gosa ######
 
 attributetype ( 1.3.6.1.4.1.10098.1.1.12.30 NAME 'gosaGroupObjects'
   DESC 'GOsa - List of all object types that are in a gosaGroupOfNames'
@@ -39,6 +38,8 @@ attributetype ( 1.3.6.1.4.1.10098.1.1.12.39 NAME 'gosaSnapshotData'
   DESC 'GOsa - Original data of saved object in snapshot'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
 
+##### Attributes from FusionDirectory #####
+
 attributetype ( 1.3.6.1.4.1.38414.62.1.1 NAME 'fdUserDn'
   DESC 'FusionDirectory - DN of a user'
   EQUALITY caseIgnoreMatch
@@ -57,7 +58,19 @@ attributetype ( 1.3.6.1.4.1.38414.62.1.3 NAME 'fdLockTimestamp'
   ORDERING generalizedTimeOrderingMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE )
 
-# Subscriptions
+attributetype ( 1.3.6.1.4.1.38414.62.1.4 NAME 'fdSnapshotObjectType'
+  DESC 'FusionDirectory - object type of the snapshotted object'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.51 NAME 'fdSnapshotDataSource'
+  DESC 'FusionDirectory - snapshot data origin / source'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
+
+##### Subscriptions Attributes ######
 
 attributetype ( 1.3.6.1.4.1.38414.62.11.1 NAME 'fdSubscriptionStartDate'
   DESC 'FusionDirectory - Subscription Starting Date'
@@ -86,8 +99,282 @@ attributetype ( 1.3.6.1.4.1.38414.62.11.4 NAME 'fdSubscriptionContractId'
 attributetype ( 1.3.6.1.4.1.38414.62.11.5 NAME 'fdSubscriptionName'
   DESC 'FusionDirectory - Subscription client name'
   SUP name )
+  
+### Mail Template Attributes ###
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.5 NAME 'fdMailTemplateBody'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.6 NAME 'fdMailTemplateRDN'
+  DESC 'FusionDirectory - template Mail RDN'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.7 NAME 'fdMailTemplateSignature'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.8 NAME 'fdMailTemplateAttachment'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.9 NAME 'fdMailTemplateReadReceipt'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.10 NAME 'fdMailTemplateSubject'
+  DESC 'FusionDirectory - template mail field'
+  EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+##### Tasks Attributes #####
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.11 NAME 'fdTasksMailObject'
+  DESC 'Fusion Directory - Tasks for mail template objects'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.12 NAME 'fdTasksScheduleDate'
+	DESC 'Scheduling of the Task - required processed date'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.13 NAME 'fdTasksMailUsers'
+  DESC 'Fusion Directory - Tasks Mail Users Recipient'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.14 NAME 'fdTasksStatus'
+  DESC 'Fusion Directory - Task Status'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.15 NAME 'fdTasksEndDate'
+  DESC 'Fusion Directory - Task End Date'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.16 NAME 'fdTasksCreationDate'
+  DESC 'Fusion Directory - Task Start Date'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.17 NAME 'fdTasksEmailsFromDN'
+  DESC 'Fusion Directory - Emails derived from DN' 
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.18 NAME 'fdTasksEmailSender'
+  DESC 'Fusion Directory - Emails derived from DN' 
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.19 NAME 'fdTasksMailType'
+  DESC 'Fusion Directory - Type of Mail attribute required'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+  SINGLE-VALUE )
+
+##### Tasks Granular #####
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.20 NAME 'fdTasksGranularStatus'
+  DESC 'Fusion Directory - Task Status'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.21 NAME 'fdTasksGranularSchedule'
+	DESC 'Scheduling of the Task - required processed date'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.22 NAME 'fdTasksGranularMaster'
+  DESC 'Fusion Directory - Tasks Master objects'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.23 NAME 'fdTasksGranularType'
+  DESC 'Fusion Directory - Tasks Type'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.24 NAME 'fdTasksGranularMail'
+  DESC 'Fusion Directory - Emails recipients if object mail'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.25 NAME 'fdTasksGranularMailFrom'
+  DESC 'Fusion Directory - Emails sender if object mail'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.26 NAME 'fdTasksGranularRef'
+  DESC 'Fusion Directory - Reference towards a CN (E.g Mail Template)'
+  EQUALITY caseExactMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
+  SINGLE-VALUE )
+
+##### Tasks Conf #####
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.27 NAME 'fdTasksRDN'
+  DESC 'FusionDirectory - Tasks RDN'
+  EQUALITY caseExactIA5Match
+  SUBSTR caseExactIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
+  SINGLE-VALUE)
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.28 NAME 'fdTasksConfLastExecTime'
+	DESC 'Store time of last mail tasks success - secure spam interval'
+  EQUALITY caseExactIA5Match
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.29 NAME 'fdTasksConfMaxEmails'
+	DESC 'FusionDirectory maximum emails to be processed by Orchestrator - secure spam'
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.30 NAME 'fdTasksConfIntervalEmails'
+	DESC 'FusionDirectory maximum emails to be processed by Orchestrator - secure spam'
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
+
+##### Plugin Manager #####
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.31 NAME 'fdPluginManagerInfoAuthors'
+  DESC 'FusionDirectory - Plugin authors attribute'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.32 NAME 'fdPluginManagerInfoVersion'
+  DESC 'FusionDirectory - Plugin Version attribute'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.33 NAME 'fdPluginManagerSupportHomeUrl'
+  DESC 'FusionDirectory - Plugin Support page url attribute'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.34 NAME 'fdPluginManagerSupportTicketUrl'
+  DESC 'FusionDirectory - Plugin Suuport ticket url attribute'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.35 NAME 'fdPluginManagerSupportDiscussionUrl'
+  DESC 'FusionDirectory - Pluging discussion url attribute'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.36 NAME 'fdPluginManagerSupportSchemaUrl'
+  DESC 'FusionDirectory - Plugin schema url attribute needed if necessary'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.37 NAME 'fdPluginManagerReqFdVersion'
+  DESC 'FusionDirectory - Plugin Fusiondirectory Version requirement attribute'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.38 NAME 'fdPluginManagerReqPhpVersion'
+  DESC 'FusionDirectory - Plugin PHP Version requirement attribute'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.39 NAME 'fdPluginManagerContentPhpClass'
+  DESC 'FusionDirectory - Plugin Manager : list on php class provided'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.40 NAME 'fdPluginManagerContentLdapObject'
+  DESC 'FusionDirectory - Plugin Manager : list on Ldap Object needed'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.41 NAME 'fdPluginManagerContentLdapAttributes'
+  DESC 'FusionDirectory - Plugin Manager : list on Ldap attributes needed'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.42 NAME 'fdPluginManagerInfoStatus'
+  DESC 'FusionDirectory - Plugin Manager : status of plugin : Dev / stable / dontuse '
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.43 NAME 'fdPluginManagerSupportDownloadUrl'
+  DESC 'FusionDirectory - Plugin direct download url '
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.44 NAME 'fdPluginManagerInfoTags'
+  DESC 'FusionDirectory - Plugin Tag for identiy plugins goals'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.45 NAME 'fdPluginManagerInfoLogoUrl'
+  DESC 'FusionDirectory - Plugin Logo url '
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.46 NAME 'fdPluginManagerInfoScreenshotUrl'
+  DESC 'FusionDirectory - Plugin Screenshot Url '
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
 
-# Classes
+attributetype ( 1.3.6.1.4.1.38414.62.1.47 NAME 'fdPluginManagerInfoLicence'
+  DESC 'FusionDirectory - Plugin Licence'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.48 NAME 'fdPluginManagerInfoOrigin'
+  DESC 'FusionDirectory - Plugin Origin'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.49 NAME 'fdPluginManagerSupportProvider'
+  DESC 'FusionDirectory - Plugin Support Provider'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.38414.62.1.50 NAME 'fdPluginManagerSupportContractUrl'
+  DESC 'FusionDirectory - Plugin Support Contract url'
+  EQUALITY caseIgnoreIA5Match
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+##### Classes #####
+
+### old gosa ObjectClass ###
 
 objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.4 NAME 'gosaDepartment' SUP top AUXILIARY
   DESC 'GOsa - Class to mark Departments for GOsa'
@@ -113,14 +400,62 @@ objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.18 NAME 'gosaAcl'
 objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.19 NAME 'gosaSnapshotObject'
   DESC 'GOsa - Container object for undo and snapshot data'
   SUP top STRUCTURAL
-  MUST ( gosaSnapshotTimestamp $ gosaSnapshotDN $ gosaSnapshotData )
-  MAY  ( description ) )
+  MUST ( gosaSnapshotTimestamp $ gosaSnapshotDN $ gosaSnapshotData $ fdSnapshotDataSource )
+  MAY  ( fdSnapshotObjectType $ description ) )
+
+### New FusionDirectory Objectclass ###
 
 objectclass ( 1.3.6.1.4.1.38414.62.2.1 NAME 'fdLockEntry' SUP top STRUCTURAL
   DESC 'FusionDirectory - Class for FD locking'
   MUST ( fdUserDn $ fdObjectDn $ cn $ fdLockTimestamp ))
 
+### Subscription Related Object Class ###
+
 objectclass ( 1.3.6.1.4.1.38414.62.2.2 NAME 'fdSubscriptionInformation' SUP top STRUCTURAL
   DESC 'FusionDirectory - Information about current subscription'
   MUST ( cn )
   MAY ( uid $ fdSubscriptionStartDate $ fdSubscriptionEndDate $ fdSubscriptionType $ fdSubscriptionContractId $ fdSubscriptionName ))
+
+### Plugin manager Related Object Class ###
+
+objectclass (1.3.6.1.4.1.38414.62.2.3 NAME 'fdPluginManager'
+  DESC 'FusionDirectory - Plugins Manager ObjectClass'
+  MUST ( cn $ description $ fdPluginManagerInfoAuthors $ fdPluginManagerInfoVersion $ fdPluginManagerInfoStatus $ fdPluginManagerInfoLicence $ fdPluginManagerInfoOrigin $ fdPluginManagerSupportHomeUrl $ fdPluginManagerReqFdVersion $ fdPluginManagerReqPhpVersion $ fdPluginManagerSupportProvider )
+  MAY ( fdPluginManagerInfoScreenshotUrl $ fdPluginManagerInfoLogoUrl $ fdPluginManagerInfoTags $ fdPluginManagerSupportTicketUrl $ fdPluginManagerSupportDiscussionUrl $ fdPluginManagerSupportSchemaUrl $ fdPluginManagerSupportDownloadUrl $ fdPluginManagerContentPhpClass $ fdPluginManagerContentLdapObject $ fdPluginManagerContentLdapAttributes $ fdPluginManagerSupportContractUrl ))
+
+### Mail Template Related Object Class ###
+
+objectclass (1.3.6.1.4.1.38414.62.2.4 NAME 'fdMailTemplate'
+  DESC 'FusionDirectory - template mail object'
+  MUST ( cn $ fdMailTemplateBody $ fdMailTemplateSubject )
+  MAY ( fdMailTemplateSignature $ fdMailTemplateReadReceipt $ fdMailTemplateAttachment  ) )
+
+objectclass ( 1.3.6.1.4.1.38414.62.2.5 NAME 'fdMailTemplateConf'
+  DESC 'FusionDirectory Mail Template Configuration'
+  SUP top AUXILIARY
+  MUST ( cn )
+  MAY ( fdMailTemplateRDN ) )
+
+### Tasks Related Object Class ###
+
+objectclass (1.3.6.1.4.1.38414.62.2.6 NAME 'fdTasks'
+  DESC 'FusionDirectory - Tasks objects'
+  MUST ( cn $ fdTasksStatus $ fdTasksCreationDate )
+  MAY ( fdTasksScheduleDate $ fdTasksEndDate) )
+
+objectclass (1.3.6.1.4.1.38414.62.2.7 NAME 'fdTasksMail'
+  DESC 'FusionDirectory - Tasks objects Mail'
+  SUP top AUXILIARY
+  MUST ( fdTasksMailObject $ fdTasksEmailSender ) 
+  MAY ( fdTasksMailUsers $ fdTasksEmailsFromDN $ fdTasksMailType ) )
+
+objectclass (1.3.6.1.4.1.38414.62.2.8 NAME 'fdTasksGranular'
+  DESC 'FusionDirectory - Tasks granular objects'
+  MUST ( fdTasksGranularMaster $ cn $ fdTasksGranularMail $ fdTasksGranularMailFrom $ 
+  fdTasksGranularRef $ fdTasksGranularType $ fdTasksGranularSchedule $ fdTasksGranularStatus ))
+
+objectclass (1.3.6.1.4.1.38414.62.2.9 NAME 'fdTasksConf'
+  DESC 'FusionDirectory - Tasks objects Configuration'
+  SUP top AUXILIARY
+  MUST ( cn )
+  MAY ( fdTasksRDN $ fdTasksConfLastExecTime $ fdTasksConfMaxEmails $ fdTasksConfIntervalEmails))
diff --git a/contrib/openldap/rfc2307bis.schema b/contrib/openldap/rfc2307bis.schema
deleted file mode 100644
index db343659d25b2f19b348095a86f2784b59ec30d2..0000000000000000000000000000000000000000
--- a/contrib/openldap/rfc2307bis.schema
+++ /dev/null
@@ -1,288 +0,0 @@
-# builtin
-#
-#attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber'
-#  DESC 'An integer uniquely identifying a user in an administrative domain'
-#  EQUALITY integerMatch
-#  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-#  SINGLE-VALUE )
-
-# builtin
-#
-#attributetype ( 1.3.6.1.1.1.1.1 NAME 'gidNumber'
-#  DESC 'An integer uniquely identifying a group in an
-#        administrative domain'
-#  EQUALITY integerMatch
-#  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-#  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'
-  DESC 'The GECOS field; the common name'
-  EQUALITY caseIgnoreIA5Match
-  SUBSTR caseIgnoreIA5SubstringsMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory'
-  DESC 'The absolute path to the home directory'
-  EQUALITY caseExactIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.4 NAME 'loginShell'
-  DESC 'The path to the login shell'
-  EQUALITY caseExactIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.5 NAME 'shadowLastChange'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.6 NAME 'shadowMin'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.7 NAME 'shadowMax'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.8 NAME 'shadowWarning'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.9 NAME 'shadowInactive'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.11 NAME 'shadowFlag'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.12 NAME 'memberUid'
-  EQUALITY caseExactIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
-
-attributetype ( 1.3.6.1.1.1.1.13 NAME 'memberNisNetgroup'
-  EQUALITY caseExactIA5Match
-  SUBSTR caseExactIA5SubstringsMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
-
-attributetype ( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple'
-  DESC 'Netgroup triple'
-  EQUALITY caseIgnoreIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
-
-attributetype ( 1.3.6.1.1.1.1.15 NAME 'ipServicePort'
-  DESC 'Service port number'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.16 NAME 'ipServiceProtocol'
-  DESC 'Service protocol name'
-  SUP name )
-
-attributetype ( 1.3.6.1.1.1.1.17 NAME 'ipProtocolNumber'
-  DESC 'IP protocol number'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.18 NAME 'oncRpcNumber'
-  DESC 'ONC RPC number'
-  EQUALITY integerMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
-  SINGLE-VALUE )
-attributetype ( 1.3.6.1.1.1.1.19 NAME 'ipHostNumber'
-  DESC 'IPv4 addresses as a dotted decimal omitting leading
-        zeros or IPv6 addresses as defined in RFC2373'
-  SUP name )
-
-attributetype ( 1.3.6.1.1.1.1.20 NAME 'ipNetworkNumber'
-  DESC 'IP network as a dotted decimal, eg. 192.168,
-        omitting leading zeros'
-  SUP name
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.21 NAME 'ipNetmaskNumber'
-  DESC 'IP netmask as a dotted decimal, eg. 255.255.255.0,
-        omitting leading zeros'
-  EQUALITY caseIgnoreIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.22 NAME 'macAddress'
-  DESC 'MAC address in maximal, colon separated hex
-        notation, eg. 00:00:92:90:ee:e2'
-  EQUALITY caseIgnoreIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
-
-attributetype ( 1.3.6.1.1.1.1.23 NAME 'bootParameter'
-  DESC 'rpc.bootparamd parameter'
-  EQUALITY caseExactIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
-
-attributetype ( 1.3.6.1.1.1.1.24 NAME 'bootFile'
-  DESC 'Boot image name'
-  EQUALITY caseExactIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
-
-attributetype ( 1.3.6.1.1.1.1.26 NAME 'nisMapName'
-  DESC 'Name of a A generic NIS map'
-  SUP name )
-
-attributetype ( 1.3.6.1.1.1.1.27 NAME 'nisMapEntry'
-  DESC 'A generic NIS entry'
-  EQUALITY caseExactIA5Match
-  SUBSTR caseExactIA5SubstringsMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26
-  SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.28 NAME 'nisPublicKey'
-  DESC 'NIS public key'
-  EQUALITY octetStringMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.29 NAME 'nisSecretKey'
-  DESC 'NIS secret key'
-  EQUALITY octetStringMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.30 NAME 'nisDomain'
-  DESC 'NIS domain'
-  EQUALITY caseIgnoreIA5Match
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
-
-attributetype ( 1.3.6.1.1.1.1.31 NAME 'automountMapName'
-  DESC 'automount Map Name'
-  EQUALITY caseExactIA5Match
-  SUBSTR caseExactIA5SubstringsMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.32 NAME 'automountKey'
-  DESC 'Automount Key value'
-  EQUALITY caseExactIA5Match
-  SUBSTR caseExactIA5SubstringsMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
-
-attributetype ( 1.3.6.1.1.1.1.33 NAME 'automountInformation'
-  DESC 'Automount information'
-  EQUALITY caseExactIA5Match
-  SUBSTR caseExactIA5SubstringsMatch
-  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
-
-objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY
-  DESC 'Abstraction of an account with POSIX attributes'
-  MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
-  MAY ( userPassword $ loginShell $ gecos $
-        description ) )
-
-objectclass ( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' SUP top AUXILIARY
-  DESC 'Additional attributes for shadow passwords'
-  MUST uid
-  MAY ( userPassword $ description $
-        shadowLastChange $ shadowMin $ shadowMax $
-        shadowWarning $ shadowInactive $
-        shadowExpire $ shadowFlag ) )
-
-objectclass ( 1.3.6.1.1.1.2.2 NAME 'posixGroup' SUP top AUXILIARY
-  DESC 'Abstraction of a group of accounts'
-  MUST gidNumber
-  MAY ( userPassword $ memberUid $
-        description ) )
-
-objectclass ( 1.3.6.1.1.1.2.3 NAME 'ipService' SUP top STRUCTURAL
-  DESC 'Abstraction an Internet Protocol service.
-        Maps an IP port and protocol (such as tcp or udp)
-        to one or more names; the distinguished value of
-        the cn attribute denotes the services canonical
-        name'
-  MUST ( cn $ ipServicePort $ ipServiceProtocol )
-  MAY description )
-
-objectclass ( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' SUP top STRUCTURAL
-  DESC 'Abstraction of an IP protocol. Maps a protocol number
-        to one or more names. The distinguished value of the cn
-        attribute denotes the protocols canonical name'
-  MUST ( cn $ ipProtocolNumber )
-  MAY description )
-
-objectclass ( 1.3.6.1.1.1.2.5 NAME 'oncRpc' SUP top STRUCTURAL
-  DESC 'Abstraction of an Open Network Computing (ONC)
-       [RFC1057] Remote Procedure Call (RPC) binding.
-       This class maps an ONC RPC number to a name.
-       The distinguished value of the cn attribute denotes
-       the RPC services canonical name'
-  MUST ( cn $ oncRpcNumber )
-  MAY description )
-
-objectclass ( 1.3.6.1.1.1.2.6 NAME 'ipHost' SUP top AUXILIARY
-  DESC 'Abstraction of a host, an IP device. The distinguished
-        value of the cn attribute denotes the hosts canonical
-        name. Device SHOULD be used as a structural class'
-  MUST ( cn $ ipHostNumber )
-  MAY ( userPassword $ l $ description $ manager ) )
-
-objectclass ( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' SUP top STRUCTURAL
-  DESC 'Abstraction of a network. The distinguished value of
-        the cn attribute denotes the networks canonical name'
-  MUST ipNetworkNumber
-  MAY ( cn $ ipNetmaskNumber $ l $ description $ manager ) )
-
-objectclass ( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' SUP top STRUCTURAL
-  DESC 'Abstraction of a netgroup. May refer to other netgroups'
-  MUST cn
-  MAY ( nisNetgroupTriple $ memberNisNetgroup $ description ) )
-
-objectclass ( 1.3.6.1.1.1.2.9 NAME 'nisMap' SUP top STRUCTURAL
-  DESC 'A generic abstraction of a NIS map'
-  MUST nisMapName
-  MAY description )
-
-objectclass ( 1.3.6.1.1.1.2.10 NAME 'nisObject' SUP top STRUCTURAL
-  DESC 'An entry in a NIS map'
-  MUST ( cn $ nisMapEntry $ nisMapName )
-  MAY description )
-
-objectclass ( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' SUP top AUXILIARY
-  DESC 'A device with a MAC address; device SHOULD be
-        used as a structural class'
-  MAY macAddress )
-
-objectclass ( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' SUP top AUXILIARY
-  DESC 'A device with boot parameters; device SHOULD be
-        used as a structural class'
-  MAY ( bootFile $ bootParameter ) )
-
-objectclass ( 1.3.6.1.1.1.2.14 NAME 'nisKeyObject' SUP top AUXILIARY
-  DESC 'An object with a public and secret key'
-  MUST ( cn $ nisPublicKey $ nisSecretKey )
-  MAY ( uidNumber $ description ) )
-
-objectclass ( 1.3.6.1.1.1.2.15 NAME 'nisDomainObject' SUP top AUXILIARY
-  DESC 'Associates a NIS domain with a naming context'
-  MUST nisDomain )
-
-objectclass ( 1.3.6.1.1.1.2.16 NAME 'automountMap' SUP top STRUCTURAL
-  MUST ( automountMapName )
-  MAY description )
-
-objectclass ( 1.3.6.1.1.1.2.17 NAME 'automount' SUP top STRUCTURAL
-  DESC 'Automount information'
-  MUST ( automountKey $ automountInformation )
-  MAY description )
-## namedObject is needed for groups without members
-objectclass ( 1.3.6.1.4.1.5322.13.1.1 NAME 'namedObject' SUP top
-       STRUCTURAL MAY cn )
-
diff --git a/contrib/openldap/template-fd.schema b/contrib/openldap/template-fd.schema
index 1a4047072ffe7fabc25b8b6b7ff9322a0a06219e..a90ca8707deee2a20c98a7c783077f36f2ec07a3 100644
--- a/contrib/openldap/template-fd.schema
+++ b/contrib/openldap/template-fd.schema
@@ -6,6 +6,7 @@
 attributetype ( 1.3.6.1.4.1.38414.38.1.1 NAME 'fdTemplateField'
   DESC 'FusionDirectory - template field'
   EQUALITY octetStringMatch
+  SUBSTR caseIgnoreSubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
 
 # Objectclasses
diff --git a/contrib/smarty/plugins/block.render.php b/contrib/smarty/plugins/block.render.php
index 6731dc82da519fcb225c9168a0a37e52f3d3de5c..23e6b8a72652fae47919f4732cf21282329eb9b5 100644
--- a/contrib/smarty/plugins/block.render.php
+++ b/contrib/smarty/plugins/block.render.php
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -19,7 +19,7 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-function smarty_block_render ($params, $text, &$smarty)
+function smarty_block_render ($params, $text)
 {
   /* Skip closing tag </render> */
   if (empty($text)) {
@@ -33,20 +33,19 @@ function smarty_block_render ($params, $text, &$smarty)
   }
 
   /* Debug output */
-  if (session::is_set('DEBUGLEVEL') && session::get('DEBUGLEVEL') & DEBUG_ACL ) {
+  if (session::is_set('DEBUGLEVEL') && session::get('DEBUGLEVEL') & DEBUG_ACL) {
     echo '<div style="color:blue;">'.$acl.(isset($params['aclName']) ? ' ['.$params['aclName'].']' : '').'</div>';
   }
 
-  /* Read / Write*/
+  /* Read / Write */
   if (preg_match('/w/i', $acl)) {
     return $text;
   }
 
   /* Disable objects, but keep those active that have mode=read_active */
-  if (!(isset($params['mode']) && ($params['mode'] == 'read_active') && preg_match('/(r|w)/', $acl))) {
-    if (!preg_match('/ disabled(="disabled")?( |\/?>)/', $text)) {
-      $text = preg_replace('/name=/i', 'disabled="disabled" name=', $text);
-    }
+  if (!(isset($params['mode']) && ($params['mode'] == 'read_active') && preg_match('/(r|w)/', $acl))
+    && !preg_match('/ disabled(="disabled")?( |\/?>)/', $text)) {
+    $text = preg_replace('/name=/i', 'disabled="disabled" name=', $text);
   }
 
   /* Read only */
@@ -74,8 +73,5 @@ function smarty_block_render ($params, $text, &$smarty)
     "\\1 \\2"
   ];
 
-  $text = preg_replace($from, $to, $text);
-
-  return $text;
+  return preg_replace($from, $to, $text);
 }
-?>
diff --git a/contrib/smarty/plugins/function.filePath.php b/contrib/smarty/plugins/function.filePath.php
index eccb9a1beca221a66713d6647557475f375aef79..875f4d1f55e00223fde7810526c16d4eda4d303e 100644
--- a/contrib/smarty/plugins/function.filePath.php
+++ b/contrib/smarty/plugins/function.filePath.php
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -17,13 +17,13 @@
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
-function smarty_function_filePath ($params, &$smarty)
+function smarty_function_filePath ($params, Smarty_Internal_Template $smarty)
 {
   $config = session::get('config');
   $default_theme = 'breezy';
 
   /* Set theme */
-  if (isset ($config)) {
+  if (isset($config)) {
     $theme = $config->get_cfg_value('theme', $default_theme);
   } else {
     $theme = $default_theme;
@@ -55,4 +55,3 @@ function smarty_function_filePath ($params, &$smarty)
   }
   return $filename;
 }
-?>
diff --git a/contrib/smarty/plugins/function.iconPath.php b/contrib/smarty/plugins/function.iconPath.php
index b44f87d132127f37e1de8df5520656e4b5da210d..42ce6ec821e3c33c10b0840fda66f964a62b0a93 100644
--- a/contrib/smarty/plugins/function.iconPath.php
+++ b/contrib/smarty/plugins/function.iconPath.php
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -17,16 +17,15 @@
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
-function smarty_function_iconPath ($params, &$smarty)
+function smarty_function_iconPath ($params)
 {
   $config = session::get('config');
 
   /* Set theme */
   $theme = IconTheme::$default_theme;
-  if (isset ($config)) {
+  if (isset($config)) {
     $theme = $config->get_cfg_value("theme");
   }
 
   return IconTheme::findThemeIcon($theme, $params['context'], $params['icon'], $params['size']);
 }
-?>
diff --git a/contrib/smarty/plugins/function.msgPool.php b/contrib/smarty/plugins/function.msgPool.php
index f5e386b0b073ebd9727b97de0047bdbd2d75d59b..3566d8bea47ea4cbae48eb3dfed600fdfb75292c 100644
--- a/contrib/smarty/plugins/function.msgPool.php
+++ b/contrib/smarty/plugins/function.msgPool.php
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -18,7 +18,7 @@
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
-function smarty_function_msgPool ($params, &$smarty)
+function smarty_function_msgPool ($params)
 {
   if (class_available('msgPool') && isset($params['type'])) {
     $parameter = [];
@@ -36,4 +36,3 @@ function smarty_function_msgPool ($params, &$smarty)
     trigger_error('Unknown class msgPool.');
   }
 }
-?>
diff --git a/html/autocomplete.php b/html/autocomplete.php
index 7ef44f98d50fc9ce1256ac58d1627b27514866e0..38c75383f8c2b72ee3072a154aba1cd1095d0b4e 100644
--- a/html/autocomplete.php
+++ b/html/autocomplete.php
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -20,13 +20,13 @@
 */
 
 /* Basic setup, remove eventually registered sessions */
-@require_once ("../include/php_setup.inc");
-@require_once ("functions.inc");
+@require_once("../include/php_setup.inc");
+@require_once("functions.inc");
 @require_once("variables.inc");
 
 session_cache_limiter("private");
 session::start();
-session::set('errorsAlreadyPosted', []);
+reset_errors();
 
 /* Logged in? Simple security check */
 if (!session::is_set('ui')) {
@@ -44,8 +44,9 @@ if (isset($_GET['type']) && $_GET['type'] == "base") {
     $pathMapping  = session::get("pathMapping");
     $search       = preg_replace('/&quot;/', '"', current($_POST));
 
-    $config = session::get('config');
-    foreach ($config->department_info as $dn => $info) {
+    $config         = session::get('config');
+    $departmentInfo = $config->getDepartmentInfo();
+    foreach ($departmentInfo as $dn => $info) {
       if (!isset($pathMapping[$dn])) {
         continue;
       }
@@ -68,9 +69,7 @@ if (isset($_GET['type']) && $_GET['type'] == "base") {
       echo "<ul>$res</ul>";
     }
   }
-
 } else {
-
   $ui = session::get('ui');
   $config = session::get('config');
 
diff --git a/html/getbin.php b/html/getbin.php
index 6cbd8a73c0210052bbdce28b788cc69a1ec3e7d0..82a6c6e0507a174eddba0342f9e6192f3293da02 100644
--- a/html/getbin.php
+++ b/html/getbin.php
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -27,7 +27,7 @@
 error_reporting(0);
 session_cache_limiter('private');
 session::start();
-session::set('errorsAlreadyPosted', []);
+reset_errors();
 
 /* Logged in? Simple security check */
 if (!session::is_set('ui')) {
@@ -43,7 +43,7 @@ header('Pragma: no-cache');
 header('Cache-Control: post-check=0, pre-check=0');
 
 $key = 'binary';
-if (isset ($_GET['key'])) {
+if (isset($_GET['key'])) {
   $key .= $_GET['key'];
 }
 
@@ -55,4 +55,3 @@ if (session::is_set($key.'file')) {
 
 echo session::get($key);
 error_reporting(E_ALL | E_STRICT);
-?>
diff --git a/html/geticon.php b/html/geticon.php
index 0e2fc5ae20f92ba5a6e51633940a41afb5c0f811..df0c5aa5fa31ec84d64abec569a74309fb07d7c4 100644
--- a/html/geticon.php
+++ b/html/geticon.php
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2020  FusionDirectory
 
   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
@@ -25,7 +25,7 @@
 
 session_cache_limiter("private");
 session::start();
-session::set('errorsAlreadyPosted', []);
+reset_errors();
 
 $theme = '';
 if (session::is_set('config')) {
@@ -39,7 +39,11 @@ if (!isset($_GET['context']) || !isset($_GET['icon']) || !isset($_GET['size']))
   trigger_error('Missing information in query string: '.$_SERVER['QUERY_STRING']);
   exit;
 }
-$src    = IconTheme::findThemeIcon($theme, $_GET['context'], $_GET['icon'], $_GET['size']);
+$src  = IconTheme::findThemeIcon($theme, $_GET['context'], $_GET['icon'], $_GET['size']);
+if ($src === NULL) {
+  trigger_error('Could not find icon for '.$_SERVER['QUERY_STRING']);
+  exit;
+}
 
 header("Content-Type: image/png");
 if (isset($_GET['disabled']) && $_GET['disabled']) {
@@ -50,4 +54,3 @@ if (isset($_GET['disabled']) && $_GET['disabled']) {
 } else {
   readfile($src);
 }
-?>
diff --git a/html/include/datepicker.js b/html/include/datepicker.js
deleted file mode 100644
index 909099b96cbcd06ff6097e0d1074efc8842923b0..0000000000000000000000000000000000000000
--- a/html/include/datepicker.js
+++ /dev/null
@@ -1,808 +0,0 @@
-/**
- * DatePicker widget using Prototype and Scriptaculous.
- * (c) 2007 Mathieu Jondet <mathieu@eulerian.com>
- * Eulerian Technologies
- *
- * DatePicker is freely distributable under the same terms as Prototype.
- *
- *  Modified 10.06.2008
- * by Manu <manu@bytefresser.de>
- *
- */
-
-/**
- * DatePickerFormatter class for matching and stringifying dates.
- *
- * By Arturas Slajus <x11@arturaz.net>.
- */
-var DatePickerFormatter = Class.create();
-
-DatePickerFormatter.prototype = {
-  /**
-   * Create a DatePickerFormatter.
-   *
-   * format: specify a format by passing 3 value array consisting of
-   *   "yyyy", "mm", "dd". Default: ["yyyy", "mm", "dd"].
-   *
-   * separator: string for splitting the values. Default: "-".
-   *
-   * Use it like this:
-   *   var df = new DatePickerFormatter(["dd", "mm", "yyyy"], "/");
-   *   df.current_date();
-   *   df.match("7/7/2007");
-   */
-  initialize: function(format, separator)
-  {
-    if (Object.isUndefined(format))
-      format = ["yyyy", "mm", "dd"];
-    if (Object.isUndefined(separator))
-      separator = "-";
-
-    this._format        = format;
-    this.separator        = separator;
-
-    this._format_year_index  = format.indexOf("yyyy");
-    this._format_month_index = format.indexOf("mm");
-    this._format_day_index   = format.indexOf("dd");
-
-    this._year_regexp     = /^\d{4}$/;
-    this._month_regexp    = /^0\d|1[012]|\d$/;
-    this._day_regexp      = /^0\d|[12]\d|3[01]|\d$/;
-  },
-
-  /**
-  * Match a string against date format.
-  * Returns: [year, month, day]
-  */
-  match: function(str)
-  {
-    var d = str.split(this.separator);
-
-    if (d.length < 3) {
-      return false;
-    }
-
-    var year = d[this._format_year_index].match(this._year_regexp);
-    if (year) {
-      year = year[0]
-    } else {
-      return false
-    }
-    var month = d[this._format_month_index].match(this._month_regexp);
-    if (month) {
-      month = month[0]
-    } else {
-      return false
-    }
-    var day = d[this._format_day_index].match(this._day_regexp);
-    if (day) {
-      day = day[0]
-    } else {
-      return false
-    }
-
-    return [year, month, day];
-  },
-
-  /**
-   * Return current date according to format.
-   */
-  current_date: function() {
-    var d = new Date;
-    return this.date_to_string (
-      d.getFullYear(),
-      d.getMonth() + 1,
-      d.getDate()
-    );
-  },
-
-  /**
-   * Return a stringified date accordint to format.
-   */
-  date_to_string: function(year, month, day, separator)
-  {
-    if (Object.isUndefined(separator))
-      separator = this.separator;
-
-    var a = [0, 0, 0];
-    a[this._format_year_index]  = year;
-    a[this._format_month_index] = month.toPaddedString(2);
-    a[this._format_day_index]   = day.toPaddedString(2);
-
-    return a.join(separator);
-  }
-};
-
-/**
- * DatePicker
- */
-var datepickers = $H();
-
-var DatePicker  = Class.create();
-
-DatePicker.prototype  = {
-
-  Version       : '0.9.4',
-  _relative     : null,
-  _div          : null,
-  _zindex       : 1,
-  _keepFieldEmpty : false,
-  _daysInMonth    : [31,28,31,30,31,30,31,31,30,31,30,31],
-  _dateFormat     : [ ["dd", "mm", "yyyy"], "." ],
-
-  /* language */
-  _language     : 'de',
-  _language_month : $H({
-    'fr'  : [ 'Janvier', 'F&#233;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'D&#233;cembre' ],
-    'en'  : [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
-    'es'  : [ 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre' ],
-    'it'  : [ 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre' ],
-    'de'  : [ 'Januar', 'Februar', 'M&#228;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember' ],
-    'pt'  : [ 'Janeiro', 'Fevereiro', 'Mar&#231;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro' ],
-    'hu'  : [ 'Janu&#225;r', 'Febru&#225;r', 'M&#225;rcius', '&#193;prilis', 'M&#225;jus', 'J&#250;nius', 'J&#250;lius', 'Augusztus', 'Szeptember', 'Okt&#243;ber', 'November', 'December' ],
-    'lt'  : [ 'Sausis', 'Vasaris', 'Kovas', 'Balandis', 'Gegu&#382;&#279;', 'Bir&#382;elis', 'Liepa', 'Rugj&#363;tis', 'Rus&#279;jis', 'Spalis', 'Lapkritis', 'Gruodis' ],
-    'nl'  : [ 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december' ],
-    'dk'  : [ 'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December' ],
-    'no'  : [ 'Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember' ],
-    'lv'  : [ 'Janv&#257;ris', 'Febru&#257;ris', 'Marts', 'Apr&#299;lis', 'Maijs', 'J&#363;nijs', 'J&#363;lijs', 'Augusts', 'Septembris', 'Oktobris', 'Novembris', 'Decemberis' ],
-    'ja'  : [ '1&#26376;', '2&#26376;', '3&#26376;', '4&#26376;', '5&#26376;', '6&#26376;', '7&#26376;', '8&#26376;', '9&#26376;', '10&#26376;', '11&#26376;', '12&#26376;' ],
-    'fi'  : [ 'Tammikuu', 'Helmikuu', 'Maaliskuu', 'Huhtikuu', 'Toukokuu', 'Kes&#228;kuu', 'Hein&#228;kuu', 'Elokuu', 'Syyskuu', 'Lokakuu', 'Marraskuu', 'Joulukuu' ],
-    'ro'  : [ 'Ianuarie', 'Februarie', 'Martie', 'Aprilie', 'Mai', 'Junie', 'Julie', 'August', 'Septembrie', 'Octombrie', 'Noiembrie', 'Decembrie' ],
-    'zh'  : [ '1&#32;&#26376;', '2&#32;&#26376;', '3&#32;&#26376;', '4&#32;&#26376;', '5&#32;&#26376;', '6&#32;&#26376;', '7&#32;&#26376;', '8&#32;&#26376;', '9&#32;&#26376;', '10&#26376;', '11&#26376;', '12&#26376;'],
-    'sv'  : [ 'Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December' ]
-  }),
-  _language_day : $H({
-    'fr'  : [ 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim' ],
-    'en'  : [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun' ],
-    'es'  : [ 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'S&#224;b', 'Dom' ],
-    'it'  : [ 'Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab', 'Dom' ],
-    'de'  : [ 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So' ],
-    'pt'  : [ 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'S&#225;', 'Dom' ],
-    'hu'  : [ 'H&#233;', 'Ke', 'Sze', 'Cs&#252;', 'P&#233;', 'Szo', 'Vas' ],
-    'lt'  : [ 'Pir', 'Ant', 'Tre', 'Ket', 'Pen', '&Scaron;e&scaron;', 'Sek' ],
-    'nl'  : [ 'ma', 'di', 'wo', 'do', 'vr', 'za', 'zo' ],
-    'dk'  : [ 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'L&#248;r', 'S&#248;n' ],
-    'no'  : [ 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'L&#248;r', 'Sun' ],
-    'lv'  : [ 'P', 'O', 'T', 'C', 'Pk', 'S', 'Sv' ],
-    'ja'  : [ '&#26376;', '&#28779;', '&#27700;', '&#26408;', '&#37329;', '&#22303;', '&#26085;' ],
-    'fi'  : [ 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La', 'Su' ],
-    'ro'  : [ 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sam', 'Dum' ],
-    'zh'  : [ '&#21608;&#19968;', '&#21608;&#20108;', '&#21608;&#19977;', '&#21608;&#22235;', '&#21608;&#20116;', '&#21608;&#20845;', '&#21608;&#26085;' ],
-    'sv'  : [ 'M&#229;n', 'Tis', 'Ons', 'Tor', 'Fre', 'L&#246;r', 'S&#246;n' ]
-  }),
-
-  _language_close : $H({
-    'fr'  : 'fermer',
-    'en'  : 'close',
-    'es'  : 'cierre',
-    'it'  : 'fine',
-    'de'  : 'schliessen',
-    'pt'  : 'fim',
-    'hu'  : 'bez&#225;r',
-    'lt'  : 'udaryti',
-    'nl'  : 'sluiten',
-    'dk'  : 'luk',
-    'no'  : 'lukk',
-    'lv'  : 'aizv&#275;rt',
-    'ja'  : '&#38281;&#12376;&#12427;',
-    'fi'  : 'sulje',
-    'ro'  : 'inchide',
-    'zh'  : '&#20851;&#32;&#38381',
-    'sv'  : 'st&#228;ng'
-  }),
-
-  /* date manipulation */
-  _todayDate        : new Date(),
-  _current_date     : null,
-  _clickCallback      : Prototype.emptyFunction,
-  _cellCallback     : Prototype.emptyFunction,
-  _id_datepicker      : null,
-  _disablePastDate    : false,
-  _disableFutureDate  : false,
-  _oneDayInMs       : 24 * 3600 * 1000,
-
-  /* positionning */
-  _topOffset        : 20,
-  _leftOffset       : 0,
-  _isPositionned      : false,
-  _relativePosition   : true,
-  _setPositionTop     : 0,
-  _setPositionLeft    : 0,
-  _bodyAppend       : false,
-
-  /* Effects Adjustment */
-  _showEffect       : "appear",
-  _showDuration     : 1,
-  _enableShowEffect   : true,
-  _closeEffect      : "fade",
-  _closeEffectDuration  : 0.3,
-  _enableCloseEffect  : true,
-  _closeTimer       : null,
-  _enableCloseOnBlur  : false,
-
-  /* afterClose       : called when the close function is executed */
-  _afterClose       : Prototype.emptyFunction,
-
-  /* return the name of current month in appropriate language */
-  getMonthLocale      : function ( month ) {
-    return this._language_month.get(this._language)[month];
-  },
-  getLocaleClose      : function () {
-    return this._language_close.get(this._language);
-  },
-  _initCurrentDate : function ()
-  {
-    /* Create the DateFormatter */
-    this._df = new DatePickerFormatter(this._dateFormat[0], this._dateFormat[1]);
-
-    /* check if value in field is proper, if not set to today */
-    this._current_date = $F(this._relative);
-
-    if (! this._df.match(this._current_date)) {
-
-      this._current_date = this._df.current_date();
-
-      /* set the field value ? */
-      if (!this._keepFieldEmpty)
-        $(this._relative).value = this._current_date;
-    }
-    var a_date = this._df.match(this._current_date);
-    this._current_year  = Number(a_date[0]);
-    this._current_mon   = Number(a_date[1]) - 1;
-    this._current_day   = Number(a_date[2]);
-  },
-
-  /* init */
-  initialize  : function ( h_p )
-  {
-    /* arguments */
-    this._relative = h_p["relative"];
-    if (h_p["language"]) {
-      this._language = h_p["language"];
-      if (this._language_close.get(this._language) === undefined) {
-        this._language = 'en';
-      }
-    }
-    this._zindex = ( h_p["zindex"] ) ? parseInt(Number(h_p["zindex"])) : 999;
-    if (!Object.isUndefined(h_p["keepFieldEmpty"]))
-      this._keepFieldEmpty  = h_p["keepFieldEmpty"];
-    if (Object.isFunction(h_p["clickCallback"]))
-      this._clickCallback = h_p["clickCallback"];
-    if (!Object.isUndefined(h_p["leftOffset"]))
-      this._leftOffset = parseInt(h_p["leftOffset"]);
-    if (!Object.isUndefined(h_p["topOffset"]))
-      this._topOffset = parseInt(h_p["topOffset"]);
-    if (!Object.isUndefined(h_p["relativePosition"]))
-      this._relativePosition = h_p["relativePosition"];
-    if (!Object.isUndefined(h_p["showEffect"]))
-      this._showEffect = h_p["showEffect"];
-    if (!Object.isUndefined(h_p["enableShowEffect"]))
-      this._enableShowEffect = h_p["enableShowEffect"];
-    if (!Object.isUndefined(h_p["showDuration"]))
-      this._showDuration = h_p["showDuration"];
-    if (!Object.isUndefined(h_p["closeEffect"]))
-      this._closeEffect = h_p["closeEffect"];
-    if (!Object.isUndefined(h_p["enableCloseEffect"]))
-      this._enableCloseEffect = h_p["enableCloseEffect"];
-    if (!Object.isUndefined(h_p["closeEffectDuration"]))
-      this._closeEffectDuration = h_p["closeEffectDuration"];
-    if (Object.isFunction(h_p["afterClose"]))
-      this._afterClose = h_p["afterClose"];
-    if (!Object.isUndefined(h_p["externalControl"]))
-      this._externalControl = h_p["externalControl"];
-    if (!Object.isUndefined(h_p["dateFormat"]))
-      this._dateFormat = h_p["dateFormat"];
-    if (Object.isFunction(h_p["cellCallback"]))
-      this._cellCallback = h_p["cellCallback"];
-    if (!Object.isUndefined(h_p["enableCloseOnBlur"]) && h_p["enableCloseOnBlur"])
-      this._enableCloseOnBlur = true;
-    if (!Object.isUndefined(h_p["disablePastDate"]) && h_p["disablePastDate"])
-      this._disablePastDate = true;
-    if (!Object.isUndefined(h_p["disableFutureDate"]) && !h_p["disableFutureDate"])
-      this._disableFutureDate = false;
-    this._setPositionTop  = ( h_p["setPositionTop"] ) ? parseInt(Number(h_p["setPositionTop"])) : 0;
-    this._setPositionLeft = ( h_p["setPositionLeft"] ) ? parseInt(Number(h_p["setPositionLeft"])) : 0;
-
-    this._id_datepicker           = 'datepicker-' + this._relative;
-    this._id_datepicker_prev      = this._id_datepicker + '-prev';
-    this._id_datepicker_prev_year = this._id_datepicker + '-prev-year';
-    this._id_datepicker_next      = this._id_datepicker + '-next';
-    this._id_datepicker_next_year = this._id_datepicker + '-next-year';
-    this._id_datepicker_hdr       = this._id_datepicker + '-header';
-    this._id_datepicker_ftr       = this._id_datepicker + '-footer';
-
-    /* build up calendar skel */
-    this._div = new Element('div', {
-      id      : this._id_datepicker,
-      className   : 'datepicker',
-      style     : 'display: none; z-index:' + this._zindex
-    });
-
-    this._div.innerHTML = '<div class="datepicker-header"><table class="header"><tr><td id="' + this._id_datepicker_prev_year + '" class="prev-year"> << </td><td id="' + this._id_datepicker_prev + '" class="prev"> < </td><td id="' + this._id_datepicker_hdr + '" class="header"></td><td id="' + this._id_datepicker_next + '" class="next"> > </td><td id="' + this._id_datepicker_next_year + '" class="next-year"> >> </td></tr></table></div><div class="datepicker-calendar"><table class="body"><tbody id="' + this._id_datepicker + '-tbody"></tbody></table></div><div id="' + this._id_datepicker_ftr + '" class="datepicker-footer"></div>';
-
-    /* Build the datepicker icon */
-    var datepickeropener = Builder.node('table',{className : "datepicker-opener-table", id: this._id_datepicker + '_image'});
-    var con = Builder.node('tr',{},[
-      Builder.node('td',{className : "datepicker-opener", id : "datepicker-opener-" + this._relative})
-    ]);
-    // insert into TBODY
-    if (datepickeropener.childNodes[0] !== undefined) {
-      datepickeropener.childNodes[0].appendChild(con);
-    } else {
-      datepickeropener.appendChild(con);
-    }
-
-    Event.observe(datepickeropener,'click', this.click.bindAsEventListener(this), false);
-
-    this.insertAfter($(this._relative).parentNode,datepickeropener,$(this._relative));
-    /* End Build the datepicker icon */
-
-    /* need to append on body when doc is loaded for IE */
-    document.observe('dom:loaded', this.load.bindAsEventListener(this), false);
-
-    /* automatically close when blur event is triggered */
-    if ( this._enableCloseOnBlur ) {
-      Event.observe(this._relative, 'blur', function (e) {
-        this._closeTimer = this.close.bind(this).delay(1);
-      }.bindAsEventListener(this));
-      Event.observe(this._div, 'click', function (e) {
-        if (this._closeTimer) {
-          window.clearTimeout(this._closeTimer);
-          this._closeTimer = null;
-        }
-      });
-    }
-  },
-
-  /**
-   * load : called when document is fully-loaded to append datepicker
-   *      to main object.
-   */
-  load : function ()
-  {
-    /* if externalControl defined set the observer on it */
-    if (this._externalControl)
-      Event.observe(this._externalControl, 'click', this.click.bindAsEventListener(this), false);
-
-    /* append to page */
-    if (this._relativeAppend) {
-
-      /* append to parent node */
-      if ($(this._relative).parentNode) {
-        this._div.innerHTML = this._wrap_in_iframe(this._div.innerHTML);
-        $(this._relative).parentNode.appendChild( this._div );
-      }
-    } else {
-
-      /* append to body */
-      var body  = document.getElementsByTagName("body").item(0);
-      if (body) {
-        this._div.innerHTML = this._wrap_in_iframe(this._div.innerHTML);
-        body.appendChild(this._div);
-      }
-      if ( this._relativePosition ) {
-        var a_pos = Element.cumulativeOffset($(this._relative));
-        this.setPosition(a_pos[1], a_pos[0]);
-      } else {
-        if (this._setPositionTop || this._setPositionLeft)
-          this.setPosition(this._setPositionTop, this._setPositionLeft);
-      }
-    }
-    /* init the date in field if needed */
-    this._initCurrentDate();
-
-    /* set the close locale content */
-    $(this._id_datepicker_ftr).innerHTML = this.getLocaleClose();
-
-    /* declare the observers for UI control */
-    Event.observe($(this._id_datepicker_prev),    'click', this.prevMonth.bindAsEventListener(this), false);
-    Event.observe($(this._id_datepicker_prev_year), 'click', this.prevYear.bindAsEventListener(this),   false);
-    Event.observe($(this._id_datepicker_next),    'click', this.nextMonth.bindAsEventListener(this), false);
-    Event.observe($(this._id_datepicker_next_year), 'click', this.nextYear.bindAsEventListener(this),   false);
-    Event.observe($(this._id_datepicker_ftr),     'click', this.close.bindAsEventListener(this),    false);
-
-  },
-
-  insertAfter : function(parent, node, referenceNode) {
-    parent.insertBefore(node, referenceNode.nextSibling);
-  },
-
-  /* hack for buggy form elements layering in IE */
-  _wrap_in_iframe : function ( content ) {
-    return  ( Prototype.Browser.IE && msieversion() < 8 ) ? "<div style='height:167px;width:185px;background-color:white;align:left'><iframe width='100%' height='100%' marginwidth='0' marginheight='0' frameborder='0' src='about:blank' style='filter:alpha(Opacity=50);'></iframe><div style='position:absolute;background-color:white;top:2px;left:2px;width:180px'>" + content + "</div></div>" : content;
-  },
-
-  /**
-   * visible  : return the visibility status of the datepicker.
-   */
-  visible : function () {
-    return $(this._id_datepicker).visible();
-  },
-
-  /**
-   * click  : called when input element is clicked
-   */
-  click : function ()
-  {
-    /* init the datepicker if it doesn't exists */
-    if ($(this._id_datepicker) == null)
-      this.load();
-    var a_pos = Element.cumulativeOffset($(this._relative));
-    this.setPosition(a_pos[1], a_pos[0]);
-    if (!this._isPositionned && this._relativePosition) {
-      /* position the datepicker relatively to element */
-      var a_lt = Element.positionedOffset($(this._relative));
-      $(this._id_datepicker).setStyle({
-        'left' : Number(a_lt[0] + this._leftOffset) + 'px',
-        'top' : Number(a_lt[1] + this._topOffset) + 'px'
-      });
-      this._isPositionned = true;
-    }
-    if (!this.visible()) {
-      this._initCurrentDate();
-      this._redrawCalendar();
-    }
-
-    /* call the clickCallback function */
-    this._clickCallback();
-
-    /* Effect toggle to fade-in / fade-out the datepicker */
-    if ( this._enableShowEffect ) {
-      Effect.toggle(this._id_datepicker, this._showEffect, { duration: this._showDuration });
-    } else {
-      $(this._id_datepicker).show();
-    }
-  },
-  /**
-   * close  : called when the datepicker is closed
-   */
-  close   : function () {
-    if ( this._enableCloseEffect ) {
-      switch(this._closeEffect) {
-        case 'puff':
-          Effect.Puff(this._id_datepicker, { duration : this._closeEffectDuration });
-        break;
-        case 'blindUp':
-          Effect.BlindUp(this._id_datepicker, { duration : this._closeEffectDuration });
-        break;
-        case 'dropOut':
-          Effect.DropOut(this._id_datepicker, { duration : this._closeEffectDuration });
-        break;
-        case 'switchOff':
-          Effect.SwitchOff(this._id_datepicker, { duration : this._closeEffectDuration });
-        break;
-        case 'squish':
-          Effect.Squish(this._id_datepicker, { duration : this._closeEffectDuration });
-        break;
-        case 'fold':
-          Effect.Fold(this._id_datepicker, { duration : this._closeEffectDuration });
-        break;
-        case 'shrink':
-          Effect.Shrink(this._id_datepicker, { duration : this._closeEffectDuration });
-        break;
-        default:
-          Effect.Fade(this._id_datepicker, {  duration : this._closeEffectDuration });
-        break;
-      };
-    } else {
-      $(this._id_datepicker).hide();
-    }
-    this._afterClose();
-  },
-
-  /**
-   * setDateFormat
-   */
-  setDateFormat : function ( format, separator ) {
-    if (Object.isUndefined(format))
-      format = this._dateFormat[0];
-    if (Object.isUndefined(separator))
-      separator = this._dateFormat[1];
-    this._dateFormat = [ format, separator ];
-  },
-
-  /**
-   * setPosition  : set the position of the datepicker.
-   *  param : t=top | l=left
-   */
-  setPosition : function ( t, l ) {
-    var h_pos = { 'top' : '0px', 'left' : '0px' };
-    if (!Object.isUndefined(t))
-      h_pos['top'] = Number(t) + this._topOffset + 'px';
-    if (!Object.isUndefined(l))
-      h_pos['left'] = Number(l) + this._leftOffset + 'px';
-    $(this._id_datepicker).setStyle(h_pos);
-    this._isPositionned = true;
-  },
-
-  /**
-   * _getMonthDays : given the year and month find the number of days.
-   */
-  _getMonthDays : function ( year, month ) {
-    if ((((year % 4) === 0) && (((year % 100) !== 0) || ((year % 400) !== 0))) && (month === 1))
-      return 29;
-    return this._daysInMonth[month];
-  },
-
-  /**
-   * _buildCalendar : draw the days array for current date
-   */
-  _buildCalendar : function ()
-  {
-    var tbody = $(this._id_datepicker + '-tbody');
-    try {
-      while ( tbody.hasChildNodes() )
-      tbody.removeChild(tbody.childNodes[0]);
-    } catch ( e ) {};
-
-    /* generate day headers */
-    var trDay = new Element('tr');
-    this._language_day.get(this._language).each( function ( item ) {
-      var td = new Element('td');
-      td.innerHTML = item;
-      td.className = 'wday';
-      trDay.appendChild( td );
-    });
-    tbody.appendChild( trDay );
-
-    /* generate the content of days */
-
-    /* build-up days matrix */
-    var a_d = [
-      [ 0, 0, 0, 0, 0, 0, 0 ],
-      [ 0, 0, 0, 0, 0, 0, 0 ],
-      [ 0, 0, 0, 0, 0, 0, 0 ],
-      [ 0, 0, 0, 0, 0, 0, 0 ],
-      [ 0, 0, 0, 0, 0, 0, 0 ],
-      [ 0, 0, 0, 0, 0, 0, 0 ]
-    ];
-
-    /* set date at beginning of month to display */
-    var d = new Date(this._current_year, this._current_mon, 1, 12);
-
-    /* start the day list on monday */
-    var startIndex    = ( !d.getDay() ) ? 6 : d.getDay() - 1;
-    var nbDaysInMonth = this._getMonthDays(this._current_year, this._current_mon);
-    var daysIndex     = 1;
-
-    for ( var j = startIndex; j < 7; j++ ) {
-      a_d[0][j] = {
-        d : daysIndex,
-        m : this._current_mon,
-        y : this._current_year
-      };
-      daysIndex++;
-    }
-
-    var a_prevMY = this._prevMonthYear();
-    var nbDaysInMonthPrev = this._getMonthDays(a_prevMY[1], a_prevMY[0]);
-    for ( var j = 0; j < startIndex; j++ ) {
-      a_d[0][j] = {
-        d : Number(nbDaysInMonthPrev - startIndex + j + 1),
-        m : Number(a_prevMY[0]),
-        y : a_prevMY[1],
-        c : 'outbound'
-      };
-    }
-    var switchNextMonth = false;
-    var currentMonth = this._current_mon;
-    var currentYear = this._current_year;
-    for ( var i = 1; i < 6; i++ ) {
-      for ( var j = 0; j < 7; j++ ) {
-        a_d[i][j] = {
-          d : daysIndex,
-          m : currentMonth,
-          y : currentYear,
-          c : (switchNextMonth ? 'outbound' : (((daysIndex === this._todayDate.getDate()) && (this._current_mon === this._todayDate.getMonth()) && (this._current_year === this._todayDate.getFullYear())) ? 'today' : null))
-        };
-        daysIndex++;
-
-        /* if at the end of the month : reset counter */
-        if (daysIndex > nbDaysInMonth ) {
-          daysIndex = 1;
-          switchNextMonth = true;
-          if (this._current_mon + 1 > 11 ) {
-            currentMonth = 0;
-            currentYear += 1;
-          } else {
-            currentMonth += 1;
-          }
-        }
-      }
-    }
-
-    /* generate days for current date */
-    for ( var i = 0; i < 6; i++ ) {
-      var tr = new Element('tr');
-      for ( var j = 0; j < 7; j++ ) {
-        var h_ij  = a_d[i][j];
-        var td = new Element('td');
-
-        /* id is : datepicker-day-mon-year or depending on language other way */
-        /* don't forget to add 1 on month for proper formmatting */
-        var id = $A([
-          this._relative,
-          this._df.date_to_string(h_ij["y"], h_ij["m"] + 1, h_ij["d"], '-')
-        ]).join('-');
-
-        /* set id and classname for cell if exists */
-        td.setAttribute('id', id);
-        if (h_ij["c"])
-          td.className  = h_ij["c"];
-
-        /* on onclick : rebuild date value from id of current cell */
-        var _curDate = new Date();
-        var _res;
-
-        _curDate.setFullYear(h_ij["y"], h_ij["m"], h_ij["d"]);
-        if ( this._disablePastDate || this._disableFutureDate ) {
-          if ( this._disablePastDate ) {
-            _res  = ( _curDate >= this._todayDate ) ? true : false;
-            this._bindCellOnClick( td, true, _res, h_ij["c"] );
-          }
-          if ( this._disableFutureDate ) {
-            _res  = ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false;
-            this._bindCellOnClick( td, true, _res,  h_ij["c"] );
-          }
-        } else {
-          this._bindCellOnClick( td, false );
-        }
-        td.innerHTML = h_ij["d"];
-        tr.appendChild( td );
-      }
-      tbody.appendChild( tr );
-    }
-    return  tbody;
-  },
-
-  /**
-   * _bindCellOnClick : bind the cell onclick depending on status.
-   */
-  _bindCellOnClick : function ( td, wcompare, compareresult, h_ij_c ) {
-    var doBind  = false;
-    if ( wcompare ) {
-      if ( compareresult ) {
-        doBind  = true;
-      } else {
-        td.className = ( h_ij_c ) ? 'nclick-outbound' : 'nclick';
-      }
-    } else {
-      doBind = true;
-    }
-    if ( doBind ) {
-      var _self = this;
-      td.onclick = function () {
-        $(_self._relative).value = String($(this).readAttribute('id')).replace(_self._relative + '-','').replace(/-/g, _self._df.separator);
-
-        /* if we have a cellCallback defined call it and pass it the cell */
-        if (_self._cellCallback)
-          _self._cellCallback(this);
-        _self.close();
-      };
-    }
-  },
-
-  /**
-   * nextMonth  : redraw the calendar content for next month.
-   */
-  _nextMonthYear  : function () {
-    var c_mon = this._current_mon;
-    var c_year  = this._current_year;
-    if (c_mon + 1 > 11) {
-      c_mon = 0;
-      c_year  += 1;
-    } else {
-      c_mon += 1;
-    }
-    return [ c_mon, c_year ];
-  },
-
-  nextMonth : function () {
-    var a_next    = this._nextMonthYear();
-    var _nextMon  = a_next[0];
-    var _nextYear = a_next[1];
-    var _curDate  = new Date();
-    _curDate.setFullYear(_nextYear, _nextMon, 1);
-    var _res  = ( this._todayDate.getTime() + this._oneDayInMs > _curDate.getTime() ) ? true : false;
-    if ( this._disableFutureDate && !_res )
-      return;
-    this._current_mon = _nextMon;
-    this._current_year = _nextYear;
-    this._redrawCalendar();
-  },
-
-  _nextYear : function () {
-    var c_mon = this._current_mon;
-    var c_year  = this._current_year;
-    c_year  += 1;
-    return [ c_mon, c_year ];
-  },
-
-  nextYear  : function () {
-    var a_next = this._nextYear();
-    this._current_mon = a_next[0];
-    this._current_year = a_next[1];
-    this._redrawCalendar();
-  },
-
-  /**
-  * prevMonth : redraw the calendar content for previous month.
-  */
-  _prevMonthYear  : function () {
-    var c_mon = this._current_mon;
-    var c_year  = this._current_year;
-    if (c_mon - 1 < 0) {
-      c_mon = 11;
-      c_year  -= 1;
-    } else {
-      c_mon -= 1;
-    }
-    return [ c_mon, c_year ];
-  },
-
-  prevMonth : function () {
-    var a_prev    = this._prevMonthYear();
-    var _prevMon  = a_prev[0];
-    var _prevYear = a_prev[1];
-    var _curDate  = new Date();
-    _curDate.setFullYear(_prevYear, _prevMon, 1);
-    var _res  = ( _curDate >= this._todayDate ) ? true : false;
-    if ( this._disablePastDate && !_res )
-      return;
-    this._current_mon = _prevMon;
-    this._current_year = _prevYear;
-    this._redrawCalendar();
-  },
-
-  _prevYear : function () {
-    var c_mon = this._current_mon;
-    var c_year  = this._current_year;
-    c_year  -= 1;
-    return [ c_mon, c_year ];
-  },
-
-  prevYear  : function () {
-    var a_prev = this._prevYear();
-    this._current_mon = a_prev[0];
-    this._current_year = a_prev[1];
-    this._redrawCalendar();
-  },
-
-  _redrawCalendar : function () {
-    this._setLocaleHdr();
-    this._buildCalendar();
-  },
-
-  _setLocaleHdr : function ()
-  {
-    /* prev year link */
-    var a_prevy = this._prevYear();
-    $(this._id_datepicker_prev_year).setAttribute('title', this.getMonthLocale(a_prevy[0]) + ' ' + a_prevy[1]);
-
-    /* prev link */
-    var a_prev = this._prevMonthYear();
-    $(this._id_datepicker_prev).setAttribute('title', this.getMonthLocale(a_prev[0]) + ' ' + a_prev[1]);
-
-    /* next link */
-    var a_next = this._nextMonthYear();
-    $(this._id_datepicker_next).setAttribute('title', this.getMonthLocale(a_next[0]) + ' ' + a_next[1]);
-
-    /* next year link */
-    var a_nexty = this._nextYear();
-    $(this._id_datepicker_next_year).setAttribute('title', this.getMonthLocale(a_nexty[0]) + ' ' + a_nexty[1]);
-
-    /* header */
-    $(this._id_datepicker_hdr).update('&nbsp;&nbsp;&nbsp;' + this.getMonthLocale(this._current_mon) + '&nbsp;' + this._current_year + '&nbsp;&nbsp;&nbsp;');
-  }
-};
-
-
-function msieversion()
-{
-   var ua = window.navigator.userAgent
-   var msie = ua.indexOf ( "MSIE " )
-   if ( msie > 0 )      // If Internet Explorer, return version number
-      return parseInt (ua.substring (msie + 5, ua.indexOf (".", msie )))
-   else                 // If another browser, return 0
-      return 0
-}
diff --git a/html/include/fusiondirectory.js b/html/include/fusiondirectory.js
index 1bf81670aaab84754f9836e6f13563da94c9e935..f55608b152e320dc0653b189b1ecf3a7839b0bff 100644
--- a/html/include/fusiondirectory.js
+++ b/html/include/fusiondirectory.js
@@ -124,7 +124,7 @@ function focus_field()
     i++;
   }
 
-  if (element && found) {
+  if (element) {
     element.blur();
     element.focus();
   }
diff --git a/html/index.php b/html/index.php
index 12ddfc70f64384d64e2a5983398d5f0af8dfa012..99afe636e0cd6f30dc76bc29e8195c53212487f3 100644
--- a/html/index.php
+++ b/html/index.php
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -20,8 +20,8 @@
 */
 
 /* Load required includes */
-require_once ("../include/php_setup.inc");
-require_once ("functions.inc");
+require_once("../include/php_setup.inc");
+require_once("functions.inc");
 require_once("variables.inc");
 require_once("class_logging.inc");
 
@@ -31,79 +31,11 @@ header('X-XSS-Protection: 1; mode=block');
 header('X-Content-Type-Options: nosniff');
 header('X-Frame-Options: deny');
 
-/* Display the login page and exit() */
-function displayLogin ()
-{
-  global $smarty,$message,$config,$ssl,$error_collector,$error_collector_mailto;
-  $lang = session::get('lang');
-
-  error_reporting(E_ALL | E_STRICT);
-  /* Fill template with required values */
-  $username = '';
-  if (isset($_POST['username'])) {
-    $username = trim($_POST['username']);
-  }
-  $smarty->assign('date',      gmdate('D, d M Y H:i:s'));
-  $smarty->assign('username',  $username);
-  $smarty->assign('revision',  FD_VERSION);
-  $smarty->assign('year',      date('Y'));
-  $smarty->append('css_files', get_template_path('login.css'));
-  $smarty->assign('title',      _('Sign in'));
-
-  /* Some error to display? */
-  if (!isset($message)) {
-    $message = "";
-  }
-  $smarty->assign("message", $message);
-
-  /* Display SSL mode warning? */
-  if (($ssl != '') && ($config->get_cfg_value('warnSSL') == 'TRUE')) {
-    $smarty->assign('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
-  } else {
-    $smarty->assign('ssl', '');
-  }
-
-  if (!$config->check_session_lifetime()) {
-    $smarty->assign('lifetime', _('Warning: The session lifetime configured in your fusiondirectory.conf will be overridden by php.ini settings.'));
-  } else {
-    $smarty->assign('lifetime', '');
-  }
-
-  /* Generate server list */
-  $servers = [];
-  if (isset($_POST['server'])) {
-    $selected = $_POST['server'];
-  } else {
-    $selected = $config->data['MAIN']['DEFAULT'];
-  }
-  foreach ($config->data['LOCATIONS'] as $key => $ignored) {
-    $servers[$key] = $key;
-  }
-  $smarty->assign("server_options", $servers);
-  $smarty->assign("server_id", $selected);
-
-  /* show login screen */
-  $smarty->assign("PHPSESSID", session_id());
-  if (session::is_set('errors')) {
-    $smarty->assign("errors", session::get('errors'));
-  }
-  if ($error_collector != "") {
-    $smarty->assign("php_errors", preg_replace("/%BUGBODY%/", $error_collector_mailto, $error_collector)."</div>");
-  } else {
-    $smarty->assign("php_errors", "");
-  }
-  $smarty->assign("msg_dialogs", msg_dialog::get_dialogs());
-  $smarty->assign("usePrototype", "false");
-  $smarty->assign("date", date("l, dS F Y H:i:s O"));
-  $smarty->assign("lang", preg_replace('/_.*$/', '', $lang));
-  $smarty->assign("rtl",  Language::isRTL($lang));
-
-  $smarty->display(get_template_path('headers.tpl'));
-  $smarty->assign("version", FD_VERSION);
-
-  $smarty->display(get_template_path('login.tpl'));
-  exit();
-}
+/**
+ * @var Smarty $smarty    Defined in php_setup.inc
+ * @var string $BASE_DIR  Defined in php_setup.inc
+ * @var string $ssl       Defined in php_setup.inc
+ */
 
 /*****************************************************************************
  *                               M   A   I   N                               *
@@ -114,32 +46,38 @@ function displayLogin ()
 session::start();
 
 if (isset($_REQUEST['signout']) && $_REQUEST['signout']) {
+  $reason = '';
   if (session::is_set('connected')) {
     $config = session::get('config');
-    if ($config->get_cfg_value('casActivated') == 'TRUE') {
-      require_once('CAS.php');
-      /* Move FD autoload after CAS autoload */
-      spl_autoload_unregister('fusiondirectory_autoload');
-      spl_autoload_register('fusiondirectory_autoload');
-      phpCAS::client(
-        CAS_VERSION_2_0,
-        $config->get_cfg_value('casHost', 'localhost'),
-        (int)($config->get_cfg_value('casPort', 443)),
-        $config->get_cfg_value('casContext', '')
-      );
-      // Set the CA certificate that is the issuer of the cert
-      phpCAS::setCasServerCACert($config->get_cfg_value('casServerCaCertPath'));
-      phpCas::logout();
+    if (
+      ($config->get_cfg_value('casActivated') == 'TRUE') ||
+      ($config->get_cfg_value('LoginMethod') === 'LoginCAS')
+    ) {
+      LoginCAS::initCAS();
+      phpCAS::logout();
+    }
+    $reason = 'Sign out';
+    if (isset($_REQUEST['message'])) {
+      switch ($_REQUEST['message']) {
+        case 'expired':
+          $reason = 'Session expired';
+          break;
+        case 'invalidparameter':
+          $reason = sprintf('Invalid plugin parameter "%s"!', $_REQUEST['plug']);
+          break;
+        case 'nosession':
+          $reason = 'No session found';
+          break;
+        default:
+      }
     }
   }
-  session::destroy();
+  session::destroy($reason);
   session::start();
 }
 
 /* Reset errors */
-session::set('errors', '');
-session::set('errorsAlreadyPosted', '');
-session::set('LastError', '');
+reset_errors();
 
 /* Check if we need to run setup */
 if (!file_exists(CONFIG_DIR.'/'.CONFIG_FILE)) {
@@ -149,47 +87,42 @@ if (!file_exists(CONFIG_DIR.'/'.CONFIG_FILE)) {
 
 /* Check if fusiondirectory.conf (.CONFIG_FILE) is accessible */
 if (!is_readable(CONFIG_DIR.'/'.CONFIG_FILE)) {
-  msg_dialog::display(
-    _('Configuration error'),
-    sprintf(
-      _('FusionDirectory configuration %s/%s is not readable. Please run fusiondirectory-setup --check-config to fix this.'),
+  throw new FatalError(
+    htmlescape(sprintf(
+      _('FusionDirectory configuration %s/%s is not readable. Please run fusiondirectory-configuration-manager --check-config to fix this.'),
       CONFIG_DIR,
       CONFIG_FILE
-    ),
-    FATAL_ERROR_DIALOG
+    ))
   );
-  exit();
 }
 
 /* Parse configuration file */
 $config = new config(CONFIG_DIR.'/'.CONFIG_FILE, $BASE_DIR);
 session::set('config', $config);
 session::set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
-@DEBUG(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, 'config');
+logging::debug(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, 'config');
+/* Configuration was reloaded, so plist needs to be as well */
+session::un_set('plist');
+unset($plist);
 
 /* Set template compile directory */
-$smarty->compile_dir = $config->get_cfg_value('templateCompileDirectory', SPOOL_DIR);
+$smarty->setCompileDir($config->get_cfg_value('templateCompileDirectory', SPOOL_DIR));
 
 /* Check for compile directory */
-if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))) {
-  msg_dialog::display(
-    _('Smarty error'),
-    sprintf(
+if (!(is_dir($smarty->getCompileDir()) && is_writable($smarty->getCompileDir()))) {
+  throw new FatalError(
+    htmlescape(sprintf(
       _('Directory "%s" specified as compile directory is not accessible!'),
-      $smarty->compile_dir
-    ),
-    FATAL_ERROR_DIALOG
+      $smarty->getCompileDir()
+    ))
   );
-  exit();
 }
 
 /* Check for old files in compile directory */
-clean_smarty_compile_dir($smarty->compile_dir);
+clean_smarty_compile_dir($smarty->getCompileDir());
 
 Language::init();
 
-$smarty->assign('focusfield', 'username');
-
 if (isset($_POST['server'])) {
   $server = $_POST['server'];
 } else {
@@ -200,7 +133,8 @@ $config->set_current($server);
 if (
   ($config->get_cfg_value('casActivated') == 'TRUE') ||
   ($config->get_cfg_value('httpAuthActivated') == 'TRUE') ||
-  ($config->get_cfg_value('httpHeaderAuthActivated') == 'TRUE')) {
+  ($config->get_cfg_value('httpHeaderAuthActivated') == 'TRUE') ||
+  in_array($config->get_cfg_value('LoginMethod'), ['LoginCas', 'LoginHTTPAuth', 'LoginHTTPHeader'])) {
   session::set('DEBUGLEVEL', 0);
 }
 
@@ -226,385 +160,4 @@ if (isset($_REQUEST['message'])) {
   }
 }
 
-/* Class with a function for each login step
- * Each function can return a string to display an LDAP error, or FALSE to redirect to login
- * In this case it can set global $message and assign focusfield in smarty before hand */
-class Index {
-  static protected $username;
-  static protected $password;
-
-  static function init ()
-  {
-    static::$username = NULL;
-    static::$password = NULL;
-  }
-
-  /* Runs schemaCheck if activated in configuration */
-  static function runSchemaCheck ()
-  {
-    global $config;
-    if ($config->get_cfg_value('schemaCheck') != 'TRUE') {
-      return TRUE;
-    }
-    $cfg = [];
-    $cfg['admin']       = $config->current['ADMINDN'];
-    $cfg['password']    = $config->current['ADMINPASSWORD'];
-    $cfg['connection']  = $config->current['SERVER'];
-    $cfg['tls']         = ($config->get_cfg_value('ldapTLS') == 'TRUE');
-    $str = check_schema($cfg);
-    foreach ($str as $tr) {
-      if (!$tr['STATUS']) {
-        if ($tr['IS_MUST_HAVE']) {
-          return _('LDAP schema check reported errors:').'<br/><br/><i>'.$tr['MSG'].'</i>';
-        } else {
-          msg_dialog::display(_('LDAP schema error'), $tr['MSG'], WARNING_DIALOG);
-        }
-      }
-    }
-    return TRUE;
-  }
-
-  /* Check locking LDAP branch is here or create it */
-  static function checkForLockingBranch ()
-  {
-    global $config;
-    $ldap = $config->get_ldap_link();
-    $ldap->cat(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], ['dn']);
-    $attrs = $ldap->fetch();
-    if (!count($attrs)) {
-      $ldap->cd($config->current['BASE']);
-      $ldap->create_missing_trees(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-    }
-  }
-
-  /* Check username for invalid characters and check password is not empty
-   * Also trims username */
-  static function validateUserInput ()
-  {
-    global $message, $smarty;
-    static::$username = trim(static::$username);
-    if (!preg_match('/^[@A-Za-z0-9_.-]+$/', static::$username)) {
-      $message = _('Please specify a valid username!');
-      return FALSE;
-    } elseif (mb_strlen(static::$password, 'UTF-8') == 0) {
-      $message = _('Please specify your password!');
-      $smarty->assign('focusfield', 'password');
-      return FALSE;
-    }
-    return TRUE;
-  }
-
-  /* Performs an LDAP bind with $username and $password */
-  static function ldapLoginUser ()
-  {
-    global $ui, $config, $message, $smarty;
-    /* Login as user, initialize user ACL's */
-    $ui = ldap_login_user(static::$username, static::$password);
-    if ($ui === NULL) {
-      if (isset($_SERVER['REMOTE_ADDR'])) {
-        logging::log('security', 'login', '', [], 'Authentication failed for user "'.static::$username.'" [from '.$_SERVER['REMOTE_ADDR'].']');
-      } else {
-        logging::log('security', 'login', '', [], 'Authentication failed for user "'.static::$username.'"');
-      }
-      $message = _('Please check the username/password combination.');
-      $smarty->assign('focusfield', 'password');
-      return FALSE;
-    }
-    return TRUE;
-  }
-
-  /* Called after successful login, return FALSE if account is expired */
-  static function loginAndCheckExpired ()
-  {
-    global $ui, $config, $plist, $message, $smarty;
-    /* Remove all locks of this user */
-    del_user_locks($ui->dn);
-
-    /* Save userinfo and plugin structure */
-    session::set('ui', $ui);
-
-    /* User might have its own language, re-run initLanguage */
-    $plistReloaded = Language::init();
-
-    /* We need a fully loaded plist and config to test account expiration */
-    if (!$plistReloaded) {
-      session::un_set('plist');
-    }
-    $plist = load_plist();
-
-    /* Check that newly installed plugins have their configuration in the LDAP (will reload plist if needed) */
-    $config->checkLdapConfig();
-
-    /* Check account expiration */
-    if ($config->get_cfg_value('handleExpiredAccounts') == 'TRUE') {
-      $expired = $ui->expired_status();
-
-      if ($expired == POSIX_ACCOUNT_EXPIRED) {
-        logging::log('security', 'login', '', [], 'Account for user "'.static::$username.'" has expired');
-        $message = _('Account locked. Please contact your system administrator!');
-        $smarty->assign('focusfield', 'username');
-        return FALSE;
-      }
-    }
-    return TRUE;
-  }
-
-  /* Final step of successful login: redirect to main.php */
-  static function redirect ()
-  {
-    global $config;
-    /* Not account expired or password forced change go to main page */
-    logging::log('security', 'login', '', [], 'User "'.static::$username.'" logged in successfully.');
-    session::set('connected', 1);
-    session::set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
-    header('Location: main.php?global_check=1');
-    exit;
-  }
-
-  /* Return HTTP authentication header */
-  static function authenticateHeader ($message = 'Authentication required')
-  {
-    header('WWW-Authenticate: Basic realm="FusionDirectory"');
-    header('HTTP/1.0 401 Unauthorized');
-    echo "$message\n";
-    exit;
-  }
-
-  /* Run each step in $steps, stop on errors */
-  static function runSteps ($steps)
-  {
-    foreach ($steps as $step) {
-      $status = static::$step();
-      if (is_string($status)) {
-        msg_dialog::display(_('LDAP error'), $status, LDAP_ERROR);
-        return FALSE;
-      } elseif ($status === FALSE) {
-        return FALSE;
-      }
-    }
-    return TRUE;
-  }
-
-  /* All login steps in the right order for standard POST login */
-  static function fullLoginProcess ()
-  {
-    global $config, $message;
-
-    static::init();
-
-    /* Reset error messages */
-    $message = '';
-
-    static::$username = $_POST['username'];
-    static::$password = $_POST['password'];
-
-    $success = static::runSteps([
-      'validateUserInput',
-      'ldapLoginUser',
-      'checkForLockingBranch',
-      'loginAndCheckExpired',
-      'runSchemaCheck',
-    ]);
-
-    if ($success) {
-      /* Everything went well, redirect to main.php */
-
-      //Regenerate after login in order to avoid session fixation issues (vuln),
-      session_regenerate_id();
-
-      static::redirect();
-    }
-  }
-
-  /* All login steps in the right order for HTTP auth login */
-  static function authLoginProcess ()
-  {
-    global $config, $message;
-
-    static::init();
-
-    if (!isset($_SERVER['PHP_AUTH_USER'])) {
-      static::authenticateHeader();
-    }
-
-    static::$username = $_SERVER['PHP_AUTH_USER'];
-    static::$password = $_SERVER['PHP_AUTH_PW'];
-
-    $success = static::runSteps([
-      'validateUserInput',
-      'ldapLoginUser',
-      'checkForLockingBranch',
-      'loginAndCheckExpired',
-      'runSchemaCheck',
-    ]);
-
-    if ($success) {
-      /* Everything went well, redirect to main.php */
-      static::redirect();
-    } else {
-      static::authenticateHeader($message);
-    }
-  }
-
-  /* All login steps in the right order for HTTP Header login */
-  static function headerAuthLoginProcess ()
-  {
-    global $config, $message, $ui;
-
-    static::init();
-
-    /* Reset error messages */
-    $message = '';
-
-    $header = $config->get_cfg_value('httpHeaderAuthHeaderName', 'AUTH_USER');
-
-    static::$username = $_SERVER['HTTP_'.$header];
-
-    if (!static::$username) {
-      msg_dialog::display(
-        _('Error'),
-        sprintf(
-          _('No value found in HTTP header "%s"'),
-          $header
-        ),
-        FATAL_ERROR_DIALOG
-      );
-      exit();
-    }
-
-    $ui = ldap_get_user(static::$username);
-
-    if ($ui === FALSE) {
-      msg_dialog::display(
-        _('Error'),
-        sprintf(
-          _('Header user "%s" could not be found in the LDAP'),
-          static::$username
-        ),
-        FATAL_ERROR_DIALOG
-      );
-      exit();
-    } elseif (is_string($ui)) {
-      msg_dialog::display(
-        _('Error'),
-        sprintf(
-          _('Login with user "%s" triggered error: %s'),
-          static::$username,
-          $ui
-        ),
-        FATAL_ERROR_DIALOG
-      );
-      exit();
-    }
-
-    $ui->loadACL();
-
-    $success = static::runSteps([
-      'checkForLockingBranch',
-      'loginAndCheckExpired',
-      'runSchemaCheck',
-    ]);
-
-    if ($success) {
-      /* Everything went well, redirect to main.php */
-      static::redirect();
-    }
-  }
-
-  /* All login steps in the right order for CAS login */
-  static function casLoginProcess ()
-  {
-    global $config, $message, $ui;
-
-    static::init();
-
-    /* Reset error messages */
-    $message = '';
-
-    // Initialize phpCAS
-    phpCAS::client(
-      CAS_VERSION_2_0,
-      $config->get_cfg_value('casHost', 'localhost'),
-      (int)($config->get_cfg_value('casPort', 443)),
-      $config->get_cfg_value('casContext', '')
-    );
-
-    // Set the CA certificate that is the issuer of the cert
-    phpCAS::setCasServerCACert($config->get_cfg_value('casServerCaCertPath'));
-
-    // force CAS authentication
-    phpCAS::forceAuthentication();
-    static::$username = phpCAS::getUser();
-
-    $ui = ldap_get_user(static::$username);
-
-    if ($ui === FALSE) {
-      msg_dialog::display(
-        _('Error'),
-        sprintf(
-          _('CAS user "%s" could not be found in the LDAP'),
-          static::$username
-        ),
-        FATAL_ERROR_DIALOG
-      );
-      exit();
-    } elseif (is_string($ui)) {
-      msg_dialog::display(
-        _('Error'),
-        sprintf(
-          _('Login with user "%s" triggered error: %s'),
-          static::$username,
-          $ui
-        ),
-        FATAL_ERROR_DIALOG
-      );
-      exit();
-    }
-
-    $ui->loadACL();
-
-    $success = static::runSteps([
-      'checkForLockingBranch',
-      'loginAndCheckExpired',
-      'runSchemaCheck',
-    ]);
-
-    if ($success) {
-      /* Everything went well, redirect to main.php */
-      static::redirect();
-    }
-  }
-}
-
-if ($config->get_cfg_value('httpAuthActivated') == 'TRUE') {
-  Index::authLoginProcess();
-} elseif ($config->get_cfg_value('casActivated') == 'TRUE') {
-  require_once('CAS.php');
-  /* Move FD autoload after CAS autoload */
-  spl_autoload_unregister('fusiondirectory_autoload');
-  spl_autoload_register('fusiondirectory_autoload');
-  Index::casLoginProcess();
-} elseif ($config->get_cfg_value('httpHeaderAuthActivated') == 'TRUE') {
-  Index::headerAuthLoginProcess();
-} elseif ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['login'])) {
-  /* Got a formular answer, validate and try to log in */
-  Index::fullLoginProcess();
-}
-
-/* Translation of cookie-warning. Whether to display it, is determined by JavaScript */
-$smarty->assign('cookies', '<b>'._('Warning').':</b> '._('Your browser has cookies disabled. Please enable cookies and reload this page before logging in!'));
-
-/* Set focus to the error button if we've an error message */
-$focus = '';
-if (session::is_set('errors') && session::get('errors') != '') {
-  $focus = '<script type="text/javascript">';
-  $focus .= 'document.forms[0].error_accept.focus();';
-  $focus .= '</script>';
-}
-$smarty->assign('focus', $focus);
-
-displayLogin();
-?>
-
-</body>
-</html>
+LoginMethod::loginProcess();
diff --git a/html/main.php b/html/main.php
index 334dfe1ca7d706e0592e7e09ecb903cadb0f6eda..63bfb3ef7b829a3508a8803aba1fada28cdc53e0 100644
--- a/html/main.php
+++ b/html/main.php
@@ -19,12 +19,17 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-/* Save start time */
-$start = microtime();
+/**
+ * @var Smarty $smarty                  Defined in php_setup.inc
+ * @var string $BASE_DIR                Defined in php_setup.inc
+ * @var string $ssl                     Defined in php_setup.inc
+ * @var string $error_collector         Defined in php_setup.inc
+ * @var string $error_collector_mailto  Defined in php_setup.inc
+ */
 
 /* Basic setup, remove eventually registered sessions */
-require_once ("../include/php_setup.inc");
-require_once ("functions.inc");
+require_once("../include/php_setup.inc");
+require_once("functions.inc");
 require_once("variables.inc");
 
 /* Set headers */
@@ -40,18 +45,16 @@ textdomain($domain);
 
 /* Remember everything we did after the last click */
 session::start();
-session::set('errorsAlreadyPosted', []);
-session::set('runtime_cache', []);
-session::set('limit_exceeded', FALSE);
+reset_errors();
 
-if ($_SERVER["REQUEST_METHOD"] == "POST") {
-  @DEBUG(DEBUG_POST, __LINE__, __FUNCTION__, __FILE__, $_POST, "_POST");
+if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+  logging::debug(DEBUG_POST, __LINE__, __FUNCTION__, __FILE__, $_POST, '_POST');
 }
-@DEBUG(DEBUG_SESSION, __LINE__, __FUNCTION__, __FILE__, session::get_all(), "_SESSION");
+logging::debug(DEBUG_SESSION, __LINE__, __FUNCTION__, __FILE__, $_SESSION, '_SESSION');
 
 /* Logged in? Simple security check */
 if (!session::is_set('connected')) {
-  logging::log('security', 'login', '', [], 'main.php called without session - logging out');
+  session::destroy('main.php called without session');
   header('Location: index.php?message=nosession');
   exit;
 }
@@ -82,8 +85,7 @@ if (session::get('_LAST_PAGE_REQUEST') != '') {
      * kill session
      */
     if ($request_time > $max_life) {
-      session::destroy();
-      logging::log('security', 'login', '', [], 'main.php called with expired session - logging out');
+      session::destroy('main.php called with expired session');
       header('Location: index.php?signout=1&message=expired');
       exit;
     }
@@ -92,89 +94,67 @@ if (session::get('_LAST_PAGE_REQUEST') != '') {
 session::set('_LAST_PAGE_REQUEST', time());
 
 
-@DEBUG(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
+logging::debug(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
 
 /* Set template compile directory */
-$smarty->compile_dir = $config->get_cfg_value("templateCompileDirectory", SPOOL_DIR);
-
-/* Preset current main base */
-if (!session::is_set('CurrentMainBase')) {
-  session::set('CurrentMainBase', get_base_from_people($ui->dn));
-}
+$smarty->setCompileDir($config->get_cfg_value('templateCompileDirectory', SPOOL_DIR));
 
 Language::init();
 
 /* Prepare plugin list */
-$plist = load_plist();
-
-/* Check for register globals */
-if (isset($global_check) && $config->get_cfg_value("forceglobals") == "TRUE") {
-  msg_dialog::display(
-            _("PHP configuration"),
-            _("Fatal error: Register globals is on. FusionDirectory will refuse to login unless this is fixed by an administrator."),
-            FATAL_ERROR_DIALOG);
-
-  logging::log('security', 'login', '', [], 'Register globals is on. For security reasons, this should be turned off.');
-  session::destroy();
-  exit;
-}
-
-/* Check Plugin variable */
-if (session::is_set('plugin_dir')) {
-  $old_plugin_dir = session::get('plugin_dir');
+pluglist::load();
+/**
+ * @var pluglist $plist built by pluglist::load
+ */
+
+/* Check previous plugin index */
+if (session::is_set('plugin_index')) {
+  $old_plugin_index = session::get('plugin_index');
 } else {
-  $old_plugin_dir = "";
+  $old_plugin_index = '';
 }
 
 $plist->gen_menu();
 
-/* check if we are using account expiration */
-$smarty->assign("hideMenus", FALSE);
-if ($config->get_cfg_value("handleExpiredAccounts") == "TRUE") {
-  $expired = $ui->expired_status();
-  if (($expired == POSIX_WARN_ABOUT_EXPIRATION) && !session::is_set('POSIX_WARN_ABOUT_EXPIRATION__DONE')) {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, 'This user account ('.$ui->uid.') is about to expire');
-
-    // The users password is about to xpire soon, display a warning message.
-    logging::log('security', 'fusiondirectory', '', [], 'password for user "'.$ui->uid.'" is about to expire');
-    msg_dialog::display(_('Password change'), _('Your password is about to expire, please change your password!'), INFO_DIALOG);
-    session::set('POSIX_WARN_ABOUT_EXPIRATION__DONE', TRUE);
-  } elseif ($expired == POSIX_FORCE_PASSWORD_CHANGE) {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, "This user account expired");
-
-    // The password is expired, we are now going to enforce a new one from the user.
-
-    // Hide the FusionDirectory menus to avoid leaving the enforced password change dialog.
-    $smarty->assign("hideMenus", TRUE);
-    $plug = (isset($_GET['plug'])) ? $_GET['plug'] : NULL;
-
-    // Search for the 'user' class and set its id as active plug.
-    foreach ($plist->dirlist as $key => $value) {
-      if ($value == 'user') {
-        if (!isset($_GET['plug']) || ($_GET['plug'] != $key)) {
-          $_GET['plug'] = $key;
-          msg_dialog::display(_('Warning'), _('Your password has expired, please set a new one.'), WARNING_DIALOG);
-        }
-        break;
+$smarty->assign('hideMenus', FALSE);
+/* check user expiration status */
+$expired = $ui->expired_status();
+if (($expired == POSIX_WARN_ABOUT_EXPIRATION) && !session::is_set('POSIX_WARN_ABOUT_EXPIRATION__DONE')) {
+  logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, 'This user account ('.$ui->uid.') is about to expire');
+
+  // The users password is about to expire soon, display a warning message.
+  logging::log('security', 'fusiondirectory', '', [], 'password for user "'.$ui->uid.'" is about to expire');
+  msg_dialog::display(_('Password change'), htmlescape(_('Your password is about to expire, please change your password!')), INFO_DIALOG);
+  session::set('POSIX_WARN_ABOUT_EXPIRATION__DONE', TRUE);
+} elseif ($expired == POSIX_FORCE_PASSWORD_CHANGE) {
+  logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $expired, 'This user account expired');
+
+  // The password is expired, we are now going to enforce a new one from the user.
+
+  // Hide the FusionDirectory menus to avoid leaving the enforced password change dialog.
+  $smarty->assign('hideMenus', TRUE);
+  $plug = (isset($_GET['plug'])) ? $_GET['plug'] : NULL;
+
+  // Search for the 'user' class and set its id as active plug.
+  foreach ($plist->dirlist as $key => $value) {
+    if ($value == 'user') {
+      if (!isset($_GET['plug']) || ($_GET['plug'] != $key)) {
+        $_GET['plug'] = $key;
+        $warning = new FusionDirectoryWarning(htmlescape(_('Your password has expired, please set a new one.')));
+        $warning->display();
       }
+      break;
     }
   }
 }
 
 if (isset($_GET['plug']) && $plist->plugin_access_allowed($_GET['plug'])) {
-  $plug       = validate($_GET['plug']);
-  $plugin_dir = $plist->get_path($plug);
-  session::set('plugin_dir', $plugin_dir);
-  if ($plugin_dir == '') {
-    logging::log('security', 'fusiondirectory', '', [], "main.php called with invalid plug parameter \"$plug\"");
-    header('Location: index.php?signout=1&message=invalidparameter&plug='.$plug);
-    exit;
-  }
+  $plugin_index = validate($_GET['plug']);
 } else {
   /* set to welcome page as default plugin */
-  session::set('plugin_dir', 'welcome');
-  $plugin_dir = "$BASE_DIR/plugins/generic/welcome";
+  $plugin_index = 'welcome';
 }
+session::set('plugin_index', $plugin_index);
 
 /* Handle plugin locks.
     - Remove the plugin from session if we switched to another. (cleanup)
@@ -184,14 +164,9 @@ if (isset($_GET['plug']) && $plist->plugin_access_allowed($_GET['plug'])) {
 $cleanup      = FALSE;
 $remove_lock  = FALSE;
 
-/* Check if we have changed the selected plugin
-*/
-if ($old_plugin_dir != $plugin_dir && $old_plugin_dir != "") {
-  if (is_file("$old_plugin_dir/main.inc")) {
-    $cleanup = $remove_lock = TRUE;
-    require ("$old_plugin_dir/main.inc");
-    $cleanup = $remove_lock = FALSE;
-  }
+/* Check if we have changed the selected plugin */
+if (!empty($old_plugin_index) && ($old_plugin_index != $plugin_index)) {
+  pluglist::runMainInc($old_plugin_index, TRUE);
 } elseif ((isset($_GET['reset']) && $_GET['reset'] == 1) || isset($_POST['delete_lock'])) {
   /* Reset was posted, remove all created locks for the current plugin */
   $remove_lock = TRUE;
@@ -201,36 +176,9 @@ if ($old_plugin_dir != $plugin_dir && $old_plugin_dir != "") {
 $ui->getSizeLimitHandler()->update();
 
 /* Check for memory */
-if (function_exists("memory_get_usage")) {
-  if (memory_get_usage() > (to_byte(ini_get('memory_limit')) - 2048000 )) {
-    msg_dialog::display(_("Configuration error"), _("Running out of memory!"), WARNING_DIALOG);
-  }
-}
-
-/* Redirect on back event */
-if ($_SERVER["REQUEST_METHOD"] == "POST") {
-
-  /* Look for button events that match /^back[0-9]+$/,
-     extract the number and step the correct plugin. */
-  foreach ($_POST as $key => $value) {
-    if (preg_match("/^back[0-9]+$/", $key)) {
-      $back = substr($key, 4);
-      header("Location: main.php?plug=$back");
-      exit;
-    }
-  }
-}
-
-/* Redirect on password back event */
-if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['password_back'])) {
-  header("Location: main.php");
-  exit;
-}
-
-/* Load department list when plugin has changed. That is some kind of
-   compromise between speed and beeing up to date */
-if (isset($_GET['reset'])) {
-  set_object_info();
+if (memory_get_usage() > (to_byte(ini_get('memory_limit')) - 2048000)) {
+  $warning = new FusionDirectoryWarning(htmlescape(_('Running out of memory!')));
+  $warning->display();
 }
 
 /* show web frontend */
@@ -238,9 +186,8 @@ $smarty->assign("date", date("l, dS F Y H:i:s O"));
 $lang = session::get('lang');
 $smarty->assign('lang',  preg_replace('/_.*$/', '', $lang));
 $smarty->assign('rtl',   Language::isRTL($lang));
-$smarty->assign('must',  '<span class="must">*</span>');
-if (isset($plug)) {
-  $plug = "?plug=$plug";
+if (isset($plugin_index)) {
+  $plug = "?plug=$plugin_index";
 } else {
   $plug = "";
 }
@@ -256,40 +203,32 @@ $smarty->assign("plug", "$plug");
 $smarty->assign("usePrototype", "false");
 
 /* React on clicks */
-if ($_SERVER["REQUEST_METHOD"] == "POST") {
-  if (isset($_POST['delete_lock']) || isset($_POST['open_readonly'])) {
+if (($_SERVER['REQUEST_METHOD'] == 'POST')
+  && (isset($_POST['delete_lock']) || isset($_POST['open_readonly']))) {
 
-    /* Set old Post data */
-    if (session::is_set('LOCK_VARS_USED_GET')) {
-      foreach (session::get('LOCK_VARS_USED_GET') as $name => $value) {
-        $_GET[$name]  = $value;
-      }
+  /* Set old Post data */
+  if (session::is_set('LOCK_VARS_USED_GET')) {
+    foreach (session::get('LOCK_VARS_USED_GET') as $name => $value) {
+      $_GET[$name]  = $value;
     }
-    if (session::is_set('LOCK_VARS_USED_POST')) {
-      foreach (session::get('LOCK_VARS_USED_POST') as $name => $value) {
-        $_POST[$name] = $value;
-      }
+  }
+  if (session::is_set('LOCK_VARS_USED_POST')) {
+    foreach (session::get('LOCK_VARS_USED_POST') as $name => $value) {
+      $_POST[$name] = $value;
     }
-    if (session::is_set('LOCK_VARS_USED_REQUEST')) {
-      foreach (session::get('LOCK_VARS_USED_REQUEST') as $name => $value) {
-        $_REQUEST[$name] = $value;
-      }
+  }
+  if (session::is_set('LOCK_VARS_USED_REQUEST')) {
+    foreach (session::get('LOCK_VARS_USED_REQUEST') as $name => $value) {
+      $_REQUEST[$name] = $value;
     }
   }
 }
 
 /* Load plugin */
-if (is_file("$plugin_dir/main.inc")) {
-  $display = "";
-  require ("$plugin_dir/main.inc");
-} else {
-  msg_dialog::display(
-      _("Plugin"),
-      sprintf(_("Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not a file)!"), $plug, "$plugin_dir/main.inc"),
-      FATAL_ERROR_DIALOG);
-  exit();
-}
-
+pluglist::runMainInc($plugin_index);
+/**
+ * @var string $display Filled by pluglist::runMainInc
+ */
 
 /* Print_out last ErrorMessage repeated string. */
 $smarty->assign("msg_dialogs", msg_dialog::get_dialogs());
@@ -297,35 +236,20 @@ $smarty->assign("contents", $display);
 $smarty->assign("sessionLifetime", $config->get_cfg_value("sessionLifetime", 60 * 60 * 2));
 
 /* If there's some post, take a look if everything is there... */
-if (isset($_POST) && count($_POST)) {
-  if (!isset($_POST['php_c_check'])) {
-    msg_dialog::display(
-            _("Configuration Error"),
-            sprintf(_("Fatal error: not all POST variables have been transfered by PHP - please inform your administrator!")),
-            FATAL_ERROR_DIALOG);
-    exit();
-  }
+if (count($_POST) && !isset($_POST['php_c_check'])) {
+  throw new FatalError(
+    htmlescape(_('Fatal error: not all POST variables have been transfered by PHP - please inform your administrator!'))
+  );
 }
 
 /* Assign errors to smarty */
-if (session::is_set('errors')) {
-  $smarty->assign("errors", session::get('errors'));
-}
 if ($error_collector != "") {
   $smarty->assign("php_errors", preg_replace("/%BUGBODY%/", $error_collector_mailto, $error_collector)."</div>");
 } else {
   $smarty->assign("php_errors", "");
 }
 
-/* Set focus to the error button if we've an error message */
-$focus = "";
-if (session::is_set('errors') && session::get('errors') != "") {
-  $focus = '<script type="text/javascript">';
-  $focus .= 'document.forms[0].error_accept.focus();';
-  $focus .= '</script>';
-}
-
-$focus = '<script type="text/javascript">';
+$focus = '<script>';
 $focus .= 'next_msg_dialog();';
 $focus .= '</script>';
 $smarty->assign('focus',      $focus);
@@ -346,4 +270,4 @@ echo $display;
 /* Save plist and config */
 session::set('plist', $plist);
 session::set('config', $config);
-session::set('errorsAlreadyPosted', []);
+reset_errors();
diff --git a/html/plugins/users/style/user_tab.css b/html/plugins/users/style/user_tab.css
index 4687b0f160b3fbd67abf176d4ba1250249ce7296..0745fbd870bb1bdbb7ecc542f3ed9ea7c4603366 100644
--- a/html/plugins/users/style/user_tab.css
+++ b/html/plugins/users/style/user_tab.css
@@ -6,6 +6,7 @@
   top: 32px;
   box-sizing: border-box;
   max-height: 80%;
+  max-width: 155px;
   }
 
   .plugin-section#perso > div > table {
diff --git a/html/progress.php b/html/progress.php
index e86554bdde45bd99a3d7479cbf3032cfafeb6f99..38e193e44e100c85028e1830744ea23d4c781a6b 100644
--- a/html/progress.php
+++ b/html/progress.php
@@ -3,7 +3,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -55,7 +55,6 @@ if (!function_exists("imagecreate")) {
   echo "Please install the php5-gd library, FusionDirectory can't create images without it.";
   exit();
 } else {
-
   $x_matches = FALSE;
   $y_matches = FALSE;
   foreach ([7,6,5,4,3,2,1,0] as $font) {
@@ -75,7 +74,7 @@ if (!function_exists("imagecreate")) {
   }
 
   /* Draw image in GD image stream */
-  $im = imagecreat($x, $y);
+  $im = imagecreate($x, $y);
   if (!$im) {
     die('Cannot Initialize new GD image stream');
   }
@@ -88,8 +87,7 @@ if (!function_exists("imagecreate")) {
 
   /* Draw progress bar */
   imagerectangle($im, 0, 0, $x - 1, $y - 1, $br_color);
-  imagefilledrectangle($im, 1, 1, (($x - 2) * $p / 100),
-      $y - 2, $fi_color);
+  imagefilledrectangle($im, 1, 1, (($x - 2) * $p / 100), $y - 2, $fi_color);
 
   /* Is font to big for progress bar? */
   if ($font != 0) {
@@ -101,4 +99,3 @@ if (!function_exists("imagecreate")) {
   imagepng($im);
   imagedestroy($im);
 }
-?>
diff --git a/html/recovery.php b/html/recovery.php
index 77e3b619024ed295f24723bae0273eca39c623d3..0dd3ec50eec3310c21eb43ac93496fdfc495263d 100644
--- a/html/recovery.php
+++ b/html/recovery.php
@@ -18,14 +18,8 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-require_once("../include/php_setup.inc");
-require_once("functions.inc");
-require_once("variables.inc");
+require_once('../include/php_setup.inc');
+require_once('functions.inc');
+require_once('variables.inc');
 
-$pwRecovery = new passwordRecovery();
-
-$pwRecovery->execute();
-
-$pwRecovery->displayPWchanger();
-
-?>
+passwordRecovery::run();
diff --git a/html/secondfactor.php b/html/secondfactor.php
new file mode 100644
index 0000000000000000000000000000000000000000..8d70273c595b69f7a1e152de1dc72d9f654d269e
--- /dev/null
+++ b/html/secondfactor.php
@@ -0,0 +1,111 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/**
+ * @var Smarty $smarty                  Defined in php_setup.inc
+ * @var string $BASE_DIR                Defined in php_setup.inc
+ * @var string $ssl                     Defined in php_setup.inc
+ * @var string $error_collector         Defined in php_setup.inc
+ * @var string $error_collector_mailto  Defined in php_setup.inc
+ */
+
+/* Basic setup, remove eventually registered sessions */
+require_once("../include/php_setup.inc");
+require_once("functions.inc");
+require_once("variables.inc");
+
+/* Set headers */
+header('Content-type: text/html; charset=UTF-8');
+header('X-XSS-Protection: 1; mode=block');
+header('X-Content-Type-Options: nosniff');
+header('X-Frame-Options: deny');
+
+/* Set the text domain as 'fusiondirectory' */
+$domain = 'fusiondirectory';
+bindtextdomain($domain, LOCALE_DIR);
+textdomain($domain);
+
+/* Remember everything we did after the last click */
+session::start();
+session::set('DEBUGLEVEL', 0);
+reset_errors();
+
+/* Force SSL for second factor */
+if ($ssl != '') {
+  header("Location: $ssl");
+  exit;
+}
+
+CSRFProtection::check();
+
+/* Logged in? Redirect to FD */
+if (session::is_set('connected')) {
+  header('Location: main.php');
+  exit;
+}
+
+/* Missing data? Redirect to login */
+if (!session::is_set('ui') || !session::is_set('config')) {
+  header('Location: index.php');
+  exit;
+}
+
+$ui     = session::get('ui');
+$config = session::get('config');
+
+timezone::setDefaultTimezoneFromConfig();
+
+/* Check for invalid sessions */
+if (session::get('_LAST_PAGE_REQUEST') != '') {
+  /* check FusionDirectory.conf for defined session lifetime */
+  $max_life = $config->get_cfg_value('sessionLifetime', 60 * 60 * 2);
+
+  if ($max_life > 0) {
+    /* get time difference between last page reload */
+    $request_time = (time() - session::get('_LAST_PAGE_REQUEST'));
+
+    /* If page wasn't reloaded for more than max_life seconds
+     * kill session
+     */
+    if ($request_time > $max_life) {
+      session::destroy('main.php called with expired session');
+      header('Location: index.php?signout=1&message=expired');
+      exit;
+    }
+  }
+}
+session::set('_LAST_PAGE_REQUEST', time());
+
+foreach (LoginPost::$secondFactorMethods as $secondFactorMethod) {
+  if (!class_available($secondFactorMethod)) {
+    continue;
+  }
+  $secondFactorMethod::earlyProcess();
+}
+
+session::set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
+
+/* Set template compile directory */
+$smarty->setCompileDir($config->get_cfg_value('templateCompileDirectory', SPOOL_DIR));
+
+Language::init();
+
+LoginPost::displaySecondFactorPage();
diff --git a/html/setup.php b/html/setup.php
index 4569caba6b079ddf0ff8c947515278b27d109d56..305a076c617969af38e4de55947f5f5c544a1094 100644
--- a/html/setup.php
+++ b/html/setup.php
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -20,8 +20,8 @@
 */
 
 /* Get standard functions */
-require_once ("../include/php_setup.inc");
-require_once ("functions.inc");
+require_once("../include/php_setup.inc");
+require_once("functions.inc");
 require_once("variables.inc");
 
 require_once("../setup/class_setup.inc");
@@ -41,6 +41,14 @@ header('X-XSS-Protection: 1; mode=block');
 header('X-Content-Type-Options: nosniff');
 header('X-Frame-Options: deny');
 
+/**
+ * @var Smarty $smarty                  Defined in php_setup.inc
+ * @var string $BASE_DIR                Defined in php_setup.inc
+ * @var string $ssl                     Defined in php_setup.inc
+ * @var string $error_collector         Defined in php_setup.inc
+ * @var string $error_collector_mailto  Defined in php_setup.inc
+ */
+
 /* Set cookie lifetime to one day (The parameter is in seconds ) */
 session_set_cookie_params(24 * 60 * 60);
 // default cache_expire is 180
@@ -50,7 +58,6 @@ ini_set("session.gc_maxlifetime", 24 * 60 * 60);
 /* Start session */
 session::start();
 session::set('DEBUGLEVEL', 0);
-session::set('errorsAlreadyPosted', []);
 
 CSRFProtection::check();
 
@@ -58,13 +65,16 @@ CSRFProtection::check();
 reset_errors();
 
 /* Set template compile directory */
-$smarty->compile_dir = SPOOL_DIR;
+$smarty->setCompileDir(SPOOL_DIR);
 
 /* Check for compile directory */
-if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))) {
-  msg_dialog::display(_("Smarty"), sprintf(_("Directory '%s' specified as compile directory is not accessible!"),
-    $smarty->compile_dir), FATAL_ERROR_DIALOG);
-  exit();
+if (!(is_dir($smarty->getCompileDir()) && is_writable($smarty->getCompileDir()))) {
+  throw new FatalError(
+    htmlescape(sprintf(
+      _('Directory "%s" specified as compile directory is not accessible!'),
+      $smarty->getCompileDir()
+    ))
+  );
 }
 
 /* Get posted language */
@@ -88,8 +98,8 @@ if (isset($_POST['lang_selected']) && $_POST['lang_selected'] != '') {
 
 Language::init($lang);
 
-$smarty->assign("rtl",  Language::isRTL($lang));
-$smarty->assign("must", '<span class="must">*</span>');
+$smarty->assign('lang', preg_replace('/_.*$/', '', $lang));
+$smarty->assign('rtl',  Language::isRTL($lang));
 
 /* Minimal config */
 if (!session::is_set('config')) {
@@ -99,12 +109,14 @@ if (!session::is_set('config')) {
 $config = session::get('config');
 IconTheme::loadThemes('themes');
 /* Fake user bypassing acl system */
-$ui = new fake_userinfo();
+$ui = new userinfoNoAuth('setup');
 /* Call setup */
-$display = "";
-require_once("../setup/main.inc");
+setup::mainInc();
+/**
+ * @var string $display filled by setup::mainInc
+ */
 
-$focus = '<script type="text/javascript">';
+$focus = '<script>';
 $focus .= 'next_msg_dialog();';
 $focus .= '</script>';
 
@@ -131,5 +143,3 @@ if ($error_collector != "") {
 $smarty->assign("version", FD_VERSION);
 
 echo $header.$smarty->fetch("$BASE_DIR/setup/setup_frame.tpl");
-
-?>
diff --git a/html/themes/breezy/datepicker.css b/html/themes/breezy/datepicker.css
deleted file mode 100644
index 09d97c1a9130cc58e84aa67e083c3b2a438c9db7..0000000000000000000000000000000000000000
--- a/html/themes/breezy/datepicker.css
+++ /dev/null
@@ -1,179 +0,0 @@
-div.datepicker {
-position: absolute;
-text-align: center;
-border: 1px #aaa solid;
-font-family: arial;
-background: #fcfcfc;
-font-size: 10px;
-padding: 0;
-}
-
-.datepicker-calendar table {
-font-size: 10px;
-border: 1px solid #fcfcfc;
-margin: 0;
-padding: 0;
-text-align: center;
-}
-
-div.datepicker .datepicker-header {
-font-size: 11px;
-font-weight: bold;
-background: #f0f0f0;
-border-bottom: 1px solid #aaa;
-padding: 2px;
-text-align: center;
-}
-
-div.datepicker .datepicker-header table.header {
-width: 175px;
-border: 0;
-padding: 0;
-text-align: center;
-border-spacing: 0;
-border-collapse: collapse;
-}
-
-td.prev,td.prev-year,td.next,td.next-year {
-width: 8%;
-cursor: pointer;
-font-weight: bold;
-line-height: 16px;
-}
-
-td.prev:hover,td.prev-year:hover,td.next:hover,td.next-year:hover {
-background-color: #d0d0d0;
-}
-
-td.header {
-text-align: center;
-width: 68%;
-font-weight: bold;
-line-height: 16px;
-}
-
-.datepicker-header {
-height: 16px;
-}
-
-.datepicker-calendar table tbody tr {
-border: 1px solid #fcfcfc;
-margin: 0;
-padding: 0;
-}
-
-.datepicker-calendar table tbody tr td {
-box-sizing: content-box;
-border: 1px #eaeaea solid;
-margin: 0;
-padding: 0;
-text-align: center;
-height: 16px;
-line-height: 16px;
-width: 21px;
-cursor: pointer;
-}
-
-.datepicker-calendar table tbody tr td:hover,
-.datepicker-calendar table tbody tr td.outbound:hover,
-.datepicker-calendar table tbody tr td.today:hover {
-border: 1px #cce9ff solid;
-background: #e9f5ff;
-cursor: pointer;
-}
-
-.datepicker-calendar table tbody tr td.wday {
-box-sizing: content-box;
-border: 1px #aaa solid;
-background: #ccc;
-cursor: text;
-width: 21px;
-height: 16px;
-line-height: 16px;
-font-weight: bold;
-}
-
-.datepicker-calendar table tbody tr td.outbound {
-background: #f4f3f3;
-}
-
-.datepicker-calendar table tbody tr td.today,
-.datepicker-calendar table tbody tr td.today:hover {
-box-sizing: content-box;
-border: 1px #cce9ff solid;
-background: #e9f5ff;
-background-image: url(../../images/date_active.png);
-background-repeat: no-repeat;
-width: 21px;
-height: 16px;
-line-height: 16px;
-}
-
-.datepicker-calendar table tbody tr td.nclick,
-.datepicker-calendar table tbody tr td.nclick-outbound {
-cursor: default;
-color: #aaa;
-width: 21px;
-height: 16px;
-line-height: 16px;
-}
-
-.datepicker-calendar table tbody tr td.nclick-outbound {
-background: #e8e4e4;
-width: 21px;
-height: 16px;
-line-height: 16px;
-}
-
-.datepicker-calendar table tbody tr td.nclick:hover,
-.datepicker-calendar table tbody tr td.nclick-outbound:hover {
-border: 1px #eaeaea solid;
-background: #fcfcfc;
-}
-
-.datepicker-calendar table tbody tr td.nclick-outbound:hover {
-background: #e8e4e4;
-}
-
-div.datepicker div.datepicker-footer {
-font-size: 10px;
-background: #f0f0f0;
-border-top: 1px solid #aaa;
-cursor: pointer;
-text-align: center;
-padding: 2px;
-}
-
-.date {
-float: left;
-text-align: center;
-width: 90px;
-}
-html.rtl .date {
-float: right;
-}
-
-.datepicker-opener-table {
-box-sizing: border-box;
-border: 1px solid transparent;
-padding: 0;
-border-spacing: 0;
-margin: 0 0 0 93px;
-background: transparent url(../../geticon.php?context=applications&icon=office-calendar&size=16) no-repeat 0 0;
-width: 20px;
-height: 20px;
-cursor: pointer;
-}
-html.rtl .datepicker-opener-table {
-margin: 0 93px 0 0;
-}
-
-.datepicker-opener {
-width: 16px;
-height: 16px;
-margin: 0 0 0 3px;
-cursor: pointer;
-}
-html.rtl .datepicker-opener {
-margin: 0 3px 0 0;
-}
diff --git a/html/themes/breezy/dialog.css b/html/themes/breezy/dialog.css
index 38847827c0f54c2bcd360cf66c971eea27f208df..5950fbe392f05b743f09b2b405b8cf46b62f5155 100644
--- a/html/themes/breezy/dialog.css
+++ b/html/themes/breezy/dialog.css
@@ -1,35 +1,142 @@
+div.msgbackground {
+  position: fixed;
+  left: 0px;
+  top: 0px;
+  right: 0px;
+  bottom: 0px;
+  z-index: 100;
+  overflow: hidden;
+  background-image: url(../../images/opacity_black.png);
+}
+div.msgtrace {
+  position: absolute;
+  left: 0px;
+  top: 0px;
+  right: 0px;
+  bottom: 0px;
+  overflow-y: auto;
+}
 div.msgtitle {
-width: auto;
-background-color: #f0f0f0;
-border: solid 1px #bbbbbb;
-margin-bottom: 7px;
+  width: auto;
+  text-align: center;
+  border-bottom: 1px solid #c0c2c3;
+  padding: 8px;
+  background-color: #eff0f1;
+  min-height: 30px;
+}
+div.msgtitle > img {
+  float: left;
+  height: 30px;
 }
-div.msgtitle h2 {
-margin: 10px;
+div.msgtitle > p {
+  margin: 0;
+  padding: 0;
+  font-size: 18px;
 }
-
 div.msgdialog {
-width: 60%;
-z-index: 150;
-position: relative;
-display: none;
-margin: auto;
-top: 200px;
+  width: 60%;
+  z-index: 150;
+  position: relative;
+  display: none;
+  margin: auto;
+  padding: 0;
+  top: 200px;
+  border: 1px solid #c0c2c3;
+  background-color: #f3f4f4;
+}
+div.msgdialog div.msgcontent {
+  width: 100%;
+  z-index: 250;
+}
+div.msgdialog div.msgcontent p {
+  font-size: 14px;
+  padding: 10px;
+}
+div.msgdialog .description {
+  font-style: italic;
 }
 @media (max-height: 600px) {
   div.msgdialog {
     top: auto;
   }
 }
-
-div.msgdialog .description {
-font-style: italic;
-}
-
-/* Small screens (i.e. phones) */
 @media (max-width: 640px) {
   div.msgdialog {
+    /* Small screens (i.e. phones) */
     top: auto;
     width: auto;
   }
 }
+div.msgfooter {
+  width: auto;
+  padding: 1%;
+}
+@media (max-width: 640px) {
+  div.msgfooter {
+    padding: 5px;
+    text-align: center !important;
+  }
+  div.msgfooter.plugbottom > input[type=submit] {
+    width: 100% !important;
+  }
+}
+.error,
+.notice,
+.success,
+.info {
+  border: 2px solid #c0c2c3;
+  margin: .2em;
+  padding: .3em;
+}
+.error {
+  background: #fbe3e4;
+  color: #8a1f11;
+  border-color: #fbc2c4;
+}
+.error h1,
+.error h2,
+.error h3,
+.error h4,
+.error h5,
+.error h6 {
+  color: #8a3700;
+}
+.notice {
+  background: #fff6bf;
+  color: #514721;
+  border-color: #ffd324;
+}
+.notice h1,
+.notice h2,
+.notice h3,
+.notice h4,
+.notice h5,
+.notice h6 {
+  color: #412701;
+}
+.success {
+  background: #f3f4f4;
+  color: #264409;
+  border-color: #f3f4f4;
+}
+.success h1,
+.success h2,
+.success h3,
+.success h4,
+.success h5,
+.success h6 {
+  color: #378a00;
+}
+.info {
+  background: #d5edf8;
+  color: #205791;
+  border-color: #92cae4;
+}
+.info h1,
+.info h2,
+.info h3,
+.info h4,
+.info h5,
+.info h6 {
+  color: #31363b;
+}
diff --git a/html/themes/breezy/form.css b/html/themes/breezy/form.css
index ffd1c8f2b5c2a0830ce33313b7cf623745c3af41..b5971827135e77f570154e8737b2928fe370cfa8 100644
--- a/html/themes/breezy/form.css
+++ b/html/themes/breezy/form.css
@@ -1,31 +1,46 @@
-input, input:focus, select, textarea, textarea:focus {
-font-size: 12px;
+input,
+input:focus,
+select,
+textarea,
+textarea:focus {
+  font-size: 12px;
 }
-
-input[type=text], input[type=password], select {
-padding: 2px;
+input[type=color],
+input[type=date],
+input[type=datetime-local],
+input[type=email],
+input[type=number],
+input[type=password],
+input[type=search],
+input[type=tel],
+input[type=text],
+input[type=time],
+input[type=url],
+select {
+  padding: 2px;
 }
-
 input[type=number] {
-width: 80px;
+  width: 80px;
 }
-
-input[disabled] {
-color: #888;
-background-color: #ddd;
-}
-
-textarea[disabled], select[disabled] {
-color: #31363b;
-background-color: #ddd;
-}
-
 /* On small screens */
 @media (max-width: 640px) {
-  input[type=text], input[type=password], input[type=file], textarea, select {
-  max-width: 100%;
+  input[type=color],
+  input[type=date],
+  input[type=datetime-local],
+  input[type=email],
+  input[type=number],
+  input[type=password],
+  input[type=search],
+  input[type=tel],
+  input[type=text],
+  input[type=time],
+  input[type=url],
+  input[type=file],
+  textarea,
+  select {
+    max-width: 100%;
   }
   input.base-selector {
-  max-width: 100px;
+    max-width: 100px;
   }
 }
diff --git a/html/themes/breezy/icons/16/apps/mail-template.png b/html/themes/breezy/icons/16/apps/mail-template.png
new file mode 100644
index 0000000000000000000000000000000000000000..1138d87a90b557d8da0b887c72b6221bf8e4dd4d
Binary files /dev/null and b/html/themes/breezy/icons/16/apps/mail-template.png differ
diff --git a/html/themes/breezy/icons/16/apps/tasks-dashboard.png b/html/themes/breezy/icons/16/apps/tasks-dashboard.png
new file mode 100644
index 0000000000000000000000000000000000000000..927c8982c402f86f36227e13f1a395ad1b8c0b05
Binary files /dev/null and b/html/themes/breezy/icons/16/apps/tasks-dashboard.png differ
diff --git a/html/themes/breezy/icons/16/apps/tasks.png b/html/themes/breezy/icons/16/apps/tasks.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d62bc3374ce2cd5c2e9eba52e7512b3c73f0582
Binary files /dev/null and b/html/themes/breezy/icons/16/apps/tasks.png differ
diff --git a/html/themes/breezy/icons/16/mimetypes/application-x-archive.png b/html/themes/breezy/icons/16/mimetypes/application-x-archive.png
new file mode 100644
index 0000000000000000000000000000000000000000..8e5c2394c12211a7ffd10938a82f9e3630d9022f
Binary files /dev/null and b/html/themes/breezy/icons/16/mimetypes/application-x-archive.png differ
diff --git a/html/themes/breezy/icons/48/apps/mail-template.png b/html/themes/breezy/icons/48/apps/mail-template.png
new file mode 100644
index 0000000000000000000000000000000000000000..39406c71b48a590d17f900d938af57f8f437a947
Binary files /dev/null and b/html/themes/breezy/icons/48/apps/mail-template.png differ
diff --git a/html/themes/breezy/icons/48/apps/tasks-dashboard.png b/html/themes/breezy/icons/48/apps/tasks-dashboard.png
new file mode 100644
index 0000000000000000000000000000000000000000..b222757a9fd4e5fbeb1894fa2fc57992aff1b3d3
Binary files /dev/null and b/html/themes/breezy/icons/48/apps/tasks-dashboard.png differ
diff --git a/html/themes/breezy/icons/48/apps/tasks.png b/html/themes/breezy/icons/48/apps/tasks.png
new file mode 100644
index 0000000000000000000000000000000000000000..41d0b9c912301e3be30841c90f834c24e10fc6eb
Binary files /dev/null and b/html/themes/breezy/icons/48/apps/tasks.png differ
diff --git a/html/themes/breezy/icons/48/mimetypes/application-x-archive.png b/html/themes/breezy/icons/48/mimetypes/application-x-archive.png
new file mode 100644
index 0000000000000000000000000000000000000000..367aeebf97d834cb8554726de8e1c6fbd81cf4f7
Binary files /dev/null and b/html/themes/breezy/icons/48/mimetypes/application-x-archive.png differ
diff --git a/html/themes/breezy/less/colors.less b/html/themes/breezy/less/colors.less
new file mode 100644
index 0000000000000000000000000000000000000000..0908a22246834ce76f2d5d4ee9efeaf12d0c881a
--- /dev/null
+++ b/html/themes/breezy/less/colors.less
@@ -0,0 +1,67 @@
+@background-color: #eff0f1;
+@background-dark-color: #e5e5e5;
+@background-focus-color: #fcfcfc;
+@background-header-color: #f0f0f0;
+@background-second-color: #f3f4f4;
+
+@border-color-1: #c0c2c3;
+
+@warning-red-color: #d00;
+
+@text-color: #31363b;
+@text-color-light: #444;
+@text-color-mark: @warning-red-color;
+@title-color: #31363b;
+@link-color: #2980b9;
+// Used in setup only
+@title-color-disabled: #c0c2c3;
+
+@line-color-1: @background-focus-color;
+@line-color-2: #f5f5f5;
+@line-color-1-locked: #ffc;
+@line-color-2-locked: #f5f5cc;
+@line-hover-color: #ddd;
+@line-hover-color-locked: #dda;
+
+@menu-hover-color: #d5eaf7;
+@menu-selected-color: #3daee9;
+
+@error-background-color: #fbe3e4;
+@error-border-color: #fbc2c4;
+@error-text-color: #8a1f11;
+@error-title-color: #8a3700;
+
+@notice-background-color: #fff6bf;
+@notice-border-color: #ffd324;
+@notice-text-color: #514721;
+@notice-title-color: #412701;
+
+@success-background-color: @background-second-color;
+@success-border-color: @background-second-color;
+@success-text-color: #264409;
+@success-title-color: #378a00;
+
+@info-background-color: #d5edf8;
+@info-border-color: #92cae4;
+@info-text-color: #205791;
+@info-title-color: @title-color;
+
+@critical-section-legend-background-color: #bcf;
+@critical-section-background-color: #dfefff;
+@critical-section-warning-color: @warning-red-color;
+
+@tab-background-color: #d0d0d0;
+@tab-border-color: #999;
+@tab-active-background-color: #f8f8f8;
+@tab-title-color-disabled: grey;
+
+@font-family: arial,helvetica,sans-serif;
+@body-font-size: 12px;
+@small-text-font-size: 10px;
+@text-font-size: 12px;
+@big-text-font-size: 14px;
+@title-font-size: 13px;
+@big-title-font-size: 14px;
+@header-title-font-size: 18px;
+@pluginfo-font-size: 12px;
+@titlebar-font-size: 24px;
diff --git a/html/themes/breezy/less/dialog.less b/html/themes/breezy/less/dialog.less
new file mode 100644
index 0000000000000000000000000000000000000000..368d958096ed44be8dd57dc9d00ff312b3db5d94
--- /dev/null
+++ b/html/themes/breezy/less/dialog.less
@@ -0,0 +1,122 @@
+@import "colors";
+
+div.msgbackground {
+  position: fixed;
+  left: 0px;
+  top: 0px;
+  right: 0px;
+  bottom: 0px;
+  z-index: 100;
+  overflow: hidden;
+  background-image: url(../../images/opacity_black.png);
+}
+
+div.msgtrace {
+  position: absolute;
+  left: 0px;
+  top: 0px;
+  right: 0px;
+  bottom: 0px;
+  overflow-y: auto;
+}
+
+div.msgtitle {
+  width: auto;
+  text-align: center;
+  border-bottom: 1px solid @border-color-1;
+  padding: 8px;
+  background-color: @background-color;
+  min-height: 30px;
+  > img {
+    float: left;
+    height: 30px;
+  }
+  > p {
+    margin: 0;
+    padding: 0;
+    font-size: @header-title-font-size;
+  }
+}
+
+div.msgdialog {
+  div.msgcontent {
+    width: 100%;
+    z-index: 250;
+    p {
+      font-size: @big-text-font-size;
+      padding: 10px;
+    }
+  }
+  width: 60%;
+  z-index: 150;
+  position: relative;
+  display: none;
+  margin: auto;
+  padding: 0;
+  top: 200px;
+  border: 1px solid @border-color-1;
+  background-color: @background-second-color;
+  .description {
+    font-style: italic;
+  }
+
+  @media (max-height: 600px) {
+    top: auto;
+  }
+
+  @media (max-width: 640px) {
+    /* Small screens (i.e. phones) */
+    top: auto;
+    width: auto;
+  }
+}
+
+div.msgfooter {
+  width: auto;
+  padding: 1%;
+  @media (max-width: 640px) {
+    padding: 5px;
+    text-align: center !important;
+    &.plugbottom > input[type=submit] {
+      width: 100% !important;
+    }
+  }
+}
+
+.error, .notice, .success, .info {
+  border: 2px solid @border-color-1;
+  margin: .2em;
+  padding: .3em;
+}
+.error {
+  background: @error-background-color;
+  color: @error-text-color;
+  border-color: @error-border-color;
+  h1,h2,h3,h4,h5,h6 {
+    color: @error-title-color;
+  }
+}
+.notice {
+  background: @notice-background-color;
+  color: @notice-text-color;
+  border-color: @notice-border-color;
+  h1,h2,h3,h4,h5,h6 {
+    color: @notice-title-color;
+  }
+}
+.success {
+  background: @success-background-color;
+  color: @success-text-color;
+  border-color: @success-border-color;
+  h1,h2,h3,h4,h5,h6 {
+    color: @success-title-color;
+  }
+}
+.info {
+  background: @info-background-color;
+  color: @info-text-color;
+  border-color: @info-border-color;
+  h1,h2,h3,h4,h5,h6 {
+    color: @info-title-color;
+  }
+}
diff --git a/html/themes/breezy/less/form.less b/html/themes/breezy/less/form.less
new file mode 100644
index 0000000000000000000000000000000000000000..912f98f41415aacb80a9352be7bfd62db6ea0f38
--- /dev/null
+++ b/html/themes/breezy/less/form.less
@@ -0,0 +1,25 @@
+@import "colors";
+
+input, input:focus, select, textarea, textarea:focus {
+  font-size: @text-font-size;
+}
+
+
+input[type=color], input[type=date], input[type=datetime-local], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], select {
+  padding: 2px;
+}
+
+input[type=number] {
+  width: 80px;
+}
+
+/* On small screens */
+@media (max-width: 640px) {
+  input[type=color], input[type=date], input[type=datetime-local], input[type=email], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url],
+  input[type=file], textarea, select {
+    max-width: 100%;
+  }
+  input.base-selector {
+    max-width: 100px;
+  }
+}
diff --git a/html/themes/breezy/less/lists.less b/html/themes/breezy/less/lists.less
new file mode 100644
index 0000000000000000000000000000000000000000..d08bb63e6db09f8e76e155cfa0521fc9282b56b5
--- /dev/null
+++ b/html/themes/breezy/less/lists.less
@@ -0,0 +1,294 @@
+@import "colors";
+
+/********************************
+ *           L i s t s          *
+ ********************************/
+
+table.listingTable {
+  border-top: 1px solid @border-color-1;
+  border-bottom: 1px solid @border-color-1;
+  border-left: 1px solid @border-color-1;
+  border-spacing: 0;
+  thead tr {
+    position: relative;
+    height: auto;
+    margin: 3px;
+    padding: 1px;
+    white-space: nowrap;
+  }
+  > thead > tr > th {
+    box-sizing: content-box;
+    background: @background-header-color;
+    font-weight: bold;
+    border-bottom: 1px solid @border-color-1;
+    padding: 3px;
+    height: 22px;
+    html.ltr & {
+      border-right: 1px solid @border-color-1;
+    }
+    html.rtl & {
+      border-left: 1px solid @border-color-1;
+    }
+    &.descend:after {
+      /* Up arrow */
+      content: "\25B2";
+    }
+    &.ascend:after {
+      /* Down arrow */
+      content: "\25BC";
+    }
+  }
+  > tbody {
+    height: 100%;
+    overflow-x: hidden;
+    overflow-y: auto;
+    > tr {
+      height: auto;
+      white-space: nowrap;
+      &:nth-child(odd) {
+        background-color: @line-color-1;
+      }
+      &:nth-child(even) {
+        background-color: @line-color-2;
+      }
+      &.entry-locked:nth-child(odd) {
+        background-color: @line-color-1-locked;
+      }
+      &.entry-locked:nth-child(even) {
+        background-color: @line-color-2-locked;
+      }
+      td:last-child {
+        html.ltr & {
+          padding-right: 5px;
+        }
+        html.rtl & {
+          padding-left: 5px;
+        }
+      }
+      &:hover {
+        background-color: @line-hover-color;
+      }
+      &.entry-locked:hover {
+        background-color: @line-hover-color-locked;
+      }
+      td {
+        color: @text-color;
+        margin: 3px;
+        padding: 2px;
+        word-wrap: break-word;
+        white-space: normal;
+        max-width: 500px;
+        background: transparent;
+        height: 22px;
+        html.ltr & {
+          border-right: 1px solid @border-color-1;
+        }
+        html.rtl & {
+          border-left: 1px solid @border-color-1;
+        }
+        > input[type=image],
+        > img {
+          padding: 2px;
+        }
+        > a:link ,
+        > a:visited {
+          text-decoration: none;
+          color: @link-color;
+        }
+      }
+    }
+  }
+}
+
+/* List border */
+
+div.nlistFooter {
+  background-color: @background-dark-color;
+  border-left: 1px solid silver;
+  border-right: 1px solid silver;
+  border-bottom: 1px solid silver;
+  padding: 3px;
+  width: auto;
+  img {
+    vertical-align:middle;
+  }
+}
+
+/* Tree List (used in baseSelector) */
+
+ul.treeList,ul.treeList ul {
+  list-style-type: none;
+  background: url(../../images/lists/vline.png) repeat-y;
+  margin: 0;
+  padding: 0;
+}
+ul.treeList ul {
+  html.ltr & {
+    margin-left: 10px;
+  }
+  html.rtl & {
+    margin-right: 10px;
+  }
+}
+
+ul.treeList a:hover {
+  background-color: @line-hover-color;
+}
+
+a.treeList {
+  padding: 2px;
+  cursor: pointer;
+}
+
+a.treeListSelected {
+  font-weight: bold;
+  color: @link-color;
+  background-color: @line-hover-color;
+  padding: 2px;
+  cursor: pointer;
+}
+
+a.treeList:hover,a.treeListSelected:hover {
+  background-color: @line-hover-color;
+  padding: 2px;
+}
+
+ul.treeList a {
+  padding: 2px;
+  cursor: pointer;
+}
+
+ul.treeList li {
+  margin: 0;
+  padding: 0 12px;
+  line-height: 20px;
+  background: url(../../images/lists/node.png) no-repeat;
+}
+
+li.treeListSelected a {
+  font-weight: bold;
+  color: @link-color;
+  padding: 2px;
+}
+
+ul.treeList li.last,
+ul.treeList li:last-child {
+  background: @background-focus-color url(../../images/lists/lastnode.png) no-repeat;
+}
+
+div.treeList {
+  background-color: @background-focus-color;
+  border: 1px solid @border-color-1;
+  padding: 5px;
+  position: absolute;
+  z-index: 500;
+  overflow-y: auto;
+  html.ltr & {
+    float: left;
+  }
+  html.rtl & {
+    float: right;
+  }
+}
+
+table.listing-container {
+  width: 100%;
+  height: 100%;
+  vertical-align: top;
+  border: none;
+  border-spacing: 2px;
+  html.ltr & {
+    text-align: left;
+  }
+  html.rtl & {
+    text-align: right;
+  }
+  > tbody > tr {
+    > td.list {
+      height: 100%;
+      vertical-align: top;
+    }
+    > td.filter {
+      max-width: 300px;
+      vertical-align: top;
+      .contentboxb {
+        min-width: 230px;
+      }
+    }
+  }
+}
+
+/* Management */
+table.listingTable.management {
+  width:100%;
+  > thead > tr > th.checkbox {
+    text-align:center;
+    padding:0;
+    width:24px;
+  }
+  > tbody > tr > td.filler {
+    height:100%;
+    width:100%;
+  }
+}
+
+table.listingTable > thead > tr > th > img,
+table.listingTable > thead > tr > th > input[type=image],
+table.listingTable > tbody > tr > td > img,
+table.listingTable > tbody > tr > td > input[type=image] {
+  vertical-align: middle;
+}
+
+/* On small screens */
+@media (max-width: 640px) {
+  table.listingTable {
+  table-layout: auto;
+  }
+  table.listingTable > tbody > tr > td, table.listingTable > thead > tr > th {
+  width: auto !important;
+  min-width: 0 !important;
+  }
+  html.ltr table.listingTable > tbody > tr td:last-child {
+  padding-right: 1px;
+  }
+  html.rtl table.listingTable > tbody > tr td:last-child {
+  padding-left: 1px;
+  }
+  table.listing-container {
+  border: none;
+  border-spacing: 0;
+  border-collapse: collapse;
+  }
+  table.listing-container > tbody > tr > td.list, table.listing-container > tbody >  tr > td.filter {
+  width: 100%;
+  min-width: 0;
+  max-width: none;
+  height: auto;
+  display: block;
+  padding: 0;
+  }
+  table.listing-container > tbody > tr > td.list > div, table.listing-container > tbody >  tr > td.filter > div {
+  border: none;
+  }
+  table.listing-container > tbody > tr > td.list:after, table.listing-container > tbody >  tr > td.filter:after {
+  content: " ";
+  display: block;
+  }
+  table.listing-container > tbody >  tr > td.filter input[type=submit] {
+  border: 1px solid @border-color-1;
+  width: 100% !important;
+  padding: 10px;
+  display: inline-block;
+  font-weight: bold;
+  }
+  html.ltr table.listing-container > tbody >  tr > td.filter input[type=submit]:active {
+  position: relative;
+  top: 1px;
+  left: 1px;
+  }
+  html.rtl table.listing-container > tbody >  tr > td.filter input[type=submit]:active {
+  position: relative;
+  top: 1px;
+  right: 1px;
+  }
+}
diff --git a/html/themes/breezy/less/login.less b/html/themes/breezy/less/login.less
new file mode 100644
index 0000000000000000000000000000000000000000..cf592fedb2b2881a0a6bcd6d3dd22dc72f4de995
--- /dev/null
+++ b/html/themes/breezy/less/login.less
@@ -0,0 +1,113 @@
+@import "colors";
+
+/* Login screen */
+p.fusiondirectoryLoginWarning {
+  text-align: center;
+  color: @warning-red-color;
+  font-weight: bold;
+  font-size: @text-font-size;
+  @media (max-width: 640px) {
+    margin-top: 0;
+    margin-bottom: 0;
+  }
+}
+
+html, body {
+  min-height: 100%;
+}
+
+div#window-container {
+  text-align: center;
+  width: 100%;
+  bottom: 0;
+  top: 52px;
+  position: absolute;
+}
+
+div#window-div {
+  min-width: 50%;
+  margin-top: 100px;
+  margin-bottom: 30px;
+  border: 1px solid @border-color-1;
+  background-color: @background-second-color;
+  display: inline-block;
+  > form {
+    margin:0;
+  }
+  @media (max-width: 640px) {
+    min-width: 70%;
+    margin-top: 10px;
+  }
+}
+
+div#window-titlebar {
+  text-align: center;
+  border-bottom: 1px solid @border-color-1;
+  padding: 8px;
+  background-color: @background-color;
+  min-height: 30px;
+  > img {
+    float: left;
+    height: 30px;
+  }
+  > p {
+    margin: 0;
+    padding: 0;
+    font-size: @titlebar-font-size;
+    font-weight: bold;
+  }
+}
+
+div#window-content > div {
+  padding: 10px;
+}
+
+a:link ,
+a:visited {
+  text-decoration: none;
+  color: @link-color;
+}
+
+div#window-footer {
+  padding: 0;
+  > div {
+    display: inline-block;
+    width: 47%;
+    padding: 1%;
+    &:nth-child(1) {
+      color: @warning-red-color;
+      font-weight: bold;
+      html.ltr & {
+        text-align: left;
+      }
+      html.rtl & {
+        text-align: right;
+      }
+    }
+    @media (max-width: 640px) {
+      display: block;
+      width: auto;
+      padding: 5px;
+      text-align: center !important;
+    }
+  }
+  @media (max-width: 640px) {
+    &.plugbottom > div:nth-child(2) > input[type=submit] {
+      width: 100% !important;
+    }
+  }
+}
+
+span.warning, p.warning {
+  color: @warning-red-color;
+}
+
+div.copynotice {
+  position: fixed;
+  bottom: 0;
+  right: 5px;
+  border: none;
+  a {
+    color: @text-color;
+  }
+}
diff --git a/html/themes/breezy/less/menu.less b/html/themes/breezy/less/menu.less
new file mode 100644
index 0000000000000000000000000000000000000000..77dd4b1ca9ad9f44bf5afefa248fecd5e3dd4588
--- /dev/null
+++ b/html/themes/breezy/less/menu.less
@@ -0,0 +1,189 @@
+@import "colors";
+
+#menucell {
+  border: none;
+  width: 140px;
+  vertical-align: top;
+}
+
+/* Side menu */
+ul.menu {
+  font-size: @text-font-size;
+  &, & ul {
+   margin: 0;
+   padding: 0;
+   list-style-type: none;
+  }
+  li > a {
+    display: block;
+  }
+  > li {
+    margin-bottom: 5px;
+    padding-bottom: 3px;
+    background-color: @background-second-color;
+    border: 1px solid @border-color-1;
+    > a {
+      font-weight: bold;
+      color: @title-color;
+      text-decoration: none;
+      background-color: @background-color;
+      text-align: center;
+      vertical-align: middle;
+      margin-bottom: 3px;
+      padding-bottom: 5px;
+      padding-top: 5px;
+      border-style: solid;
+      border-color: @border-color-1;
+      border-width: 0 0 1px;
+    }
+  }
+  ul > li > a {
+    color: @text-color;
+    text-decoration: none;
+    font-weight: normal;
+    vertical-align: middle;
+    margin: 2px 0;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    html.ltr & {
+      text-align: left;
+      padding-left: 15px;
+    }
+    html.rtl & {
+      text-align: right;
+      padding-right: 15px;
+    }
+  }
+}
+
+.menuitem {
+  &.menucurrent {
+    background-color: @menu-selected-color;
+  }
+  &:hover {
+    background-color: @menu-hover-color;
+  }
+  a:link, a:visited {
+    text-decoration: none;
+    color: @text-color;
+  }
+  a:hover {
+    text-decoration: none;
+  }
+}
+
+/* Main menu */
+
+h1.menuheader {
+  margin: 0;
+  padding: 10px;
+  display: inline-block;
+  border-bottom: 1px solid @border-color-1;
+  background-color: @background-color;
+  html.ltr & {
+    border-right: 1px solid @border-color-1;
+    border-radius: 0 0 5px 0;
+    float: left;
+  }
+  html.rtl & {
+    border-left: 1px solid @border-color-1;
+    border-radius: 0 0 0 5px;
+    float: right;
+  }
+  @media (max-width: 640px) {
+    display: block;
+    padding: 5px;
+    text-align: center;
+    html.ltr & {
+      border-right: none;
+      float: none;
+    }
+    html.rtl & {
+      border-left: none;
+      float: none;
+    }
+  }
+}
+
+.iconmenu-section {
+  border-top: 1px solid @border-color-1;
+  clear: both;
+  + br {
+    clear: both;
+  }
+  &:first-child {
+    border-top: none;
+  }
+}
+
+.iconmenu {
+  .imgcontainer {
+    height: 48px;
+    width: 48px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  img {
+    border: none;
+    vertical-align: middle;
+    flex: none;
+    max-height: 48px;
+    max-width: 48px;
+  }
+  cursor: pointer;
+  display: flex;
+  align-items: center;
+  width: 17%;
+  min-width: 130px;
+  margin: .5%;
+  padding: .5%;
+  border-radius: 5px;
+  // Invisible border
+  border: 1px solid @background-second-color;
+  html.ltr & {
+    float: left;
+    text-align: left;
+  }
+  html.rtl & {
+    float: right;
+    text-align: right;
+  }
+  &:hover {
+    border: 1px solid @border-color-1;
+  }
+  html.ltr &:nth-child(2) {
+    clear: left;
+  }
+  html.rtl &:nth-child(2) {
+    clear: right;
+  }
+  > a:link, > a:visited {
+    text-decoration: none;
+    color: @text-color;
+  }
+  > a:hover {
+    text-decoration: none;
+  }
+}
+div.iconmenu:hover {
+  background-color: @background-focus-color;
+}
+
+/* On small screens */
+@media (max-width: 640px) {
+  html.ltr .iconmenu,
+  html.rtl .iconmenu {
+    text-align: center;
+    margin: 2px;
+    padding: 2px;
+    min-width: 70px;
+    min-height: 80px;
+    display: block;
+  }
+  .iconmenu .imgcontainer {
+    margin: auto;
+    display: block;
+    float: none;
+  }
+}
diff --git a/html/themes/breezy/less/plugin.less b/html/themes/breezy/less/plugin.less
new file mode 100644
index 0000000000000000000000000000000000000000..69ff126a0db18f5ae01df3b890f3fafffdd305e9
--- /dev/null
+++ b/html/themes/breezy/less/plugin.less
@@ -0,0 +1,310 @@
+@import "colors";
+
+.plugin-window {
+  vertical-align: top;
+  text-align: justify;
+  background-color: @background-second-color;
+  margin-top: 0;
+  margin-left: 0;
+  margin-right: 0;
+  width: auto;
+  border: 1px solid @border-color-1;
+  padding: 0;
+}
+
+div.pluginfo {
+  border-bottom: 1px solid @border-color-1;
+  width: 100%;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  margin-bottom: 0;
+  vertical-align: middle;
+  background-color: @background-color;
+  font-size: @pluginfo-font-size;
+  html.ltr & {
+    text-align: right;
+  }
+  html.rtl & {
+    text-align: left;
+  }
+}
+
+/* Common to plugins and login form */
+.plugbottom {
+  border-style: solid;
+  border-color: @border-color-1;
+  width: 100%;
+  border-top-width: 1px;
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  padding-top: 10px;
+  padding-bottom: 0;
+  clear: both;
+  html.ltr & {
+    text-align: right;
+  }
+  html.rtl & {
+    text-align: left;
+  }
+
+  input[type=submit], input[type=button] {
+    min-width: 80px;
+  }
+}
+
+/* Specific to plugin edition */
+p.plugbottom {
+  position: fixed;
+  bottom: 0;
+  margin: 0;
+  border-radius: 5px 5px 0 0;
+  width: auto;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-bottom: 5px;
+  padding-top: 5px;
+  background: @background-dark-color;
+  html.ltr & {
+    right: 10px;
+  }
+  html.rtl & {
+    left: 10px;
+  }
+}
+
+/* Simple Plugin specific things */
+
+.plugin-sections:after {
+  content: "";
+  display: block;
+  clear: both;
+}
+
+.plugin-section {
+  display: block;
+  width: 49%;
+  border: 1px solid @border-color-1;
+  padding: 0;
+  margin-top: 0.5%;
+  margin-bottom: 0.5%;
+  position: relative;
+  html.ltr & {
+    float: left;
+    clear: left;
+    margin-left: 0.5%;
+    margin-right: 0;
+  }
+  html.rtl & {
+    float: right;
+    clear: right;
+    margin-left: 0;
+    margin-right: 0.5%;
+  }
+  html.ltr &:nth-child(even) {
+    float: right;
+    clear: right;
+    margin-left: 0;
+    margin-right: 0.5%;
+  }
+  html.rtl &:nth-child(even) {
+    float: left;
+    clear: left;
+    margin-left: 0.5%;
+    margin-right: 0;
+  }
+}
+
+div.plugin-section {
+  padding-top: 25px;
+}
+
+.plugin-section {
+  > div {
+    padding: 5px;
+    > table {
+      min-width: 80%;
+    }
+  }
+  > span.legend {
+    margin-top: -26px;
+  }
+}
+
+fieldset.plugin-section {
+  > div {
+    padding-top: 30px;
+  }
+  legend {
+    padding: 0;
+    margin: 0;
+    html.ltr & {
+      float: left;
+    }
+    html.ltr & {
+      float: right;
+    }
+  }
+  select[multiple], textarea {
+    width: 100%;
+    min-width: 130px;
+  }
+}
+
+fieldset.plugin-section legend span,
+.plugin-section > span.legend {
+  font-weight: bold;
+  background-color: @background-dark-color;
+  border: 1px solid @border-color-1;
+  width: 100%;
+  padding-top: 5px;
+  padding-bottom: 5px;
+  text-align: center;
+  display: block;
+  html.ltr & {
+    margin-left: -1px;
+  }
+  html.rtl & {
+    margin-right: -1px;
+  }
+}
+
+fieldset.plugin-section legend span {
+  position: absolute;
+  top: 0;
+  margin-top: -1px;
+  html.ltr & {
+    left: 0;
+  }
+  html.rtl & {
+    right: 0;
+  }
+}
+
+fieldset.plugin-section legend img,
+.plugin-section span.legend img {
+  vertical-align: middle;
+  html.ltr & {
+    margin-right: 3px;
+  }
+  html.rtl & {
+    margin-left: 3px;
+  }
+}
+
+html.ltr .plugin-section.fullwidth,
+html.rtl .plugin-section.fullwidth {
+  float: none;
+  clear: both;
+  width: auto;
+  margin-top: 0.5%;
+  margin-left: 0.5%;
+  margin-bottom: 0.5%;
+  margin-right: 0.5%;
+}
+
+html.ltr .plugin-section.alone,
+html.rtl .plugin-section.alone {
+  float: none;
+  clear: both;
+}
+
+html.ltr .plugin-section.invisible,
+html.rtl .plugin-section.invisible {
+  display: none;
+}
+
+html.ltr .plugin-section,
+html.rtl .plugin-section {
+  &.nonreadable {
+    display: none;
+  }
+  > div > table > tbody > tr {
+    &.nonreadable {
+      display: none;
+    }
+    &.nonwritable.subattribute {
+      display: none;
+    }
+    &.nonwritable .subattribute {
+      display: none;
+    }
+    &.nonwritable {
+      input:disabled, select:disabled, textarea:disabled {
+        color: @text-color;
+      }
+    }
+    &.required > td > label::after {
+      content: "*";
+      color: @warning-red-color;
+    }
+  }
+}
+
+fieldset.plugin-section.critical legend span,
+.plugin-section.critical > span.legend {
+  font-weight: bold;
+  background-color: @critical-section-legend-background-color;
+}
+
+fieldset.plugin-section.critical legend span:after,
+.plugin-section.critical > span.legend:after {
+  content: "   (editing this can break your LDAP)";
+  color: @critical-section-warning-color;
+}
+
+.plugin-section.critical > div {
+  background-color: @critical-section-background-color;
+}
+
+/* On small screens */
+@media (max-width: 640px) {
+  .plugin-window {
+    margin: 0;
+    border: none;
+    width: 100%;
+  }
+  .plugin-section > div > table {
+    width: 100%;
+  }
+  html.ltr .plugin-section, html.ltr .plugin-section:nth-child(even), html.ltr .plugin-section.fullwidth,
+  html.rtl .plugin-section, html.rtl .plugin-section:nth-child(even), html.rtl .plugin-section.fullwidth {
+    display: block;
+    float: none;
+    clear: both;
+    width: 100%;
+    border-top: none;
+    margin: 0;
+  }
+  .plugbottom {
+    text-align: center;
+    width: 100%;
+    margin: 0;
+    padding-top: 5px;
+    padding-bottom: 4px;
+    padding-left: 1px;
+    padding-right: 1px;
+    border: none;
+  }
+  p.plugbottom {
+    left: 5px;
+    right: 5px;
+  }
+  .plugbottom input[type=submit], .plugbottom input[type=button] {
+    border: 1px solid @border-color-1;
+    width: 30% !important;
+    padding: 10px;
+    display: inline-block;
+    font-weight: bold;
+  }
+  .plugbottom input[type=submit]:active, .plugbottom input[type=button]:active {
+    position: relative;
+    top: 1px;
+    html.ltr & {
+      left: 1px;
+    }
+    html.rtl & {
+      right: 1px;
+    }
+  }
+}
diff --git a/html/themes/breezy/less/setup.less b/html/themes/breezy/less/setup.less
new file mode 100644
index 0000000000000000000000000000000000000000..6275961ea20cf92af221b5b6be8f854e3f5f02bc
--- /dev/null
+++ b/html/themes/breezy/less/setup.less
@@ -0,0 +1,174 @@
+@import "colors";
+
+/*********
+ * Setup
+ *********/
+body.setup {
+  div#header-left .plugtop {
+    html.ltr & {
+    margin-left: 80px;
+    }
+    html.rtl & {
+    margin-right: 80px;
+    }
+  }
+  .plugin-window {
+    border-radius: 5px;
+  }
+}
+
+/* default.*/
+div.default {
+  padding: 2px 10px;
+  vertical-align: middle;
+}
+
+#menucell.setup-navigation {
+  width: 200px;
+  li.menuitem {
+    /* The box used for each setup step */
+    text-decoration: none;
+    padding-top: 8px;
+    padding-bottom: 8px;
+    margin-top: 5px;
+    margin-bottom: 5px;
+    > a {
+      margin: 0;
+    }
+    &.menucurrent a.navigation-title {
+      /* An enabled setup step will use this style in navigation */
+      cursor: default;
+    }
+    &.disabled a.navigation-title {
+      /* Disabled setup steps */
+      cursor: default;
+      color: @title-color-disabled;
+    }
+    a.navigation-title {
+      /* Setup steps */
+      color: @title-color;
+      font-size: @big-title-font-size;
+      font-weight: bold;
+      text-decoration: none;
+      cursor: pointer;
+      padding-top: 3px;
+      padding-bottom: 3px;
+    }
+    a.navigation-info {
+      /* The style for the info of an active setup */
+      font-size: @text-font-size;
+      color: @text-color;
+      margin: 0;
+      cursor: default;
+      html.ltr & {
+        padding: 4px 4px 3px 15px;
+      }
+      html.rtl & {
+        padding: 4px 15px 3px 4px;
+      }
+    }
+  }
+}
+
+.setup-language select#lang_selected {
+  width: 100%;
+}
+
+/*
+  Setup step 2 styles
+*/
+/* used to hide display info div */
+div.solution-visible {
+  display: block;
+  width: 100%;
+  html.ltr & {
+    text-align: left;
+  }
+  html.rtl & {
+    text-align: right;
+  }
+}
+
+/* Container for name and status */
+div.step2-entry-container {
+  padding: 3px;
+  width: 99%;
+  cursor: default;
+}
+
+/* Container for name and status, when status is failed */
+div.step2-entry-container-info {
+  padding: 3px;
+  border: 1px solid @border-color-1;
+  width: 99%;
+  cursor: default;
+}
+
+/* Text shown for each entry */
+div.step2-entry-name {
+  padding-bottom: 4px;
+  vertical-align: middle;
+  html.ltr & {
+    float: left;
+  }
+  html.rtl & {
+    float: right;
+  }
+}
+
+/* Status container */
+div.step2-entry-status {
+  float: none;
+  padding-bottom: 4px;
+  vertical-align: middle;
+  html.ltr & {
+    text-align: right;
+  }
+  html.rtl & {
+    text-align: left;
+  }
+}
+
+/* Status failed */
+div.step2-failed {
+  color: @warning-red-color;
+  padding-bottom: 4px;
+}
+
+/* Status failed but not necessary for setup */
+div.step2-warning {
+  color: orange;
+  padding-bottom: 4px;
+}
+
+/* Status successful */
+div.step2-successful {
+  color: @success-title-color;
+}
+
+/* Text used in info div. */
+div.step2-failed-text,
+div.step2-warning-text {
+  background-repeat: no-repeat;
+  html.ltr & {
+    padding-left: 25px;
+  }
+  html.rtl & {
+    padding-right: 25px;
+  }
+}
+
+/* On small screens */
+@media (max-width: 640px) {
+  body.setup a.plugtop img {
+    height: 32px;
+  }
+  body.setup div#header-left .plugtop {
+    html.ltr & {
+      margin-left: 0;
+    }
+    html.rtl & {
+      margin-right: 0;
+    }
+  }
+}
diff --git a/html/themes/breezy/less/style.less b/html/themes/breezy/less/style.less
new file mode 100644
index 0000000000000000000000000000000000000000..754596e32d2d66623ea68c57dce383da9024c8ab
--- /dev/null
+++ b/html/themes/breezy/less/style.less
@@ -0,0 +1,590 @@
+@import "colors";
+
+body {
+  margin: 0;
+  background-color: @background-color;
+  color: @text-color;
+  font-family: @font-family;
+  font-size: @body-font-size;
+}
+
+h1 {
+  font-size: @big-title-font-size;
+  color: @title-color;
+}
+
+h2,h3,h4,h5,h6 {
+  font-size: @title-font-size;
+  color: @title-color;
+}
+
+td,p,b,th {
+  font-size: @text-font-size;
+}
+
+img {
+  border: none;
+}
+
+a:link,
+a:visited {
+  text-decoration: none;
+  color: @text-color;
+}
+
+td.listfooter {
+  background: @background-dark-color;
+  border-top: 1px solid @border-color-1;
+  padding: 3px;
+  height: 16px;
+}
+
+td.scrollhead,
+td.scrollbody {
+  vertical-align: top;
+  padding: 0;
+}
+
+div.scrollbody {
+  background-color: @background-focus-color;
+  overflow: auto;
+  html.ltr & {
+    text-align: left;
+  }
+  html.rtl & {
+    text-align: right;
+  }
+}
+
+/* Title bar */
+a.maintitlebar,
+div.maintitlebar {
+  text-decoration: none;
+  font-size: @text-font-size;
+  text-align: center;
+  vertical-align: middle;
+  cursor: pointer;
+  display: inline-block;
+  padding: 2px;
+  // Invisible border
+  border: 1px solid @background-color;
+  border-radius: 8px;
+  &:link,
+  &:visited {
+    text-decoration: none;
+    color: @link-color;
+  }
+  html.ltr & {
+    padding-right: 5px;
+  }
+  html.rtl & {
+    padding-left: 5px;
+  }
+}
+
+a.maintitlebar:hover {
+  text-decoration: none;
+  background-color: @background-second-color;
+  cursor: pointer;
+  border: 1px solid @border-color-1;
+}
+
+div.copynotice {
+  border-style: solid;
+  border-color: @border-color-1;
+  width: 100%;
+  border-top-width: 1px;
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  padding-top: 3px;
+  padding-bottom: 0;
+  font-size: @small-text-font-size;
+  html.ltr & {
+    text-align: right;
+  }
+  html.rtl & {
+    text-align: left;
+  }
+}
+
+hr {
+  width: 100%;
+  border: none;
+  background-color: @border-color-1;
+  height: 1px;
+}
+
+img.center {
+  text-align: center;
+  vertical-align: middle;
+}
+
+input.center,
+select.center,
+a.center {
+  vertical-align: middle;
+  html.ltr & {
+    text-align: left;
+  }
+  html.rtl & {
+    text-align: right;
+  }
+}
+
+/********************** Template migration *********************/
+
+form#mainform {
+  margin: 0;
+}
+
+table.framework {
+  height: auto;
+  width: 100%;
+  border: 0;
+  border-spacing: 5px;
+  padding: 0;
+  margin-top: 0;
+  vertical-align: top;
+  html.ltr & {
+    margin-left: 0;
+  }
+  html.rtl & {
+    margin-right: 0;
+  }
+  td#maincell {
+    background-color: @background-color;
+    width: auto;
+    vertical-align: top;
+    padding-bottom: 35px;
+  }
+  > tbody > tr > td {
+    /* cellpadding="0" */
+    padding: 0;
+  }
+}
+
+div.contentboxh {
+  background-color: @background-header-color;
+  border: 1px solid @border-color-1;
+  border-bottom: none;
+  height: 26px;
+  vertical-align: middle;
+  width: auto;
+  > p {
+    margin: 2px;
+    font-size: 16px;
+    font-weight: bold;
+    vertical-align: middle;
+  }
+}
+
+div.contentboxb {
+  border: 1px solid @border-color-1;
+  border-top-width: 0;
+  vertical-align: middle;
+  width: auto;
+  background: @background-focus-color;
+  padding: 5px;
+  .filter & {
+    padding: 0;
+    padding-top: 3px;
+    label img,
+    label input[type=checkbox] {
+      vertical-align: middle;
+      padding:0;
+      margin:0;
+    }
+    > label {
+      display:block;
+      margin:5px;
+    }
+    > fieldset > label {
+      display:block;
+      margin:5px 0 0 0;
+    }
+    > hr {
+      margin-bottom: 3px;
+    }
+  }
+  > div {
+    display: inline-block;
+    margin: 1px;
+    .filter & {
+      width: 100%;
+      background: @background-dark-color;
+      border-top: 1px solid @border-color-1;
+      text-align: right;
+      margin: 0;
+      padding: 3px;
+      box-sizing: border-box;
+    }
+  }
+  > img,
+  > input {
+    display: inline-block;
+    margin: 3px;
+  }
+}
+
+option.select {
+  background-repeat: no-repeat;
+  background-position: 0 top;
+  border: 0;
+  padding-bottom: 1px;
+  height: 18px;
+  html.ltr & {
+    padding-left: 20px;
+  }
+  html.rtl & {
+    padding-right: 20px;
+  }
+}
+
+
+td.tbhead {
+  border-bottom: 1px solid @border-color-1;
+  html.ltr & {
+    border-right: 1px solid @border-color-1;
+  }
+  html.rtl & {
+    border-left: 1px solid @border-color-1;
+  }
+}
+
+td.tbrhead {
+  border-bottom: 1px solid @border-color-1;
+}
+
+.separator {
+  border-top: 1px solid @border-color-1;
+  border-bottom: 1px solid @background-focus-color;
+  margin: 2px 5px;
+  /* top right bottom left */
+  height: 0;
+  font-size: 1px;
+  line-height: 0;
+}
+
+div.autocomplete {
+  position: absolute;
+  background-color: @background-focus-color;
+  border: 1px solid @border-color-1;
+  margin: 0;
+  padding: 0;
+  z-index: 600;
+  overflow: hidden;
+  word-wrap: break-word;
+  ul {
+    list-style-type: none;
+    margin: 0;
+    padding: 0;
+    li {
+      list-style-type: none;
+      display: block;
+      margin: 0;
+      padding: 2px;
+      cursor: pointer;
+      html.ltr & {
+        padding-left: 4px;
+      }
+      html.rtl & {
+        padding-right: 4px;
+      }
+      &:hover {
+        background-color: @line-hover-color;
+      }
+      &.selected {
+        background-color: @line-hover-color;
+      }
+    }
+  }
+}
+
+#pulldown {
+  background: @background-focus-color;
+  height: 23px;
+  border: 1px @border-color-1 solid;
+  ul {
+    display: block;
+    margin: 0;
+    padding: 0;
+    line-height: 1em;
+    list-style: none;
+    z-index: 90;
+    li {
+      padding: 0;
+      font-size: @text-font-size;
+      line-height: 1em;
+      list-style-type: none;
+      a {
+        display: block;
+        width: auto;
+        font-weight: normal;
+        background: transparent;
+        text-decoration: none;
+        margin: 0;
+        padding: 5px;
+        &:hover {
+          text-decoration: none;
+        }
+      }
+      img {
+        vertical-align:middle;
+      }
+      &.sep {
+        color: @border-color-1;
+        padding: .8em 0 .5em;
+      }
+    }
+  }
+}
+
+#pulldown ul ul {
+  position: absolute;
+  top: 0;
+  left: 0;
+  visibility: hidden;
+  border-top: 1px @border-color-1 solid;
+  border-left: 1px @border-color-1 solid;
+  border-bottom: 1px @border-color-1 solid;
+  border-right: 1px @border-color-1 solid;
+  background: @background-focus-color;
+  li {
+    border-bottom: 1px solid @background-focus-color;
+    float: none;
+    margin: 0;
+    padding: 0;
+    width: 200px;
+    a {
+      padding: 5px 9px 5px 5px;
+      &:hover {
+        font-weight: normal;
+        background-color: @menu-hover-color;
+        background-image: none;
+      }
+    }
+  }
+}
+
+span.informal {
+  color: @text-color-light;
+  font-style: italic;
+}
+
+span.mark {
+  color: @text-color-mark;
+}
+
+/* Header */
+
+div#header-left {
+  html.ltr & {
+    float: left;
+    .plugtop,
+    .logout {
+      margin-left: 35px;
+    }
+  }
+  html.rtl & {
+    float: right;
+    .plugtop,
+    .logout {
+      margin-right: 35px;
+    }
+  }
+  img {
+    vertical-align: middle;
+    html.ltr &#fd-logo {
+      padding-left: 2px;
+      padding-right: 25px;
+    }
+    html.rtl &#fd-logo {
+      padding-left: 25px;
+      padding-right: 2px;
+    }
+  }
+}
+
+.plugtop {
+  color: @text-color;
+  border: 1px solid @border-color-1;
+  padding: 10px;
+  margin: 0;
+  text-align: center;
+  vertical-align: middle;
+  background-color: @background-second-color;
+  font-size: @header-title-font-size;
+  img {
+    height: 32px;
+    html.ltr & {
+      margin-right: 4px;
+    }
+    html.rtl & {
+      margin-left: 4px;
+    }
+  }
+}
+
+div#header-right {
+  padding-top: 8px;
+  height: 38px;
+  color: @text-color;
+  html.ltr & {
+    text-align: right;
+  }
+  html.rtl & {
+    text-align: left;
+  }
+  div.version {
+    font-size: 20px;
+  }
+}
+
+/* Header col */
+div.setup-header {
+  background-color: @background-color;
+  padding: 4px 5px 4px;
+  color: @text-color;
+}
+
+/*** ACL edition ***/
+div.acledition {
+  div.togglebuttons input {
+    width:100px;
+  }
+  div.setbuttons input {
+    width:50px;
+  }
+  > table {
+    width:100%;
+    border:1px solid @border-color-1;
+    border-spacing:0;
+    border-collapse:collapse;
+    margin-top:10px;
+    input[type=checkbox] {
+      vertical-align:middle;
+    }
+    > tbody > tr:nth-child(1) > td {
+      background-color:@background-dark-color;
+      border-bottom: 1px solid @border-color-1;
+    }
+    > tbody > tr:nth-child(1) > td:nth-child(1) {
+      padding-top: 5px;
+      padding-bottom: 5px;
+      html.ltr & {
+        padding-left: 5px;
+      }
+      html.rtl & {
+        padding-right: 5px;
+      }
+    }
+    &.expand > tbody > tr:nth-child(1) > td {
+      background-color: @critical-section-legend-background-color;
+    }
+    > tbody > tr:nth-child(2) {
+      > td:nth-child(1) {
+      }
+      > td:nth-child(2) {
+      }
+    }
+    > tbody > tr:nth-child(3) {
+      vertical-align:top;
+      height:0px;
+      > td > div {
+        width:100%;
+        > table {
+          width:100%;
+          border-collapse: collapse;
+          border:1px solid;
+          > tbody > tr > td {
+           border:1px solid @border-color-1;
+           width:33%;
+          }
+        }
+      }
+    }
+  }
+}
+
+/* On small screens */
+@media (max-width: 640px) {
+  div.setup-header {
+  padding: 2px;
+  height: 36px;
+  }
+  a.maintitlebar {
+  width: 36px;
+  height: 36px;
+  overflow: hidden;
+  display: block;
+  }
+  html.ltr a.maintitlebar {
+  float: left;
+  margin: 0;
+  padding: 0;
+  }
+  html.rtl a.maintitlebar {
+  float: right;
+  margin: 0;
+  }
+  a.maintitlebar img {
+  padding: 6px;
+  width: 22px;
+  height: 22px;
+  }
+  html.ltr div#header-left .logout {
+  margin-left: 0;
+  float: right;
+  }
+  html.rtl div#header-left .logout {
+  margin-right: 0;
+  float: left;
+  }
+  html.ltr div#header-left, html.rtl div#header-left {
+  height: 40px;
+  width: 100%;
+  }
+  html.ltr div#header-right, html.rtl div#header-right {
+  padding-top: 8px;
+  height: 30px;
+  margin-top: -40px;
+  width: 100%;
+  }
+  div#header-right a {
+  background: @background-color;
+  }
+  .optional {
+  display: none !important;
+  }
+  div#header-left .plugtop {
+  display: inline-block;
+  hyphens: none;
+  overflow: hidden;
+  white-space: nowrap;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  font-size: @text-font-size;
+  }
+  html.ltr div#header-left .plugtop {
+  margin: 0;
+  padding-left: 6px;
+  }
+  html.rtl div#header-left .plugtop {
+  margin: 0;
+  padding-right: 6px;
+  }
+  div.logout-label {
+  display: inline-block;
+  vertical-align: middle;
+  }
+  table.framework {
+  margin: 0;
+  border: none;
+  width: 100%;
+  border-spacing: 0;
+  }
+  table.framework #maincell {
+  padding-bottom: 55px;
+  }
+}
diff --git a/html/themes/breezy/less/tabs.less b/html/themes/breezy/less/tabs.less
new file mode 100644
index 0000000000000000000000000000000000000000..36120b4e5948d56a9b6f27f249a38b36c59ac6cd
--- /dev/null
+++ b/html/themes/breezy/less/tabs.less
@@ -0,0 +1,102 @@
+@import "colors";
+
+table.tabs-header {
+  width: 100%;
+  border: none;
+  border-spacing: 0;
+  text-decoration: none;
+  color: @link-color;
+  font-size: @title-font-size;
+  font-weight: bold;
+  > tbody > tr > td {
+    padding: 0;
+    vertical-align: bottom;
+    white-space: nowrap;
+    width: 1px;
+    &:last-child {
+      width: auto;
+    }
+    &.nonreadable {
+      display: none;
+    }
+    > div > a {
+      display: inline-block;
+      border-radius: 5px 5px 0 0;
+      text-align: center;
+      background-color: @tab-background-color;
+      border: 1px solid @tab-border-color;
+      margin-top: 5px;
+      padding-top: 1px;
+      padding-left: 8px;
+      padding-right: 8px;
+      padding-bottom: 5px;
+      transition: margin .4s ease, padding .4s ease;
+      &:hover {
+        margin-top: 0;
+        padding-top: 2px;
+        padding-bottom: 7px;
+      }
+    }
+    > div.tab-active > a {
+      background-color: @tab-active-background-color;
+      border-bottom: 0;
+      margin-top: 2px;
+      padding-top: 2px;
+      padding-bottom: 8px;
+    }
+    > div.tab-inactive > a {
+      color: @tab-title-color-disabled;
+      font-weight: normal;
+    }
+    > div.tab-disabled > a {
+      color: @tab-title-color-disabled;
+      &:hover {
+        margin-top: 5px;
+        padding-top: 1px;
+        padding-bottom: 5px;
+      }
+    }
+    > div.tab-notify > a {
+      background-image: url(../../geticon.php?context=status&icon=dialog-information&size=16);
+      background-repeat: no-repeat;
+      background-position: 1px 1px;
+      html.ltr & {
+        padding-left: 18px;
+      }
+      html.rtl & {
+        padding-right: 18px;
+      }
+    }
+    > div.tab-left > a {
+      html.ltr & {
+        border-right-width: 0;
+      }
+      html.rtl & {
+        border-left-width: 0;
+      }
+    }
+    > div.tab-right > a {
+      html.ltr & {
+        border-left-width: 0;
+      }
+      html.rtl & {
+        border-right-width: 0;
+      }
+    }
+    > div.tab-border {
+      border-bottom: 1px solid @tab-border-color;
+    }
+  }
+}
+
+div.tab-content {
+  padding: 4px;
+  width: auto;
+  background-color: @tab-active-background-color;
+  border-style: solid;
+  border-color: @border-color-1;
+  border-top-width: 0;
+  border-bottom-width: 1px;
+  border-left-width: 1px;
+  border-right-width: 1px;
+}
diff --git a/html/themes/breezy/lists.css b/html/themes/breezy/lists.css
index 8824e4d91f2749915699f1ba5573987c0b2ceedf..9346094584cfc762352c863a6a4a7590dac5ae3f 100644
--- a/html/themes/breezy/lists.css
+++ b/html/themes/breezy/lists.css
@@ -2,277 +2,273 @@
  *           L i s t s          *
  ********************************/
 table.listingTable {
-border-top: 1px solid #c0c2c3;
-border-bottom: 1px solid #c0c2c3;
-border-left: 1px solid #c0c2c3;
-border-spacing: 0;
+  border-top: 1px solid #c0c2c3;
+  border-bottom: 1px solid #c0c2c3;
+  border-left: 1px solid #c0c2c3;
+  border-spacing: 0;
 }
-
 table.listingTable thead tr {
-position: relative;
-height: auto;
-margin: 3px;
-padding: 1px;
-white-space: nowrap;
+  position: relative;
+  height: auto;
+  margin: 3px;
+  padding: 1px;
+  white-space: nowrap;
 }
-
 table.listingTable > thead > tr > th {
-box-sizing: content-box;
-background: #f0f0f0;
-font-weight: bold;
-border-bottom: 1px solid #c0c2c3;
-padding: 3px;
-height: 22px;
+  box-sizing: content-box;
+  background: #f0f0f0;
+  font-weight: bold;
+  border-bottom: 1px solid #c0c2c3;
+  padding: 3px;
+  height: 22px;
 }
 html.ltr table.listingTable > thead > tr > th {
-border-right: 1px solid #c0c2c3;
+  border-right: 1px solid #c0c2c3;
 }
 html.rtl table.listingTable > thead > tr > th {
-border-left: 1px solid #c0c2c3;
+  border-left: 1px solid #c0c2c3;
 }
-
-/* Up and Down Arrows */
-.listingTable > thead > tr > th.descend:after {
-content: "\25B2";
+table.listingTable > thead > tr > th.descend:after {
+  /* Up arrow */
+  content: "\25B2";
 }
-.listingTable > thead > tr > th.ascend:after {
-content: "\25BC";
+table.listingTable > thead > tr > th.ascend:after {
+  /* Down arrow */
+  content: "\25BC";
 }
-
 table.listingTable > tbody {
-height: 100%;
-overflow-x: hidden;
-overflow-y: auto;
+  height: 100%;
+  overflow-x: hidden;
+  overflow-y: auto;
 }
-
 table.listingTable > tbody > tr {
-height: auto;
-white-space: nowrap;
+  height: auto;
+  white-space: nowrap;
 }
-
 table.listingTable > tbody > tr:nth-child(odd) {
   background-color: #fcfcfc;
 }
-
 table.listingTable > tbody > tr:nth-child(even) {
   background-color: #f5f5f5;
 }
-
 table.listingTable > tbody > tr.entry-locked:nth-child(odd) {
-  background-color: #ffc;
+  background-color: #ffffcc;
 }
-
 table.listingTable > tbody > tr.entry-locked:nth-child(even) {
   background-color: #f5f5cc;
 }
-
 html.ltr table.listingTable > tbody > tr td:last-child {
-padding-right: 5px;
+  padding-right: 5px;
 }
 html.rtl table.listingTable > tbody > tr td:last-child {
-padding-left: 5px;
+  padding-left: 5px;
 }
-
 table.listingTable > tbody > tr:hover {
-  background-color: #ddd;
+  background-color: #dddddd;
 }
-
 table.listingTable > tbody > tr.entry-locked:hover {
-  background-color: #dda;
+  background-color: #ddddaa;
 }
-
 table.listingTable > tbody > tr td {
-color: #31363b;
-margin: 3px;
-padding: 2px;
-word-wrap: break-word;
-white-space: normal;
-max-width: 500px;
-background: transparent;
-height: 22px;
+  color: #31363b;
+  margin: 3px;
+  padding: 2px;
+  word-wrap: break-word;
+  white-space: normal;
+  max-width: 500px;
+  background: transparent;
+  height: 22px;
 }
 html.ltr table.listingTable > tbody > tr td {
-border-right: 1px solid #c0c2c3;
+  border-right: 1px solid #c0c2c3;
 }
 html.rtl table.listingTable > tbody > tr td {
-border-left: 1px solid #c0c2c3;
+  border-left: 1px solid #c0c2c3;
 }
-
 table.listingTable > tbody > tr td > input[type=image],
 table.listingTable > tbody > tr td > img {
-padding: 2px;
+  padding: 2px;
 }
-
-table.listingTable > tbody > tr td > a:link {
-text-decoration: none;
-color: #2980b9;
-}
-
+table.listingTable > tbody > tr td > a:link,
 table.listingTable > tbody > tr td > a:visited {
-text-decoration: none;
-color: #2980b9;
+  text-decoration: none;
+  color: #2980b9;
 }
-
 /* List border */
-
 div.nlistFooter {
-background-color: #e5e5e5;
-border-left: 1px solid silver;
-border-right: 1px solid silver;
-border-bottom: 1px solid silver;
-padding: 3px;
-width: auto;
-}
-
+  background-color: #e5e5e5;
+  border-left: 1px solid silver;
+  border-right: 1px solid silver;
+  border-bottom: 1px solid silver;
+  padding: 3px;
+  width: auto;
+}
+div.nlistFooter img {
+  vertical-align: middle;
+}
 /* Tree List (used in baseSelector) */
-ul.treeList,ul.treeList ul {
-list-style-type: none;
-background: url(../../images/lists/vline.png) repeat-y;
-margin: 0;
-padding: 0;
+ul.treeList,
+ul.treeList ul {
+  list-style-type: none;
+  background: url(../../images/lists/vline.png) repeat-y;
+  margin: 0;
+  padding: 0;
 }
-
 html.ltr ul.treeList ul {
-margin-left: 10px;
+  margin-left: 10px;
 }
 html.rtl ul.treeList ul {
-margin-right: 10px;
+  margin-right: 10px;
 }
-
 ul.treeList a:hover {
-background-color: #ddd;
+  background-color: #dddddd;
 }
-
 a.treeList {
-padding: 2px;
-cursor: pointer;
+  padding: 2px;
+  cursor: pointer;
 }
-
 a.treeListSelected {
-font-weight: bold;
-color: #2980b9;
-background-color: #ddd;
-padding: 2px;
-cursor: pointer;
-}
-
-a.treeList:hover,a.treeListSelected:hover {
-background-color: #ddd;
-padding: 2px;
-}
-
+  font-weight: bold;
+  color: #2980b9;
+  background-color: #dddddd;
+  padding: 2px;
+  cursor: pointer;
+}
+a.treeList:hover,
+a.treeListSelected:hover {
+  background-color: #dddddd;
+  padding: 2px;
+}
 ul.treeList a {
-padding: 2px;
-cursor: pointer;
+  padding: 2px;
+  cursor: pointer;
 }
-
 ul.treeList li {
-margin: 0;
-padding: 0 12px;
-line-height: 20px;
-background: url(../../images/lists/node.png) no-repeat;
+  margin: 0;
+  padding: 0 12px;
+  line-height: 20px;
+  background: url(../../images/lists/node.png) no-repeat;
 }
-
 li.treeListSelected a {
-font-weight: bold;
-color: #2980b9;
-padding: 2px;
+  font-weight: bold;
+  color: #2980b9;
+  padding: 2px;
 }
-
 ul.treeList li.last,
 ul.treeList li:last-child {
-background: #fcfcfc url(../../images/lists/lastnode.png) no-repeat;
+  background: #fcfcfc url(../../images/lists/lastnode.png) no-repeat;
 }
-
 div.treeList {
-background-color: #fcfcfc;
-border: 1px solid #c0c2c3;
-padding: 5px;
-position: absolute;
-z-index: 500;
-overflow-y: auto;
-float: left;
+  background-color: #fcfcfc;
+  border: 1px solid #c0c2c3;
+  padding: 5px;
+  position: absolute;
+  z-index: 500;
+  overflow-y: auto;
+}
+html.ltr div.treeList {
+  float: left;
 }
 html.rtl div.treeList {
-float: right;
+  float: right;
 }
-
 table.listing-container {
-width: 100%;
-height: 100%;
-vertical-align: top;
-text-align: left;
-border: none;
-border-spacing: 2px;
+  width: 100%;
+  height: 100%;
+  vertical-align: top;
+  border: none;
+  border-spacing: 2px;
+}
+html.ltr table.listing-container {
+  text-align: left;
 }
 html.rtl table.listing-container {
-text-align: right;
+  text-align: right;
 }
-
 table.listing-container > tbody > tr > td.list {
-height: 100%;
-vertical-align: top;
+  height: 100%;
+  vertical-align: top;
+}
+table.listing-container > tbody > tr > td.filter {
+  max-width: 300px;
+  vertical-align: top;
 }
-
-table.listing-container > tbody >  tr > td.filter {
-max-width: 300px;
-vertical-align: top;
+table.listing-container > tbody > tr > td.filter .contentboxb {
+  min-width: 230px;
 }
-
-table.listing-container > tbody >  tr > td.filter .contentboxb {
-min-width: 230px;
+/* Management */
+table.listingTable.management {
+  width: 100%;
+}
+table.listingTable.management > thead > tr > th.checkbox {
+  text-align: center;
+  padding: 0;
+  width: 24px;
+}
+table.listingTable.management > tbody > tr > td.filler {
+  height: 100%;
+  width: 100%;
+}
+table.listingTable > thead > tr > th > img,
+table.listingTable > thead > tr > th > input[type=image],
+table.listingTable > tbody > tr > td > img,
+table.listingTable > tbody > tr > td > input[type=image] {
+  vertical-align: middle;
 }
-
 /* On small screens */
 @media (max-width: 640px) {
   table.listingTable {
-  table-layout: auto;
+    table-layout: auto;
   }
-  table.listingTable > tbody > tr > td, table.listingTable > thead > tr > th {
-  width: auto !important;
-  min-width: 0 !important;
+  table.listingTable > tbody > tr > td,
+  table.listingTable > thead > tr > th {
+    width: auto !important;
+    min-width: 0 !important;
   }
   html.ltr table.listingTable > tbody > tr td:last-child {
-  padding-right: 1px;
+    padding-right: 1px;
   }
   html.rtl table.listingTable > tbody > tr td:last-child {
-  padding-left: 1px;
+    padding-left: 1px;
   }
   table.listing-container {
-  border: none;
-  border-spacing: 0;
-  border-collapse: collapse;
+    border: none;
+    border-spacing: 0;
+    border-collapse: collapse;
   }
-  table.listing-container > tbody > tr > td.list, table.listing-container > tbody >  tr > td.filter {
-  width: 100%;
-  min-width: 0;
-  max-width: none;
-  height: auto;
-  display: block;
-  padding: 0;
+  table.listing-container > tbody > tr > td.list,
+  table.listing-container > tbody > tr > td.filter {
+    width: 100%;
+    min-width: 0;
+    max-width: none;
+    height: auto;
+    display: block;
+    padding: 0;
   }
-  table.listing-container > tbody > tr > td.list > div, table.listing-container > tbody >  tr > td.filter > div {
-  border: none;
+  table.listing-container > tbody > tr > td.list > div,
+  table.listing-container > tbody > tr > td.filter > div {
+    border: none;
   }
-  table.listing-container > tbody > tr > td.list:after, table.listing-container > tbody >  tr > td.filter:after {
-  content: " ";
-  display: block;
+  table.listing-container > tbody > tr > td.list:after,
+  table.listing-container > tbody > tr > td.filter:after {
+    content: " ";
+    display: block;
   }
-  table.listing-container > tbody >  tr > td.filter input[type=submit] {
-  border: 1px solid #ddd;
-  width: 100% !important;
-  padding: 10px;
-  display: inline-block;
-  font-weight: bold;
+  table.listing-container > tbody > tr > td.filter input[type=submit] {
+    border: 1px solid #c0c2c3;
+    width: 100% !important;
+    padding: 10px;
+    display: inline-block;
+    font-weight: bold;
   }
-  html.ltr table.listing-container > tbody >  tr > td.filter input[type=submit]:active {
-  position: relative;
-  top: 1px;
-  left: 1px;
+  html.ltr table.listing-container > tbody > tr > td.filter input[type=submit]:active {
+    position: relative;
+    top: 1px;
+    left: 1px;
   }
-  html.rtl table.listing-container > tbody >  tr > td.filter input[type=submit]:active {
-  position: relative;
-  top: 1px;
-  right: 1px;
+  html.rtl table.listing-container > tbody > tr > td.filter input[type=submit]:active {
+    position: relative;
+    top: 1px;
+    right: 1px;
   }
 }
diff --git a/html/themes/breezy/login.css b/html/themes/breezy/login.css
index 685d00a2d1d4a622f99894e2068f74c7798d16e5..93115953ae62dcde38a155a9d1de68547c24779d 100644
--- a/html/themes/breezy/login.css
+++ b/html/themes/breezy/login.css
@@ -1,122 +1,110 @@
 /* Login screen */
 p.fusiondirectoryLoginWarning {
-text-align: center;
-color: red;
-font-weight: bold;
-font-size: 12px;
+  text-align: center;
+  color: #dd0000;
+  font-weight: bold;
+  font-size: 12px;
 }
-
-html, body {
-min-height: 100%;
+@media (max-width: 640px) {
+  p.fusiondirectoryLoginWarning {
+    margin-top: 0;
+    margin-bottom: 0;
+  }
+}
+html,
+body {
+  min-height: 100%;
 }
-
 div#window-container {
-text-align: center;
-width: 100%;
-bottom: 0;
-top: 52px;
-position: absolute;
+  text-align: center;
+  width: 100%;
+  bottom: 0;
+  top: 52px;
+  position: absolute;
 }
-
 div#window-div {
-min-width: 50%;
-margin-top: 100px;
-border: 1px solid #c0c2c3;
-background-color: #f3f4f4;
-display: inline-block;
+  min-width: 50%;
+  margin-top: 100px;
+  margin-bottom: 30px;
+  border: 1px solid #c0c2c3;
+  background-color: #f3f4f4;
+  display: inline-block;
 }
-
 div#window-div > form {
-margin:0;
+  margin: 0;
+}
+@media (max-width: 640px) {
+  div#window-div {
+    min-width: 70%;
+    margin-top: 10px;
+  }
 }
-
 div#window-titlebar {
-text-align: center;
-border-bottom: 1px solid #c0c2c3;
-padding: 8px;
-background-color: #eff0f1;
-min-height: 30px;
+  text-align: center;
+  border-bottom: 1px solid #c0c2c3;
+  padding: 8px;
+  background-color: #eff0f1;
+  min-height: 30px;
 }
-
 div#window-titlebar > img {
-float: left;
-height: 30px;
+  float: left;
+  height: 30px;
 }
-
 div#window-titlebar > p {
-margin: 0;
-padding: 0;
-font-size: 24px;
-font-weight: bold;
+  margin: 0;
+  padding: 0;
+  font-size: 24px;
+  font-weight: bold;
 }
-
 div#window-content > div {
-padding: 10px;
-}
-
-a:link {
-text-decoration: none;
-color: #2980b9;
+  padding: 10px;
 }
-
+a:link,
 a:visited {
-text-decoration: none;
-color: #2980b9;
+  text-decoration: none;
+  color: #2980b9;
 }
-
 div#window-footer {
-padding: 0;
+  padding: 0;
 }
-
 div#window-footer > div {
-display: inline-block;
-width: 47%;
-padding: 1%;
+  display: inline-block;
+  width: 47%;
+  padding: 1%;
 }
-
 div#window-footer > div:nth-child(1) {
-color: red;
-font-weight: bold;
+  color: #dd0000;
+  font-weight: bold;
 }
 html.ltr div#window-footer > div:nth-child(1) {
-text-align: left;
+  text-align: left;
 }
 html.rtl div#window-footer > div:nth-child(1) {
-text-align: right;
-}
-
-span.warning, p.warning {
-color: red;
+  text-align: right;
 }
-
-div.copynotice {
-position: fixed;
-bottom: 0;
-right: 5px;
-border: none;
-}
-
-div.copynotice a {
-color: #31363b;
-}
-
-/* On small screens */
 @media (max-width: 640px) {
-  div#window-div {
-  min-width: 70%;
-  margin-top: 10px;
-  }
   div#window-footer > div {
-  display: block;
-  width: auto;
-  padding: 5px;
-  text-align: center !important;
+    display: block;
+    width: auto;
+    padding: 5px;
+    text-align: center !important;
   }
+}
+@media (max-width: 640px) {
   div#window-footer.plugbottom > div:nth-child(2) > input[type=submit] {
-  width: 100% !important;
-  }
-  p.fusiondirectoryLoginWarning {
-  margin-top: 0;
-  margin-bottom: 0;
+    width: 100% !important;
   }
 }
+span.warning,
+p.warning {
+  color: #dd0000;
+}
+div.copynotice {
+  position: fixed;
+  bottom: 0;
+  right: 5px;
+  border: none;
+}
+div.copynotice a {
+  color: #31363b;
+}
diff --git a/html/themes/breezy/menu.css b/html/themes/breezy/menu.css
index 63c1840f0af96e9290085ee3d80736e62ecfdeb2..c7bada8c4c9580398e404ae6886db59a65d2310f 100644
--- a/html/themes/breezy/menu.css
+++ b/html/themes/breezy/menu.css
@@ -1,194 +1,182 @@
 #menucell {
-border: none;
-width: 140px;
-vertical-align: top;
+  border: none;
+  width: 140px;
+  vertical-align: top;
 }
-
 /* Side menu */
-ul.menu, ul.menu ul {
- margin: 0;
- padding: 0;
- list-style-type: none;
+ul.menu {
+  font-size: 12px;
+}
+ul.menu,
+ul.menu ul {
+  margin: 0;
+  padding: 0;
+  list-style-type: none;
 }
 ul.menu li > a {
-display: block;
+  display: block;
 }
 ul.menu > li {
-margin-bottom: 5px;
-padding-bottom: 3px;
-background-color: #f3f4f4;
-border: 1px solid #c0c2c3;
+  margin-bottom: 5px;
+  padding-bottom: 3px;
+  background-color: #f3f4f4;
+  border: 1px solid #c0c2c3;
 }
 ul.menu > li > a {
-font-family: arial,helvetica,sans-serif;
-font-size: 12px;
-font-weight: bold;
-color: #31363b;
-text-decoration: none;
-background-color: #eff0f1;
-text-align: center;
-vertical-align: middle;
-margin-bottom: 3px;
-padding-bottom: 5px;
-padding-top: 5px;
-border-style: solid;
-border-color: #c0c2c3;
-border-width: 0 0 1px;
-}
-
+  font-weight: bold;
+  color: #31363b;
+  text-decoration: none;
+  background-color: #eff0f1;
+  text-align: center;
+  vertical-align: middle;
+  margin-bottom: 3px;
+  padding-bottom: 5px;
+  padding-top: 5px;
+  border-style: solid;
+  border-color: #c0c2c3;
+  border-width: 0 0 1px;
+}
 ul.menu ul > li > a {
-color: #31363b;
-text-decoration: none;
-font-weight: normal;
-font-size: 12px;
-vertical-align: middle;
-margin: 2px 0;
-padding-top: 2px;
-padding-bottom: 2px;
+  color: #31363b;
+  text-decoration: none;
+  font-weight: normal;
+  vertical-align: middle;
+  margin: 2px 0;
+  padding-top: 2px;
+  padding-bottom: 2px;
 }
 html.ltr ul.menu ul > li > a {
-text-align: left;
-padding-left: 15px;
+  text-align: left;
+  padding-left: 15px;
 }
 html.rtl ul.menu ul > li > a {
-text-align: right;
-padding-right: 15px;
+  text-align: right;
+  padding-right: 15px;
 }
-
 .menuitem.menucurrent {
-background-color: #3daee9;
+  background-color: #3daee9;
 }
 .menuitem:hover {
-background-color: #d5eaf7;
+  background-color: #d5eaf7;
 }
-
-.menuitem a:link, .menuitem a:visited {
-text-decoration: none;
-color: #31363b;
+.menuitem a:link,
+.menuitem a:visited {
+  text-decoration: none;
+  color: #31363b;
 }
-
 .menuitem a:hover {
-text-decoration: none;
+  text-decoration: none;
 }
-
 /* Main menu */
+h1.menuheader {
+  margin: 0;
+  padding: 10px;
+  display: inline-block;
+  border-bottom: 1px solid #c0c2c3;
+  background-color: #eff0f1;
+}
+html.ltr h1.menuheader {
+  border-right: 1px solid #c0c2c3;
+  border-radius: 0 0 5px 0;
+  float: left;
+}
+html.rtl h1.menuheader {
+  border-left: 1px solid #c0c2c3;
+  border-radius: 0 0 0 5px;
+  float: right;
+}
+@media (max-width: 640px) {
+  h1.menuheader {
+    display: block;
+    padding: 5px;
+    text-align: center;
+  }
+  html.ltr h1.menuheader {
+    border-right: none;
+    float: none;
+  }
+  html.rtl h1.menuheader {
+    border-left: none;
+    float: none;
+  }
+}
 .iconmenu-section {
-border-top: 1px solid #c0c2c3;
-clear: both;
+  border-top: 1px solid #c0c2c3;
+  clear: both;
 }
-
 .iconmenu-section + br {
-clear: both;
+  clear: both;
 }
-
 .iconmenu-section:first-child {
-border-top: none;
+  border-top: none;
+}
+.iconmenu {
+  cursor: pointer;
+  display: flex;
+  align-items: center;
+  width: 17%;
+  min-width: 130px;
+  margin: .5%;
+  padding: .5%;
+  border-radius: 5px;
+  border: 1px solid #f3f4f4;
 }
-
 .iconmenu .imgcontainer {
-height: 48px;
-width: 48px;
-display: flex;
-align-items: center;
-justify-content: center;
+  height: 48px;
+  width: 48px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
 }
-
 .iconmenu img {
-border: none;
-vertical-align: middle;
-flex: none;
-max-height: 48px;
-max-width: 48px;
-}
-
-h1.menuheader {
-margin: 0;
-padding: 10px;
-display: inline-block;
-border-bottom: 1px solid #c0c2c3;
-background-color: #eff0f1;
-}
-html.ltr h1.menuheader {
-border-right: 1px solid #c0c2c3;
-border-radius: 0 0 5px 0;
-float: left;
-}
-html.rtl h1.menuheader {
-border-left: 1px solid #c0c2c3;
-border-radius: 0 0 0 5px;
-float: right;
-}
-
-.iconmenu {
-cursor: pointer;
-display: flex;
-align-items: center;
-width: 17%;
-min-width: 130px;
-margin: .5%;
-padding: .5%;
-border-radius: 5px;
-border: 1px solid #f3f4f4;
+  border: none;
+  vertical-align: middle;
+  flex: none;
+  max-height: 48px;
+  max-width: 48px;
 }
 html.ltr .iconmenu {
-float: left;
-text-align: left;
+  float: left;
+  text-align: left;
 }
 html.rtl .iconmenu {
-float: right;
-text-align: right;
+  float: right;
+  text-align: right;
 }
 .iconmenu:hover {
-border: 1px solid #c0c2c3;
+  border: 1px solid #c0c2c3;
 }
-
-.iconmenu:nth-child(2) {
-clear: left;
+html.ltr .iconmenu:nth-child(2) {
+  clear: left;
 }
 html.rtl .iconmenu:nth-child(2) {
-clear: right;
+  clear: right;
 }
-
-.iconmenu > a:link, .iconmenu > a:visited {
-text-decoration: none;
-color: #31363b;
+.iconmenu > a:link,
+.iconmenu > a:visited {
+  text-decoration: none;
+  color: #31363b;
 }
-
 .iconmenu > a:hover {
-text-decoration: none;
+  text-decoration: none;
 }
-
 div.iconmenu:hover {
-background-color: #fcfcfc;
+  background-color: #fcfcfc;
 }
-
 /* On small screens */
 @media (max-width: 640px) {
   html.ltr .iconmenu,
   html.rtl .iconmenu {
-  text-align: center;
-  margin: 2px;
-  padding: 2px;
-  min-width: 70px;
-  min-height: 80px;
-  display: block;
+    text-align: center;
+    margin: 2px;
+    padding: 2px;
+    min-width: 70px;
+    min-height: 80px;
+    display: block;
   }
   .iconmenu .imgcontainer {
-  margin: auto;
-  display: block;
-  float: none;
-  }
-  h1.menuheader {
-  display: block;
-  padding: 5px;
-  text-align: center;
-  }
-  html.ltr h1.menuheader {
-  border-right: none;
-  float: none;
-  }
-  html.rtl h1.menuheader {
-  border-left: none;
-  float: none;
+    margin: auto;
+    display: block;
+    float: none;
   }
 }
diff --git a/html/themes/breezy/plugin.css b/html/themes/breezy/plugin.css
index 6615f8c3f718d00e6dcec33d89629c3b1bc57f8d..12fd99b8e6fc1cff96997a6e0756f6d9729e91fd 100644
--- a/html/themes/breezy/plugin.css
+++ b/html/themes/breezy/plugin.css
@@ -1,257 +1,300 @@
 .plugin-window {
-vertical-align: top;
-text-align: justify;
-background-color: #f3f4f4;
-margin-top: 0;
-margin-left: 0;
-margin-right: 0;
-width: auto;
-border: 1px solid #c0c2c3;
-padding: 0;
-}
-
+  vertical-align: top;
+  text-align: justify;
+  background-color: #f3f4f4;
+  margin-top: 0;
+  margin-left: 0;
+  margin-right: 0;
+  width: auto;
+  border: 1px solid #c0c2c3;
+  padding: 0;
+}
 div.pluginfo {
-border-bottom: 1px solid #c0c2c3;
-width: 100%;
-padding-top: 2px;
-padding-bottom: 2px;
-margin-bottom: 0;
-text-align: right;
-vertical-align: middle;
-background-color: #eff0f1;
-font-family: arial,helvetica,sans-serif;
-font-size: 11px;
+  border-bottom: 1px solid #c0c2c3;
+  width: 100%;
+  padding-top: 2px;
+  padding-bottom: 2px;
+  margin-bottom: 0;
+  vertical-align: middle;
+  background-color: #eff0f1;
+  font-size: 12px;
+}
+html.ltr div.pluginfo {
+  text-align: right;
 }
 html.rtl div.pluginfo {
-text-align: left;
+  text-align: left;
 }
-
+/* Common to plugins and login form */
 .plugbottom {
-border-style: solid;
-border-color: #c0c2c3;
-width: 100%;
-border-top-width: 1px;
-border-bottom-width: 0;
-border-left-width: 0;
-border-right-width: 0;
-padding-top: 10px;
-padding-bottom: 0;
-text-align: right;
-font-family: arial,helvetica,sans-serif;
-clear: both;
+  border-style: solid;
+  border-color: #c0c2c3;
+  width: 100%;
+  border-top-width: 1px;
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  padding-top: 10px;
+  padding-bottom: 0;
+  clear: both;
 }
-p.plugbottom {
-position: fixed;
-bottom: 0;
-right: 10px;
-margin: 0;
-border-radius: 5px 5px 0 0;
-width: auto;
-padding-left: 10px;
-padding-right: 10px;
-padding-bottom: 5px;
-padding-top: 5px;
-background: #e5e5e7;
+html.ltr .plugbottom {
+  text-align: right;
 }
 html.rtl .plugbottom {
-text-align: left;
+  text-align: left;
+}
+.plugbottom input[type=submit],
+.plugbottom input[type=button] {
+  min-width: 80px;
+}
+/* Specific to plugin edition */
+p.plugbottom {
+  position: fixed;
+  bottom: 0;
+  margin: 0;
+  border-radius: 5px 5px 0 0;
+  width: auto;
+  padding-left: 10px;
+  padding-right: 10px;
+  padding-bottom: 5px;
+  padding-top: 5px;
+  background: #e5e5e5;
+}
+html.ltr p.plugbottom {
+  right: 10px;
+}
+html.rtl p.plugbottom {
+  left: 10px;
 }
-
 /* Simple Plugin specific things */
-
 .plugin-sections:after {
-content: "";
-display: block;
-clear: both;
+  content: "";
+  display: block;
+  clear: both;
 }
-
 .plugin-section {
-display: block;
-float: left;
-clear: left;
-width: 49%;
-border: 1px solid #c0c2c3;
-padding: 0;
-margin-top: 0.5%;
-margin-left: 0.5%;
-margin-bottom: 0.5%;
-margin-right: 0;
-position: relative;
+  display: block;
+  width: 49%;
+  border: 1px solid #c0c2c3;
+  padding: 0;
+  margin-top: 0.5%;
+  margin-bottom: 0.5%;
+  position: relative;
+}
+html.ltr .plugin-section {
+  float: left;
+  clear: left;
+  margin-left: 0.5%;
+  margin-right: 0;
 }
 html.rtl .plugin-section {
-float: right;
-clear: right;
-margin-left: 0;
-margin-right: 0.5%;
+  float: right;
+  clear: right;
+  margin-left: 0;
+  margin-right: 0.5%;
 }
-
 html.ltr .plugin-section:nth-child(even) {
-float: right;
-clear: right;
-margin-left: 0;
-margin-right: 0.5%;
+  float: right;
+  clear: right;
+  margin-left: 0;
+  margin-right: 0.5%;
 }
 html.rtl .plugin-section:nth-child(even) {
-float: left;
-clear: left;
-margin-left: 0.5%;
-margin-right: 0;
+  float: left;
+  clear: left;
+  margin-left: 0.5%;
+  margin-right: 0;
 }
-
 div.plugin-section {
-padding-top: 25px;
+  padding-top: 25px;
 }
-
 .plugin-section > div {
-padding: 5px;
+  padding: 5px;
+}
+.plugin-section > div > table {
+  min-width: 80%;
+}
+.plugin-section > span.legend {
+  margin-top: -26px;
 }
-
 fieldset.plugin-section > div {
-padding-top: 30px;
+  padding-top: 30px;
 }
-
 fieldset.plugin-section legend {
-float: left;
-padding: 0;
-margin: 0;
-}
-html.rtl fieldset.plugin-section legend {
-float: right;
-}
-
-fieldset.plugin-section legend span, .plugin-section > span.legend {
-font-weight: bold;
-background-color: #e5e5e7;
-border: 1px solid #c0c2c3;
-width: 100%;
-padding-top: 5px;
-padding-bottom: 5px;
-text-align: center;
-display: block;
-}
-html.ltr fieldset.plugin-section legend span, html.ltr .plugin-section > span.legend {
-margin-left: -1px;
-}
-html.rtl fieldset.plugin-section legend span, html.rtl .plugin-section > span.legend {
-margin-right: -1px;
-}
-
+  padding: 0;
+  margin: 0;
+}
+html.ltr fieldset.plugin-section legend {
+  float: left;
+}
+html.ltr fieldset.plugin-section legend {
+  float: right;
+}
+fieldset.plugin-section select[multiple],
+fieldset.plugin-section textarea {
+  width: 100%;
+  min-width: 130px;
+}
+fieldset.plugin-section legend span,
+.plugin-section > span.legend {
+  font-weight: bold;
+  background-color: #e5e5e5;
+  border: 1px solid #c0c2c3;
+  width: 100%;
+  padding-top: 5px;
+  padding-bottom: 5px;
+  text-align: center;
+  display: block;
+}
+html.ltr fieldset.plugin-section legend span,
+html.ltr .plugin-section > span.legend {
+  margin-left: -1px;
+}
+html.rtl fieldset.plugin-section legend span,
+html.rtl .plugin-section > span.legend {
+  margin-right: -1px;
+}
 fieldset.plugin-section legend span {
-position: absolute;
-top: 0;
-margin-top: -1px;
+  position: absolute;
+  top: 0;
+  margin-top: -1px;
 }
 html.ltr fieldset.plugin-section legend span {
-left: 0;
+  left: 0;
 }
 html.rtl fieldset.plugin-section legend span {
-right: 0;
+  right: 0;
 }
-
-.plugin-section > span.legend {
-margin-top: -26px;
+fieldset.plugin-section legend img,
+.plugin-section span.legend img {
+  vertical-align: middle;
+}
+html.ltr fieldset.plugin-section legend img,
+html.ltr .plugin-section span.legend img {
+  margin-right: 3px;
 }
-
-fieldset.plugin-section legend img, .plugin-section span.legend img {
-vertical-align: middle;
+html.rtl fieldset.plugin-section legend img,
+html.rtl .plugin-section span.legend img {
+  margin-left: 3px;
 }
-html.ltr fieldset.plugin-section legend img, html.ltr .plugin-section span.legend img {
-margin-right: 3px;
+html.ltr .plugin-section.fullwidth,
+html.rtl .plugin-section.fullwidth {
+  float: none;
+  clear: both;
+  width: auto;
+  margin-top: 0.5%;
+  margin-left: 0.5%;
+  margin-bottom: 0.5%;
+  margin-right: 0.5%;
+}
+html.ltr .plugin-section.alone,
+html.rtl .plugin-section.alone {
+  float: none;
+  clear: both;
 }
-html.rtl fieldset.plugin-section legend img, html.rtl .plugin-section span.legend img {
-margin-left: 3px;
+html.ltr .plugin-section.invisible,
+html.rtl .plugin-section.invisible {
+  display: none;
+}
+html.ltr .plugin-section.nonreadable,
+html.rtl .plugin-section.nonreadable {
+  display: none;
+}
+html.ltr .plugin-section > div > table > tbody > tr.nonreadable,
+html.rtl .plugin-section > div > table > tbody > tr.nonreadable {
+  display: none;
+}
+html.ltr .plugin-section > div > table > tbody > tr.nonwritable.subattribute,
+html.rtl .plugin-section > div > table > tbody > tr.nonwritable.subattribute {
+  display: none;
+}
+html.ltr .plugin-section > div > table > tbody > tr.nonwritable .subattribute,
+html.rtl .plugin-section > div > table > tbody > tr.nonwritable .subattribute {
+  display: none;
+}
+html.ltr .plugin-section > div > table > tbody > tr.nonwritable input:disabled,
+html.rtl .plugin-section > div > table > tbody > tr.nonwritable input:disabled,
+html.ltr .plugin-section > div > table > tbody > tr.nonwritable select:disabled,
+html.rtl .plugin-section > div > table > tbody > tr.nonwritable select:disabled,
+html.ltr .plugin-section > div > table > tbody > tr.nonwritable textarea:disabled,
+html.rtl .plugin-section > div > table > tbody > tr.nonwritable textarea:disabled {
+  color: #31363b;
+}
+html.ltr .plugin-section > div > table > tbody > tr.required > td > label::after,
+html.rtl .plugin-section > div > table > tbody > tr.required > td > label::after {
+  content: "*";
+  color: #dd0000;
+}
+fieldset.plugin-section.critical legend span,
+.plugin-section.critical > span.legend {
+  font-weight: bold;
+  background-color: #bbccff;
 }
-
-
-fieldset.plugin-section select[multiple], fieldset.plugin-section textarea {
-width: 100%;
+fieldset.plugin-section.critical legend span:after,
+.plugin-section.critical > span.legend:after {
+  content: "   (editing this can break your LDAP)";
+  color: #dd0000;
 }
-
-.plugin-section > div > table {
-min-width: 80%;
-}
-
-html.ltr .plugin-section.fullwidth, html.rtl .plugin-section.fullwidth {
-float: none;
-clear: both;
-width: auto;
-margin-top: 0.5%;
-margin-left: 0.5%;
-margin-bottom: 0.5%;
-margin-right: 0.5%;
-}
-
-html.ltr .plugin-section.alone, html.rtl .plugin-section.alone {
-float: none;
-clear: both;
-}
-
-html.ltr .plugin-section.invisible, html.rtl .plugin-section.invisible {
-display: none;
-}
-
-fieldset.plugin-section.critical legend span, .plugin-section.critical > span.legend {
-font-weight: bold;
-background-color: #bcf;
-}
-
-fieldset.plugin-section.critical legend span:after, .plugin-section.critical > span.legend:after {
-content: "   (editing this can break your LDAP)";
-color: #d00;
-}
-
 .plugin-section.critical > div {
-background-color: #dfefff;
+  background-color: #dfefff;
 }
-
 /* On small screens */
 @media (max-width: 640px) {
   .plugin-window {
-  margin: 0;
-  border: none;
-  width: 100%;
+    margin: 0;
+    border: none;
+    width: 100%;
   }
   .plugin-section > div > table {
-  width: 100%;
+    width: 100%;
   }
-  html.ltr .plugin-section, html.ltr .plugin-section:nth-child(even), html.ltr .plugin-section.fullwidth,
-  html.rtl .plugin-section, html.rtl .plugin-section:nth-child(even), html.rtl .plugin-section.fullwidth {
-  display: block;
-  float: none;
-  clear: both;
-  width: 100%;
-  border-top: none;
-  margin: 0;
+  html.ltr .plugin-section,
+  html.ltr .plugin-section:nth-child(even),
+  html.ltr .plugin-section.fullwidth,
+  html.rtl .plugin-section,
+  html.rtl .plugin-section:nth-child(even),
+  html.rtl .plugin-section.fullwidth {
+    display: block;
+    float: none;
+    clear: both;
+    width: 100%;
+    border-top: none;
+    margin: 0;
   }
   .plugbottom {
-  text-align: center;
-  width: 100%;
-  margin: 0;
-  padding-top: 5px;
-  padding-bottom: 4px;
-  padding-left: 1px;
-  padding-right: 1px;
-  border: none;
+    text-align: center;
+    width: 100%;
+    margin: 0;
+    padding-top: 5px;
+    padding-bottom: 4px;
+    padding-left: 1px;
+    padding-right: 1px;
+    border: none;
   }
   p.plugbottom {
-  left: 5px;
-  right: 5px;
+    left: 5px;
+    right: 5px;
   }
-  .plugbottom input[type=submit], .plugbottom input[type=button] {
-  border: 1px solid #c0c2c3;
-  width: 30% !important;
-  padding: 10px;
-  display: inline-block;
-  font-weight: bold;
+  .plugbottom input[type=submit],
+  .plugbottom input[type=button] {
+    border: 1px solid #c0c2c3;
+    width: 30% !important;
+    padding: 10px;
+    display: inline-block;
+    font-weight: bold;
   }
-  .plugbottom input[type=submit]:active, .plugbottom input[type=button]:active {
-  position: relative;
-  top: 1px;
+  .plugbottom input[type=submit]:active,
+  .plugbottom input[type=button]:active {
+    position: relative;
+    top: 1px;
   }
-  html.ltr .plugbottom input[type=submit]:active, html.ltr .plugbottom input[type=button]:active {
-  left: 1px;
+  html.ltr .plugbottom input[type=submit]:active,
+  html.ltr .plugbottom input[type=button]:active {
+    left: 1px;
   }
-  html.rtl .plugbottom input[type=submit]:active, html.rtl .plugbottom input[type=button]:active {
-  right: 1px;
+  html.rtl .plugbottom input[type=submit]:active,
+  html.rtl .plugbottom input[type=button]:active {
+    right: 1px;
   }
 }
diff --git a/html/themes/breezy/setup.css b/html/themes/breezy/setup.css
index beeb4b4d7fa3277a2c6f44bc0f0cf05127df7f24..c5a4cf5699a1c9d5c87b8be5f36cd6dcf02447ec 100644
--- a/html/themes/breezy/setup.css
+++ b/html/themes/breezy/setup.css
@@ -2,173 +2,154 @@
  * Setup
  *********/
 html.ltr body.setup div#header-left .plugtop {
-margin-left: 80px;
+  margin-left: 80px;
 }
 html.rtl body.setup div#header-left .plugtop {
-margin-right: 80px;
+  margin-right: 80px;
 }
 body.setup .plugin-window {
-border-radius: 5px;
+  border-radius: 5px;
 }
-
 /* default.*/
 div.default {
-padding: 2px 10px;
-vertical-align: middle;
+  padding: 2px 10px;
+  vertical-align: middle;
 }
-
 #menucell.setup-navigation {
-width: 200px;
+  width: 200px;
 }
-
-/* The box used for each setup step */
 #menucell.setup-navigation li.menuitem {
-text-decoration: none;
-padding-top: 8px;
-padding-bottom: 8px;
-margin-top: 5px;
-margin-bottom: 5px;
+  /* The box used for each setup step */
+  text-decoration: none;
+  padding-top: 8px;
+  padding-bottom: 8px;
+  margin-top: 5px;
+  margin-bottom: 5px;
 }
 #menucell.setup-navigation li.menuitem > a {
-margin: 0;
+  margin: 0;
 }
-
-/* An enabled setup step will use this style in navigation*/
 #menucell.setup-navigation li.menuitem.menucurrent a.navigation-title {
-cursor: default;
+  /* An enabled setup step will use this style in navigation */
+  cursor: default;
 }
-
-/* Disabled setup steps */
 #menucell.setup-navigation li.menuitem.disabled a.navigation-title {
-cursor: default;
-color: #c0c2c3;
+  /* Disabled setup steps */
+  cursor: default;
+  color: #c0c2c3;
 }
-
-/* Disabled setup steps */
 #menucell.setup-navigation li.menuitem a.navigation-title {
-font-size: 1.2em;
-font-weight: bold;
-text-decoration: none;
-cursor: pointer;
-padding-top: 3px;
-padding-bottom: 3px;
-}
-
-/* The style for the info of an active setup */
+  /* Setup steps */
+  color: #31363b;
+  font-size: 14px;
+  font-weight: bold;
+  text-decoration: none;
+  cursor: pointer;
+  padding-top: 3px;
+  padding-bottom: 3px;
+}
 #menucell.setup-navigation li.menuitem a.navigation-info {
-font-size: 1em;
-color: #31363b;
-margin: 0;
-cursor: default;
+  /* The style for the info of an active setup */
+  font-size: 12px;
+  color: #31363b;
+  margin: 0;
+  cursor: default;
 }
 html.ltr #menucell.setup-navigation li.menuitem a.navigation-info {
-padding: 4px 4px 3px 15px;
+  padding: 4px 4px 3px 15px;
 }
 html.rtl #menucell.setup-navigation li.menuitem a.navigation-info {
-padding: 4px 15px 3px 4px;
+  padding: 4px 15px 3px 4px;
 }
-
 .setup-language select#lang_selected {
-width: 100%;
+  width: 100%;
 }
-
 /*
   Setup step 2 styles
 */
 /* used to hide display info div */
 div.solution-visible {
-display: block;
-width: 100%;
-text-align: left;
+  display: block;
+  width: 100%;
+}
+html.ltr div.solution-visible {
+  text-align: left;
 }
 html.rtl div.solution-visible {
-text-align: right;
+  text-align: right;
 }
-
 /* Container for name and status */
 div.step2-entry-container {
-padding: 3px;
-width: 99%;
-cursor: default;
+  padding: 3px;
+  width: 99%;
+  cursor: default;
 }
-
 /* Container for name and status, when status is failed */
 div.step2-entry-container-info {
-padding: 3px;
-border: 1px solid #c0c2c3;
-width: 99%;
-cursor: default;
+  padding: 3px;
+  border: 1px solid #c0c2c3;
+  width: 99%;
+  cursor: default;
 }
-
 /* Text shown for each entry */
 div.step2-entry-name {
-float: left;
-padding-bottom: 4px;
-vertical-align: middle;
+  padding-bottom: 4px;
+  vertical-align: middle;
+}
+html.ltr div.step2-entry-name {
+  float: left;
 }
 html.rtl div.step2-entry-name {
-float: right;
+  float: right;
 }
-
 /* Status container */
 div.step2-entry-status {
-float: none;
-text-align: right;
-padding-bottom: 4px;
-vertical-align: middle;
+  float: none;
+  padding-bottom: 4px;
+  vertical-align: middle;
+}
+html.ltr div.step2-entry-status {
+  text-align: right;
 }
 html.rtl div.step2-entry-status {
-text-align: left;
+  text-align: left;
 }
-
 /* Status failed */
 div.step2-failed {
-color: red;
-padding-bottom: 4px;
+  color: #dd0000;
+  padding-bottom: 4px;
 }
-
 /* Status failed but not necessary for setup */
 div.step2-warning {
-color: orange;
-padding-bottom: 4px;
+  color: orange;
+  padding-bottom: 4px;
 }
-
 /* Status successful */
 div.step2-successful {
-color: green;
+  color: #378a00;
 }
-
 /* Text used in info div. */
-div.step2-failed-text {
-background-repeat: no-repeat;
-}
-html.ltr div.step2-failed-text {
-padding-left: 25px;
-}
-html.rtl div.step2-failed-text {
-padding-right: 25px;
-}
-
-/* Text used in info div. On warnings */
+div.step2-failed-text,
 div.step2-warning-text {
-background-repeat: no-repeat;
+  background-repeat: no-repeat;
 }
+html.ltr div.step2-failed-text,
 html.ltr div.step2-warning-text {
-padding-left: 25px;
+  padding-left: 25px;
 }
+html.rtl div.step2-failed-text,
 html.rtl div.step2-warning-text {
-padding-right: 25px;
+  padding-right: 25px;
 }
-
 /* On small screens */
 @media (max-width: 640px) {
   body.setup a.plugtop img {
-  height: 32px;
+    height: 32px;
   }
   html.ltr body.setup div#header-left .plugtop {
-  margin-left: 0;
+    margin-left: 0;
   }
   html.rtl body.setup div#header-left .plugtop {
-  margin-right: 0;
+    margin-right: 0;
   }
 }
diff --git a/html/themes/breezy/style.css b/html/themes/breezy/style.css
index 582e6c1bb7f85b4258499190861ec510820c7177..968f3dc926cb355c2a32b779d6ccdb37edff4c3a 100644
--- a/html/themes/breezy/style.css
+++ b/html/themes/breezy/style.css
@@ -1,706 +1,558 @@
 body {
-margin: 0;
-background-color: #eff0f1;
-color: #31363b;
-font-family: arial,helvetica,sans-serif;
-font-size: 12px;
+  margin: 0;
+  background-color: #eff0f1;
+  color: #31363b;
+  font-family: arial, helvetica, sans-serif;
+  font-size: 12px;
 }
-
 h1 {
-font-size: 14px;
-color: #31363b;
-}
-
-h2,h3,h4,h5,h6 {
-font-size: 13px;
-color: #31363b;
-}
-
-td,p,b,th {
-font-size: 12px;
+  font-size: 14px;
+  color: #31363b;
+}
+h2,
+h3,
+h4,
+h5,
+h6 {
+  font-size: 13px;
+  color: #31363b;
+}
+td,
+p,
+b,
+th {
+  font-size: 12px;
 }
-
 img {
-border: none;
-}
-
-a:link {
-text-decoration: none;
-color: #31363b;
+  border: none;
 }
-
+a:link,
 a:visited {
-text-decoration: none;
-color: #31363b;
+  text-decoration: none;
+  color: #31363b;
 }
-
 td.listfooter {
-background: #e5e5e5;
-border-top: 1px solid #c0c2c3;
-padding: 3px;
-height: 16px;
+  background: #e5e5e5;
+  border-top: 1px solid #c0c2c3;
+  padding: 3px;
+  height: 16px;
 }
-
-td.scrollhead {
-vertical-align: top;
-padding: 0;
-}
-
+td.scrollhead,
 td.scrollbody {
-vertical-align: top;
-padding: 0;
+  vertical-align: top;
+  padding: 0;
 }
-
 div.scrollbody {
-background-color: #fcfcfc;
-overflow: auto;
-text-align: left;
+  background-color: #fcfcfc;
+  overflow: auto;
+}
+html.ltr div.scrollbody {
+  text-align: left;
 }
 html.rtl div.scrollbody {
-text-align: right;
+  text-align: right;
 }
-
 /* Title bar */
-a.maintitlebar,div.maintitlebar {
-font-family: arial,helvetica,sans-serif;
-text-decoration: none;
-font-size: 12px;
-text-align: center;
-vertical-align: middle;
-cursor: pointer;
-display: inline-block;
-padding: 2px;
-border: 1px solid #eff0f1;
-border-radius: 8px;
-}
-
-a.maintitlebar:link,div.maintitlebar:link {
-text-decoration: none;
-color: #2980b9;
-}
-
-a.maintitlebar:visited,div.maintitlebar:visited {
-text-decoration: none;
-color: #2980b9;
-}
-
-
-html.ltr a.maintitlebar,html.ltr div.maintitlebar {
-padding-right: 5px;
-}
-html.rtl a.maintitlebar,html.rtl div.maintitlebar {
-padding-left: 5px;
-}
-
-a.maintitlebar:hover {
-text-decoration: none;
-background-color: #f3f4f4;
-cursor: pointer;
-border: 1px solid #c0c2c3;
+a.maintitlebar,
+div.maintitlebar {
+  text-decoration: none;
+  font-size: 12px;
+  text-align: center;
+  vertical-align: middle;
+  cursor: pointer;
+  display: inline-block;
+  padding: 2px;
+  border: 1px solid #eff0f1;
+  border-radius: 8px;
+}
+a.maintitlebar:link,
+div.maintitlebar:link,
+a.maintitlebar:visited,
+div.maintitlebar:visited {
+  text-decoration: none;
+  color: #2980b9;
 }
-
-td.phonelist:hover {
-background-color: #d2d2d2;
+html.ltr a.maintitlebar,
+html.ltr div.maintitlebar {
+  padding-right: 5px;
 }
-
-td.phonelist {
-border-right: 1px solid #c0c2c3;
+html.rtl a.maintitlebar,
+html.rtl div.maintitlebar {
+  padding-left: 5px;
+}
+a.maintitlebar:hover {
+  text-decoration: none;
+  background-color: #f3f4f4;
+  cursor: pointer;
+  border: 1px solid #c0c2c3;
 }
-
 div.copynotice {
-border-style: solid;
-border-color: #c0c2c3;
-width: 100%;
-border-top-width: 1px;
-border-bottom-width: 0;
-border-left-width: 0;
-border-right-width: 0;
-padding-top: 3px;
-padding-bottom: 0;
-text-align: right;
-font-family: arial,helvetica,sans-serif;
-font-size: 10px;
+  border-style: solid;
+  border-color: #c0c2c3;
+  width: 100%;
+  border-top-width: 1px;
+  border-bottom-width: 0;
+  border-left-width: 0;
+  border-right-width: 0;
+  padding-top: 3px;
+  padding-bottom: 0;
+  font-size: 10px;
+}
+html.ltr div.copynotice {
+  text-align: right;
 }
 html.rtl div.copynotice {
-text-align: left;
+  text-align: left;
 }
-
 hr {
-width: 100%;
-border: none;
-background-color: #c0c2c3;
-height: 1px;
-}
-
-.must {
-color: red;
-font-family: arial,helvetica,sans-serif;
+  width: 100%;
+  border: none;
+  background-color: #c0c2c3;
+  height: 1px;
 }
-
 img.center {
-text-align: center;
-vertical-align: middle;
-}
-
-input.center {
-text-align: left;
-vertical-align: middle;
-}
-html.rtl input.center {
-text-align: right;
-}
-
-select.center {
-text-align: left;
-vertical-align: middle;
-}
-html.rtl select.center {
-text-align: right;
+  text-align: center;
+  vertical-align: middle;
 }
-
+input.center,
+select.center,
 a.center {
-text-align: left;
-vertical-align: middle;
+  vertical-align: middle;
+}
+html.ltr input.center,
+html.ltr select.center,
+html.ltr a.center {
+  text-align: left;
 }
+html.rtl input.center,
+html.rtl select.center,
 html.rtl a.center {
-text-align: right;
+  text-align: right;
 }
-
 /********************** Template migration *********************/
-
 form#mainform {
-margin: 0;
+  margin: 0;
 }
-
 table.framework {
-height: auto;
-width: 100%;
-border: 0;
-border-spacing: 5px;
-padding: 0;
-margin-top: 0;
-vertical-align: top;
+  height: auto;
+  width: 100%;
+  border: 0;
+  border-spacing: 5px;
+  padding: 0;
+  margin-top: 0;
+  vertical-align: top;
 }
 html.ltr table.framework {
-margin-left: 0;
+  margin-left: 0;
 }
 html.rtl table.framework {
-margin-right: 0;
+  margin-right: 0;
 }
-
 table.framework td#maincell {
-background-color: #eff0f1;
-width: auto;
-vertical-align: top;
-padding-bottom: 35px;
+  background-color: #eff0f1;
+  width: auto;
+  vertical-align: top;
+  padding-bottom: 35px;
 }
-
-/* cellpadding="0" */
 table.framework > tbody > tr > td {
-padding: 0;
-}
-
-table.maintab {
-width: 100%;
-height: 100%;
-border: 0;
-border-spacing: 0;
-padding: 0;
-margin: 0;
-background-color: #507aaa;
-vertical-align: top;
-}
-
+  /* cellpadding="0" */
+  padding: 0;
+}
 div.contentboxh {
-background-color: #f0f0f0;
-border: 1px solid #c0c2c3;
-border-bottom: none;
-height: 26px;
-vertical-align: middle;
-width: auto;
-}
-
+  background-color: #f0f0f0;
+  border: 1px solid #c0c2c3;
+  border-bottom: none;
+  height: 26px;
+  vertical-align: middle;
+  width: auto;
+}
 div.contentboxh > p {
-margin: 2px;
-font-family: arial,helvetica,sans-serif;
-font-size: 16px;
-font-weight: bold;
-vertical-align: middle;
+  margin: 2px;
+  font-size: 16px;
+  font-weight: bold;
+  vertical-align: middle;
 }
-
 div.contentboxb {
-border: 1px solid #c0c2c3;
-border-top-width: 0;
-vertical-align: middle;
-width: auto;
-background: #fcfcfc;
-padding: 5px;
+  border: 1px solid #c0c2c3;
+  border-top-width: 0;
+  vertical-align: middle;
+  width: auto;
+  background: #fcfcfc;
+  padding: 5px;
 }
 .filter div.contentboxb {
-padding: 0;
+  padding: 0;
+  padding-top: 3px;
+}
+.filter div.contentboxb label img,
+.filter div.contentboxb label input[type=checkbox] {
+  vertical-align: middle;
+  padding: 0;
+  margin: 0;
+}
+.filter div.contentboxb > label {
+  display: block;
+  margin: 5px;
+}
+.filter div.contentboxb > fieldset > label {
+  display: block;
+  margin: 5px 0 0 0;
+}
+.filter div.contentboxb > hr {
+  margin-bottom: 3px;
 }
 div.contentboxb > div {
-display: inline-block;
-margin: 1px;
+  display: inline-block;
+  margin: 1px;
 }
 .filter div.contentboxb > div {
-width: 100%;
-background: #eeeeee;
-border-top: 1px solid #c0c2c3;
-text-align: right;
-margin: 0;
-padding: 3px;
-box-sizing: border-box;
-}
-.filter div.contentboxb > label img {
-vertical-align: middle;
-padding: 3px;
+  width: 100%;
+  background: #e5e5e5;
+  border-top: 1px solid #c0c2c3;
+  text-align: right;
+  margin: 0;
+  padding: 3px;
+  box-sizing: border-box;
+}
+div.contentboxb > img,
+div.contentboxb > input {
+  display: inline-block;
+  margin: 3px;
 }
-.filter div.contentboxb > hr {
-margin-bottom: 3px;
-}
-div.contentboxb > img, div.contentboxb > input {
-display: inline-block;
-margin: 3px;
-}
-
-p.contentboxb {
-padding-bottom: 0;
-margin: 0;
-border: 4px solid #f8f8f8;
-vertical-align: middle;
-}
-
-a.alphaselect:hover {
-text-decoration: none;
-background-color: #a0a0a0;
-color: #fcfcfc;
-}
-
-table.check {
-background-color: #e1e1f1;
-color: #31363b;
-border: 1px solid #c0c2c3;
-width: 95%;
-}
-html.ltr table.check {
-margin-left: 20px;
-}
-html.rtl table.check {
-margin-right: 20px;
-}
-
-html.ltr td.check {
-border-right: 1px solid #c0c2c3;
-}
-html.rtl td.check {
-border-left: 1px solid #c0c2c3;
-}
-
 option.select {
-background-repeat: no-repeat;
-background-position: 0 top;
-border: 0;
-padding-bottom: 1px;
-height: 18px;
+  background-repeat: no-repeat;
+  background-position: 0 top;
+  border: 0;
+  padding-bottom: 1px;
+  height: 18px;
 }
 html.ltr option.select {
-padding-left: 20px;
+  padding-left: 20px;
 }
 html.rtl option.select {
-padding-right: 20px;
+  padding-right: 20px;
 }
-
-
 td.tbhead {
-border-bottom: 1px solid #c0c2c3;
+  border-bottom: 1px solid #c0c2c3;
 }
 html.ltr td.tbhead {
-border-right: 1px solid #c0c2c3;
+  border-right: 1px solid #c0c2c3;
 }
 html.rtl td.tbhead {
-border-left: 1px solid #c0c2c3;
+  border-left: 1px solid #c0c2c3;
 }
-
 td.tbrhead {
-border-bottom: 1px solid #c0c2c3;
-}
-
-.item {
-text-align: left;
-white-space: nowrap;
-font-family: "bitstream vera sans", "luxi sans", verdana, geneva, arial, helvetica, sans-serif;
-font-size: 12px;
-padding-top: 2px;
-}
-html.rtl .item {
-text-align: right;
-}
-
-.item div {
-position: relative;
-display: block;
-text-decoration: none;
-}
-
-.item :hover {
-color: #fcfcfc;
-background-color: #4b6983;
-text-decoration: none;
-}
-
+  border-bottom: 1px solid #c0c2c3;
+}
 .separator {
-background-color: red;
-border-top: 1px solid #c6c6bf;
-border-bottom: 1px solid #fcfcfc;
-margin: 2px 5px;
-/* top right bottom left */
-height: 0;
-font-size: 1px;
-line-height: 0;
-}
-
+  border-top: 1px solid #c0c2c3;
+  border-bottom: 1px solid #fcfcfc;
+  margin: 2px 5px;
+  /* top right bottom left */
+  height: 0;
+  font-size: 1px;
+  line-height: 0;
+}
 div.autocomplete {
-position: absolute;
-background-color: #fcfcfc;
-border: 1px solid #c0c2c3;
-margin: 0;
-padding: 0;
-z-index: 600;
-overflow: hidden;
-word-wrap: break-word;
-}
-
+  position: absolute;
+  background-color: #fcfcfc;
+  border: 1px solid #c0c2c3;
+  margin: 0;
+  padding: 0;
+  z-index: 600;
+  overflow: hidden;
+  word-wrap: break-word;
+}
 div.autocomplete ul {
-list-style-type: none;
-margin: 0;
-padding: 0;
+  list-style-type: none;
+  margin: 0;
+  padding: 0;
 }
-
 div.autocomplete ul li {
-list-style-type: none;
-display: block;
-margin: 0;
-padding: 2px;
-cursor: pointer;
+  list-style-type: none;
+  display: block;
+  margin: 0;
+  padding: 2px;
+  cursor: pointer;
 }
 html.ltr div.autocomplete ul li {
-padding-left: 4px;
+  padding-left: 4px;
 }
 html.rtl div.autocomplete ul li {
-padding-right: 4px;
+  padding-right: 4px;
 }
-
-
-div.autocomplete li:hover {
-background-color: #f0f0f0;
+div.autocomplete ul li:hover {
+  background-color: #dddddd;
 }
-
 div.autocomplete ul li.selected {
-background-color: #f0f0f0;
+  background-color: #dddddd;
 }
-
 #pulldown {
-background: #fcfcfc;
-height: 23px;
-border-top: 1px #c0c2c3 solid;
-border-bottom: 1px #c0c2c3 solid;
-}
-html.ltr #pulldown {
-border-left: 1px #c0c2c3 solid;
-border-right: 1px #c0c2c3 solid;
-}
-html.rtl #pulldown {
-border-right: 1px #c0c2c3 solid;
-border-left: 1px #c0c2c3 solid;
+  background: #fcfcfc;
+  height: 23px;
+  border: 1px #c0c2c3 solid;
 }
-
 #pulldown ul {
-display: block;
-margin: 0;
-padding: 0;
-line-height: 1em;
-list-style: none;
-z-index: 90;
-}
-
-#pulldown ul li {
-margin: 0 3px 0 0;
-padding: 0;
-font-size: 12px;
-line-height: 1em;
-list-style-type: none;
+  display: block;
+  margin: 0;
+  padding: 0;
+  line-height: 1em;
+  list-style: none;
+  z-index: 90;
 }
-html.rtl #pulldown ul li {
-margin: 0 0 0 3px;
+#pulldown ul li {
+  padding: 0;
+  font-size: 12px;
+  line-height: 1em;
+  list-style-type: none;
 }
-
 #pulldown ul li a {
-float: left;
-display: block;
-width: auto;
-font-weight: normal;
-background: transparent;
-text-decoration: none;
-margin: 0;
-padding: 5px;
-}
-html.rtl #pulldown ul li a {
-float: right;
-}
-
+  display: block;
+  width: auto;
+  font-weight: normal;
+  background: transparent;
+  text-decoration: none;
+  margin: 0;
+  padding: 5px;
+}
 #pulldown ul li a:hover {
-text-decoration: none;
+  text-decoration: none;
 }
-
-#pulldown ul li.sep {
-color: #c0c2c3;
-padding: .8em 0 .5em;
+#pulldown ul li img {
+  vertical-align: middle;
 }
-
-/* Commented Backslash Hack hides rule from IE5-Mac \*/
-#pulldown ul li a {
-float: none;
+#pulldown ul li.sep {
+  color: #c0c2c3;
+  padding: .8em 0 .5em;
 }
-
-/* End IE5-Mac hack */
 #pulldown ul ul {
-position: absolute;
-top: 0;
-left: 0;
-visibility: hidden;
-border-top: 1px #c0c2c3 solid;
-border-left: 1px #c0c2c3 solid;
-border-bottom: 1px #c0c2c3 solid;
-border-right: 1px #c0c2c3 solid;
-background: #fcfcfc;
-}
-
+  position: absolute;
+  top: 0;
+  left: 0;
+  visibility: hidden;
+  border-top: 1px #c0c2c3 solid;
+  border-left: 1px #c0c2c3 solid;
+  border-bottom: 1px #c0c2c3 solid;
+  border-right: 1px #c0c2c3 solid;
+  background: #fcfcfc;
+}
 #pulldown ul ul li {
-border-bottom: 1px solid #fcfcfc;
-float: none;
-margin: 0;
-padding: 0;
-width: 200px;
+  border-bottom: 1px solid #fcfcfc;
+  float: none;
+  margin: 0;
+  padding: 0;
+  width: 200px;
 }
-
 #pulldown ul ul li a {
-padding: 5px 9px 5px 5px;
+  padding: 5px 9px 5px 5px;
 }
-
 #pulldown ul ul li a:hover {
-font-weight: normal;
-background-color: #d5eaf7;
-background-image: none;
+  font-weight: normal;
+  background-color: #d5eaf7;
+  background-image: none;
 }
-
 span.informal {
-color: #444;
-font-style: italic;
+  color: #444444;
+  font-style: italic;
 }
-
 span.mark {
-color: #b22;
+  color: #dd0000;
 }
-
-#debug-handling {
-border-color: #ddd;
+/* Header */
+html.ltr div#header-left {
+  float: left;
 }
-.error, .notice, .success, .info {
-border: 2px solid #c0c2c3;
-margin: .2em;
-padding: .3em;
+html.ltr div#header-left .plugtop,
+html.ltr div#header-left .logout {
+  margin-left: 35px;
 }
-.error {
-background: #fbe3e4;
-color: #8a1f11;
-border-color: #fbc2c4;
+html.rtl div#header-left {
+  float: right;
 }
-.error h1,.error h2,.error h3,.error h4,.error h5,.error h6 {
-color: #8a3700;
+html.rtl div#header-left .plugtop,
+html.rtl div#header-left .logout {
+  margin-right: 35px;
 }
-.notice {
-background: #fff6bf;
-color: #514721;
-border-color: #ffd324;
+div#header-left img {
+  vertical-align: middle;
 }
-.notice h1,.notice h2,.notice h3,.notice h4,.notice h5,.notice h6 {
-color: #412701;
+html.ltr div#header-left img#fd-logo {
+  padding-left: 2px;
+  padding-right: 25px;
 }
-.success {
-background: #f3f4f4;
-color: #264409;
-border-color: #f3f4f4;
+html.rtl div#header-left img#fd-logo {
+  padding-left: 25px;
+  padding-right: 2px;
 }
-.success h1,.success h2,.success h3,.success h4,.success h5,.success h6 {
-color: #378a00;
+.plugtop {
+  color: #31363b;
+  border: 1px solid #c0c2c3;
+  padding: 10px;
+  margin: 0;
+  text-align: center;
+  vertical-align: middle;
+  background-color: #f3f4f4;
+  font-size: 18px;
 }
-.info {
-background: #d5edf8;
-color: #205791;
-border-color: #92cae4;
+.plugtop img {
+  height: 32px;
 }
-.info h1,.info h2,.info h3,.info h4,.info h5,.info h6 {
-color: #31363b;
+html.ltr .plugtop img {
+  margin-right: 4px;
 }
-
-/* Header */
-
-html.ltr div#header-left {
-float: left;
+html.rtl .plugtop img {
+  margin-left: 4px;
 }
-html.rtl div#header-left {
-float: right;
+div#header-right {
+  padding-top: 8px;
+  height: 38px;
+  color: #31363b;
 }
-
-
-.plugtop {
-color: #31363b;
-border: 1px solid #c0c2c3;
-padding: 10px;
-margin: 0;
-text-align: center;
-vertical-align: middle;
-background-color: #f3f4f4;
-font-family: arial,helvetica,sans-serif;
-font-size: 18px;
+html.ltr div#header-right {
+  text-align: right;
 }
-.plugtop img {
-height: 32px;
+html.rtl div#header-right {
+  text-align: left;
 }
-html.ltr .plugtop img {
-margin-right: 4px;
+div#header-right div.version {
+  font-size: 20px;
 }
-html.rtl .plugtop img {
-margin-left: 4px;
+/* Header col */
+div.setup-header {
+  background-color: #eff0f1;
+  padding: 4px 5px 4px;
+  color: #31363b;
 }
-html.ltr div#header-left .plugtop {
-margin-left: 35px;
+/*** ACL edition ***/
+div.acledition div.togglebuttons input {
+  width: 100px;
 }
-html.rtl div#header-left .plugtop {
-margin-right: 35px;
+div.acledition div.setbuttons input {
+  width: 50px;
 }
-
-div#header-left img {
-vertical-align: middle;
+div.acledition > table {
+  width: 100%;
+  border: 1px solid #c0c2c3;
+  border-spacing: 0;
+  border-collapse: collapse;
+  margin-top: 10px;
 }
-
-html.ltr div#header-left img#fd-logo {
-padding-left: 2px;
-padding-right: 25px;
+div.acledition > table input[type=checkbox] {
+  vertical-align: middle;
 }
-html.rtl div#header-left img#fd-logo {
-padding-left: 25px;
-padding-right: 2px;
+div.acledition > table > tbody > tr:nth-child(1) > td {
+  background-color: #e5e5e5;
+  border-bottom: 1px solid #c0c2c3;
 }
-
-html.ltr div#header-left .logout {
-margin-left: 35px;
+div.acledition > table > tbody > tr:nth-child(1) > td:nth-child(1) {
+  padding-top: 5px;
+  padding-bottom: 5px;
 }
-html.rtl div#header-left .logout {
-margin-right: 35px;
+html.ltr div.acledition > table > tbody > tr:nth-child(1) > td:nth-child(1) {
+  padding-left: 5px;
 }
-
-div#header-right {
-padding-top: 8px;
-height: 38px;
-color: #31363b;
+html.rtl div.acledition > table > tbody > tr:nth-child(1) > td:nth-child(1) {
+  padding-right: 5px;
 }
-html.ltr div#header-right {
-text-align: right;
+div.acledition > table.expand > tbody > tr:nth-child(1) > td {
+  background-color: #bbccff;
 }
-html.rtl div#header-right {
-text-align: left;
+div.acledition > table > tbody > tr:nth-child(3) {
+  vertical-align: top;
+  height: 0px;
 }
-div#header-right div.version {
-font-size: 20px;
+div.acledition > table > tbody > tr:nth-child(3) > td > div {
+  width: 100%;
 }
-
-/* Header col */
-div.setup-header {
-background-color: #eff0f1;
-padding: 4px 5px 4px;
-color: #31363b;
+div.acledition > table > tbody > tr:nth-child(3) > td > div > table {
+  width: 100%;
+  border-collapse: collapse;
+  border: 1px solid;
+}
+div.acledition > table > tbody > tr:nth-child(3) > td > div > table > tbody > tr > td {
+  border: 1px solid #c0c2c3;
+  width: 33%;
 }
-
 /* On small screens */
 @media (max-width: 640px) {
   div.setup-header {
-  padding: 2px;
-  height: 36px;
+    padding: 2px;
+    height: 36px;
   }
   a.maintitlebar {
-  width: 36px;
-  height: 36px;
-  overflow: hidden;
-  display: block;
+    width: 36px;
+    height: 36px;
+    overflow: hidden;
+    display: block;
   }
   html.ltr a.maintitlebar {
-  float: left;
-  margin: 0;
-  padding: 0;
+    float: left;
+    margin: 0;
+    padding: 0;
   }
   html.rtl a.maintitlebar {
-  float: right;
-  margin: 0;
+    float: right;
+    margin: 0;
   }
   a.maintitlebar img {
-  padding: 6px;
-  width: 22px;
-  height: 22px;
+    padding: 6px;
+    width: 22px;
+    height: 22px;
   }
   html.ltr div#header-left .logout {
-  margin-left: 0;
-  float: right;
+    margin-left: 0;
+    float: right;
   }
   html.rtl div#header-left .logout {
-  margin-right: 0;
-  float: left;
+    margin-right: 0;
+    float: left;
   }
-  html.ltr div#header-left, html.rtl div#header-left {
-  height: 40px;
-  width: 100%;
+  html.ltr div#header-left,
+  html.rtl div#header-left {
+    height: 40px;
+    width: 100%;
   }
-  html.ltr div#header-right, html.rtl div#header-right {
-  padding-top: 8px;
-  height: 30px;
-  margin-top: -40px;
-  width: 100%;
+  html.ltr div#header-right,
+  html.rtl div#header-right {
+    padding-top: 8px;
+    height: 30px;
+    margin-top: -40px;
+    width: 100%;
   }
   div#header-right a {
-  background: #eff0f1;
+    background: #eff0f1;
   }
   .optional {
-  display: none !important;
+    display: none !important;
   }
   div#header-left .plugtop {
-  display: inline-block;
-  hyphens: none;
-  overflow: hidden;
-  white-space: nowrap;
-  padding-top: 2px;
-  padding-bottom: 2px;
-  font-size: 1em;
+    display: inline-block;
+    hyphens: none;
+    overflow: hidden;
+    white-space: nowrap;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    font-size: 12px;
   }
   html.ltr div#header-left .plugtop {
-  margin: 0;
-  padding-left: 6px;
+    margin: 0;
+    padding-left: 6px;
   }
   html.rtl div#header-left .plugtop {
-  margin: 0;
-  padding-right: 6px;
+    margin: 0;
+    padding-right: 6px;
   }
   div.logout-label {
-  display: inline-block;
-  vertical-align: middle;
+    display: inline-block;
+    vertical-align: middle;
   }
   table.framework {
-  margin: 0;
-  border: none;
-  width: 100%;
-  border-spacing: 0;
+    margin: 0;
+    border: none;
+    width: 100%;
+    border-spacing: 0;
   }
   table.framework #maincell {
-  padding-bottom: 55px;
+    padding-bottom: 55px;
   }
 }
diff --git a/html/themes/breezy/tabs.css b/html/themes/breezy/tabs.css
index 9331980973701b5aa90f80cf0223da758e506ba7..00752398199214e6496f5db3206a34db6f4bab3d 100644
--- a/html/themes/breezy/tabs.css
+++ b/html/themes/breezy/tabs.css
@@ -1,105 +1,95 @@
 table.tabs-header {
-width: 100%;
-border: none;
-border-spacing: 0;
-font-family: arial,helvetica,sans-serif;
-text-decoration: none;
-color: #2980b9;
-font-size: 13px;
-font-weight: bold;
-}
-
-/* tabs header */
+  width: 100%;
+  border: none;
+  border-spacing: 0;
+  text-decoration: none;
+  color: #2980b9;
+  font-size: 13px;
+  font-weight: bold;
+}
 table.tabs-header > tbody > tr > td {
-padding: 0;
-vertical-align: bottom;
-white-space: nowrap;
-width: 1px;
+  padding: 0;
+  vertical-align: bottom;
+  white-space: nowrap;
+  width: 1px;
 }
 table.tabs-header > tbody > tr > td:last-child {
-width: auto;
+  width: auto;
+}
+table.tabs-header > tbody > tr > td.nonreadable {
+  display: none;
 }
-
 table.tabs-header > tbody > tr > td > div > a {
-display: inline-block;
-border-radius: 5px 5px 0 0;
-text-align: center;
-background-color: #d0d0d0;
-border: 1px solid #999;
-margin-top: 5px;
-padding-top: 1px;
-padding-left: 8px;
-padding-right: 8px;
-padding-bottom: 5px;
-transition: margin .4s ease, padding .4s ease;
+  display: inline-block;
+  border-radius: 5px 5px 0 0;
+  text-align: center;
+  background-color: #d0d0d0;
+  border: 1px solid #999999;
+  margin-top: 5px;
+  padding-top: 1px;
+  padding-left: 8px;
+  padding-right: 8px;
+  padding-bottom: 5px;
+  transition: margin .4s ease, padding .4s ease;
 }
 table.tabs-header > tbody > tr > td > div > a:hover {
-margin-top: 0;
-padding-top: 2px;
-padding-bottom: 7px;
+  margin-top: 0;
+  padding-top: 2px;
+  padding-bottom: 7px;
 }
-
 table.tabs-header > tbody > tr > td > div.tab-active > a {
-background-color: #f8f8f8;
-border-bottom: 0;
-margin-top: 2px;
-padding-top: 2px;
-padding-bottom: 8px;
+  background-color: #f8f8f8;
+  border-bottom: 0;
+  margin-top: 2px;
+  padding-top: 2px;
+  padding-bottom: 8px;
 }
-
 table.tabs-header > tbody > tr > td > div.tab-inactive > a {
-color: grey;
-font-weight: normal;
+  color: #808080;
+  font-weight: normal;
 }
-
 table.tabs-header > tbody > tr > td > div.tab-disabled > a {
-color: grey;
+  color: #808080;
 }
 table.tabs-header > tbody > tr > td > div.tab-disabled > a:hover {
-margin-top: 5px;
-padding-top: 1px;
-padding-bottom: 5px;
+  margin-top: 5px;
+  padding-top: 1px;
+  padding-bottom: 5px;
 }
-
 table.tabs-header > tbody > tr > td > div.tab-notify > a {
-background-image: url(../../geticon.php?context=status&icon=dialog-information&size=16);
-background-repeat: no-repeat;
-background-position: 1px 1px;
+  background-image: url(../../geticon.php?context=status&icon=dialog-information&size=16);
+  background-repeat: no-repeat;
+  background-position: 1px 1px;
 }
 html.ltr table.tabs-header > tbody > tr > td > div.tab-notify > a {
-padding-left: 18px;
+  padding-left: 18px;
 }
 html.rtl table.tabs-header > tbody > tr > td > div.tab-notify > a {
-padding-right: 18px;
+  padding-right: 18px;
 }
-
 html.ltr table.tabs-header > tbody > tr > td > div.tab-left > a {
-border-right-width: 0;
+  border-right-width: 0;
 }
 html.rtl table.tabs-header > tbody > tr > td > div.tab-left > a {
-border-left-width: 0;
+  border-left-width: 0;
 }
-
 html.ltr table.tabs-header > tbody > tr > td > div.tab-right > a {
-border-left-width: 0;
+  border-left-width: 0;
 }
 html.rtl table.tabs-header > tbody > tr > td > div.tab-right > a {
-border-right-width: 0;
+  border-right-width: 0;
 }
-
 table.tabs-header > tbody > tr > td > div.tab-border {
-border-bottom: 1px solid #999;
+  border-bottom: 1px solid #999999;
 }
-
-/* tabs content */
 div.tab-content {
-padding: 4px;
-width: auto;
-background-color: #f8f8f8;
-border-style: solid;
-border-color: #c0c2c3;
-border-top-width: 0;
-border-bottom-width: 1px;
-border-left-width: 1px;
-border-right-width: 1px;
+  padding: 4px;
+  width: auto;
+  background-color: #f8f8f8;
+  border-style: solid;
+  border-color: #c0c2c3;
+  border-top-width: 0;
+  border-bottom-width: 1px;
+  border-left-width: 1px;
+  border-right-width: 1px;
 }
diff --git a/html/themes/legacy/lists.css b/html/themes/legacy/lists.css
index 7819b924b8f8700ddc8bb50744f9a3fc6bc6c552..1432f9c484eb7038d416a52f9fa28551aa85ce9f 100644
--- a/html/themes/legacy/lists.css
+++ b/html/themes/legacy/lists.css
@@ -114,6 +114,9 @@ border-bottom: 1px solid silver;
 padding: 3px;
 width: auto;
 }
+div.nlistFooter img {
+vertical-align:middle;
+}
 
 /* Tree List (used in baseSelector) */
 ul.treeList,ul.treeList ul {
@@ -214,6 +217,27 @@ table.listing-container > tbody >  tr > td.filter .contentboxb {
 min-width: 230px;
 }
 
+/* Management */
+table.listingTable.management {
+width:100%;
+}
+
+table.listingTable.management > thead > tr > th.checkbox {
+text-align:center;
+padding:0;
+width:24px;
+}
+
+table.listingTable.management > tbody > tr > td.filler {
+height:100%;
+width:100%;
+}
+
+table.listingTable > thead > tr > th > img, table.listingTable > thead > tr > th > input[type=image],
+table.listingTable > tbody > tr > td > img, table.listingTable > tbody > tr > td > input[type=image] {
+vertical-align: middle;
+}
+
 /* On small screens */
 @media (max-width: 640px) {
   table.listingTable {
diff --git a/html/themes/legacy/plugin.css b/html/themes/legacy/plugin.css
index fdcc00827f9e6479e93632437356930f6497f3de..2e357ce3c5bc19782251430d5f843cd83e28214a 100644
--- a/html/themes/legacy/plugin.css
+++ b/html/themes/legacy/plugin.css
@@ -58,6 +58,10 @@ html.rtl .plugbottom {
 text-align: left;
 }
 
+.plugbottom input[type=submit], .plugbottom input[type=button] {
+min-width: 80px;
+}
+
 /* Simple Plugin specific things */
 
 .plugin-sections:after {
diff --git a/html/themes/legacy/style.css b/html/themes/legacy/style.css
index 3bd943b3444e1fd5807d7c917904c981fbd51dbe..caf7aa415f257005ade0c66f496d971802eebf0f 100644
--- a/html/themes/legacy/style.css
+++ b/html/themes/legacy/style.css
@@ -87,14 +87,6 @@ cursor: pointer;
 box-shadow: 0px 0px 2px black;
 }
 
-td.phonelist:hover {
-background-color: #d2d2d2;
-}
-
-td.phonelist {
-border-right: 1px solid #b0b0b0;
-}
-
 div.copynotice {
 border-style: solid;
 border-color: #aaa;
@@ -120,7 +112,9 @@ background-color: #aaa;
 height: 1px;
 }
 
-.must {
+html.ltr .plugin-section > div > table > tbody > tr.required > td > label::after,
+html.rtl .plugin-section > div > table > tbody > tr.required > td > label::after {
+content: "*";
 color: red;
 font-family: arial,helvetica,sans-serif;
 }
@@ -189,17 +183,6 @@ table.framework > tbody > tr > td {
 padding: 0;
 }
 
-table.maintab {
-width: 100%;
-height: 100%;
-border: 0;
-border-spacing: 0;
-padding: 0;
-margin: 0;
-background-color: #507aaa;
-vertical-align: top;
-}
-
 div.contentboxh {
 background-color: #f0f0f0;
 border: 1px solid #aaa;
@@ -227,6 +210,7 @@ padding: 5px;
 }
 .filter div.contentboxb {
 padding: 0;
+padding-top: 3px;
 }
 div.contentboxb > div {
 display: inline-block;
@@ -241,51 +225,29 @@ margin: 0;
 padding: 3px;
 box-sizing: border-box;
 }
-.filter div.contentboxb > label img {
+.filter div.contentboxb label img,
+.filter div.contentboxb label input[type=checkbox] {
 vertical-align: middle;
-padding: 3px;
+padding:0;
+margin:0;
+}
+.filter div.contentboxb > label {
+display:block;
+margin:5px;
+}
+.filter div.contentboxb > fieldset > label {
+display:block;
+margin:5px 0 0 0;
 }
 .filter div.contentboxb > hr {
 margin-bottom: 3px;
 }
-div.contentboxb > img, div.contentboxb > input {
+div.contentboxb > img,
+div.contentboxb > input {
 display: inline-block;
 margin: 3px;
 }
 
-p.contentboxb {
-padding-bottom: 0;
-margin: 0;
-border: 4px solid #f8f8f8;
-vertical-align: middle;
-}
-
-a.alphaselect:hover {
-text-decoration: none;
-background-color: #a0a0a0;
-color: #fff;
-}
-
-table.check {
-background-color: #e1e1f1;
-color: #000;
-border: 1px solid #aaa;
-width: 95%;
-}
-html.ltr table.check {
-margin-left: 20px;
-}
-html.rtl table.check {
-margin-right: 20px;
-}
-
-html.ltr td.check {
-border-right: 1px solid #aaa;
-}
-html.rtl td.check {
-border-left: 1px solid #aaa;
-}
-
 option.select {
 background-repeat: no-repeat;
 background-position: 0 top;
@@ -315,29 +277,6 @@ td.tbrhead {
 border-bottom: 1px solid #b0b0b0;
 }
 
-.item {
-text-align: left;
-white-space: nowrap;
-font-family: "bitstream vera sans", "luxi sans", verdana, geneva, arial, helvetica, sans-serif;
-font-size: 12px;
-padding-top: 2px;
-}
-html.rtl .item {
-text-align: right;
-}
-
-.item div {
-position: relative;
-display: block;
-text-decoration: none;
-}
-
-.item :hover {
-color: #fff;
-background-color: #4b6983;
-text-decoration: none;
-}
-
 .separator {
 background-color: red;
 border-top: 1px solid #c6c6bf;
@@ -438,6 +377,10 @@ html.rtl #pulldown ul li a {
 float: right;
 }
 
+#pulldown ul li img {
+vertical-align:middle;
+}
+
 #pulldown ul li a:hover {
 text-decoration: none;
 }
@@ -492,9 +435,6 @@ span.mark {
 color: #b22;
 }
 
-#debug-handling {
-border-color: #ddd;
-}
 .error, .notice, .success, .info {
 border: 2px solid #ddd;
 margin: .2em;
@@ -692,8 +632,7 @@ color: #000;
   width: 100%;
   border-spacing: 0;
   }
-  table.framework #maincell
-  {
+  table.framework #maincell {
   padding-bottom: 55px;
   }
 }
diff --git a/ihtml/themes/breezy/baseselector.tpl b/ihtml/themes/breezy/baseselector.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..27365dbd9c664381aac2ef11eb1cc3792102c532
--- /dev/null
+++ b/ihtml/themes/breezy/baseselector.tpl
@@ -0,0 +1,64 @@
+<input
+  class="base-selector"
+  type="text"
+  name="{$htmlid}"
+  id="{$htmlid}"
+  onkeydown="$('bs_{$pid}').hide()"
+  onfocus="$('bs_{$pid}').hide()"
+  onmouseover="Element.clonePosition($('bs_{$pid}'), '{$htmlid}', {literal}{{/literal}setHeight: false, setWidth: false, offsetTop:(Element.getHeight('{$htmlid}')){literal}}{/literal});$('bs_{$pid}').show();"
+  onmouseout="rtimer= Element.hide.delay(0.25, 'bs_{$pid}')"
+  value="{$currentValue|escape}"/>
+
+<div id="autocomplete_{$pid}" class="autocomplete"></div>
+<script>
+  new Ajax.Autocompleter('{$htmlid}', 'autocomplete_{$pid}', 'autocomplete.php?type=base', { minChars: 3, frequency: 0.5 });
+  {if $submitButton}
+    $('{$htmlid}').observe(
+      'keypress',
+      function(event) {
+        if(event.keyCode == Event.KEY_RETURN) {
+          $('submit_base_{$pid}').click();
+        }
+      }
+    );
+  {/if}
+</script>
+
+<div
+  class="treeList"
+  style="display:none;max-height:{$height}px"
+  id="bs_{$pid}"
+  onmouseover="window.clearTimeout(rtimer);"
+  onmouseout="rtimer= Element.hide.delay(0.25, 'bs_{$pid}')">
+  <a
+    class="treeList{if $selected}Selected{/if}"
+    onclick="$('bs_rebase_{$pid}').value='{$rootBase|base64_encode}';  $('submit_tree_base_{$pid}').click();"
+    >/&nbsp;[{t}Root{/t}]</a>
+
+  {function tree}
+    <ul class="{$class}">
+    {foreach from=$tree key="dn" item="entry"}
+      <li>
+        <a
+          {if $entry.selected}class="treeListSelected"{/if}
+          {if $entry.link}onclick="$('bs_rebase_{$pid}').value='{$dn|base64_encode}';$('submit_tree_base_{$pid}').click();"{/if}
+          title="{$dn|escape}">
+          <img class="center"
+            src="{$entry.img|escape}"
+            alt=""/>&nbsp;{$entry.name|escape}{if $entry.description}&nbsp;<span class="informal">[{$entry.description|escape}]</span>{/if}
+        </a>
+        {tree tree=$entry.tree class=""}
+      </li>
+    {/foreach}
+    </ul>
+  {/function}
+
+  {tree tree=$tree class="treeList"}
+</div>
+
+{if $submitButton}
+  &nbsp;<input class="center" type="image" src="geticon.php?context=actions&amp;icon=submit&amp;size=16" title="{t}Submit{/t}" name="submit_base_{$pid}" id="submit_base_{$pid}" alt="{t}Submit{/t}"/>
+{/if}
+<input type="submit" formnovalidate="formnovalidate" style="display:none" name="submit_tree_base_{$pid}" id="submit_tree_base_{$pid}"/>
+<input type="hidden" name="bs_rebase_{$pid}" id="bs_rebase_{$pid}"/>
+<input type="hidden" name="BPID" id="BPID" value="{$pid}"/>
diff --git a/ihtml/themes/breezy/copynotice.tpl b/ihtml/themes/breezy/copynotice.tpl
index f6651b5c4c5dccaff154bbec48c062333e5b59a0..091f6a8f13e3088927a4a26e2b68d66f920af56b 100644
--- a/ihtml/themes/breezy/copynotice.tpl
+++ b/ihtml/themes/breezy/copynotice.tpl
@@ -1,3 +1,3 @@
 <div class="copynotice">
-  {t escape=no 1=$year 2=$revision}&copy; 2002-%1 <a href="http://www.fusiondirectory.org">The FusionDirectory team, %2</a>{/t}
+  {$copynotice}
 </div>
diff --git a/ihtml/themes/breezy/css.tpl b/ihtml/themes/breezy/css.tpl
index 2ba37fd9d5ef238ac59126d770f8db8f3ad15d83..c14aa680805db662184a490972e64acd58f01ec3 100644
--- a/ihtml/themes/breezy/css.tpl
+++ b/ihtml/themes/breezy/css.tpl
@@ -1,6 +1,5 @@
   <link rel="stylesheet" type="text/css" href="{filePath file="style.css"}" media="screen"/>
   <link rel="stylesheet" type="text/css" href="{filePath file="form.css"}" media="screen"/>
-  <link rel="stylesheet" type="text/css" href="{filePath file="datepicker.css"}" media="screen"/>
   <link rel="stylesheet" type="text/css" href="{filePath file="menu.css"}" media="screen"/>
   <link rel="stylesheet" type="text/css" href="{filePath file="lists.css"}" media="screen"/>
   <link rel="stylesheet" type="text/css" href="{filePath file="tabs.css"}" media="screen"/>
diff --git a/ihtml/themes/breezy/framework.tpl b/ihtml/themes/breezy/framework.tpl
index 0904b2072d7e8a6733dd754b725bc55c110ffeec..7549810bb6c393c408141103c8d12af2ed9ad90e 100644
--- a/ihtml/themes/breezy/framework.tpl
+++ b/ihtml/themes/breezy/framework.tpl
@@ -3,6 +3,7 @@
   {$game_screen}
   {$php_errors}
   <form action="main.php{$plug}" name="mainform" id="mainform" method="post" enctype="multipart/form-data">
+    <div style="width: 0; height: 0; overflow: hidden;"><input type="submit" name="default_submit_hidden_button"/></div>
     <div class="setup-header">
       <div id="header-left">
         <img id="fd-logo" class="optional" src="geticon.php?context=applications&amp;icon=fusiondirectory&amp;size=48" alt="FusionDirectory logo"/>
@@ -14,7 +15,7 @@
           <img src="geticon.php?context=actions&amp;icon=application-exit&amp;size=22" alt=""/>&nbsp;{t}Sign out{/t}
         </a>
         <a class="plugtop">
-          <img src="{$headline_image|escape}" alt=""/>{t}{$headline|escape}{/t}
+          <img src="{$headline_image|escape}" alt=""/>{$headline|escape}
         </a>
       </div>
       <div id="header-right">
@@ -49,7 +50,6 @@
       </tbody>
     </table>
 
-    {$errors}
     {$focus}
     <input type="hidden" name="php_c_check" value="1"/>
     <input type="hidden" name="CSRFtoken" value="{$CSRFtoken}"/>
@@ -57,7 +57,7 @@
 
 
   <!-- Automatic logout when session is expired -->
-  <script type="text/javascript">
+  <script>
   {literal}
    function logout()
    {
diff --git a/ihtml/themes/breezy/headers.tpl b/ihtml/themes/breezy/headers.tpl
index c41a3617aa1dbde88c69138bb52ba8fbb8711143..979c619fcb8554a94d1a924fc22834dcb2b1c584 100644
--- a/ihtml/themes/breezy/headers.tpl
+++ b/ihtml/themes/breezy/headers.tpl
@@ -15,20 +15,19 @@
 
   <link rel="shortcut icon" href="favicon.ico"/>
 
-  <script src="include/prototype.js" type="text/javascript"></script>
-  <script src="include/fusiondirectory.js" type="text/javascript"></script>
+  <script src="include/prototype.js"></script>
+  <script src="include/fusiondirectory.js"></script>
 {if $usePrototype == 'true'}
-  <script src="include/scriptaculous.js" type="text/javascript"></script>
-  <script src="include/builder.js" type="text/javascript"></script>
-  <script src="include/effects.js" type="text/javascript"></script>
-  <script src="include/dragdrop.js" type="text/javascript"></script>
-  <script src="include/controls.js" type="text/javascript"></script>
-  <script src="include/pulldown.js" type="text/javascript"></script>
-  <script src="include/datepicker.js" type="text/javascript"></script>
+  <script src="include/scriptaculous.js"></script>
+  <script src="include/builder.js"></script>
+  <script src="include/effects.js"></script>
+  <script src="include/dragdrop.js"></script>
+  <script src="include/controls.js"></script>
+  <script src="include/pulldown.js"></script>
 {/if}
-  <script src="include/tsorter.js" type="text/javascript"></script>
+  <script src="include/tsorter.js"></script>
 {foreach from=$js_files item=file}
-  <script src="{$file}" type="text/javascript"></script>
+  <script src="{$file}"></script>
 {/foreach}
 </head>
 
diff --git a/ihtml/themes/breezy/islocked.tpl b/ihtml/themes/breezy/islocked.tpl
index 464f78b70f67016417cb373632c87d62788d5f38..aabd1fc7a6c9bb4e99d20dfe3950558da142d636 100644
--- a/ihtml/themes/breezy/islocked.tpl
+++ b/ihtml/themes/breezy/islocked.tpl
@@ -6,28 +6,26 @@
   </div>
   <div>
     <p>
-      <b>{t}Warning{/t}:</b> {$message}
+      <b>{t}Warning{/t}:</b> {t}The following entries are locked:{/t}
       <ul>
         {foreach from=$locks item=lock}
-          <li>{t 1=$lock.object 2=$lock.user 3=$lock.timestamp|date_format:"%Y-%m-%d, %H:%M:%S"}"%1" has been locked by "%2" since %3{/t}</li>
+          <li>{t 1=$lock->objectDn 2=$lock->userDn 3=$lock->timestamp|date_format:"%Y-%m-%d, %H:%M:%S"}"%1" has been locked by "%2" since %3{/t}</li>
         {/foreach}
       </ul>
     </p>
     <p>
-      {t 1=$action}If this lock detection is false, the other person may have closed the webbrowser during the edit operation. You may want to take over the lock by pressing the "%1" button.{/t}
+      {t 1=$action}If this lock detection is false, the other person may have closed the web browser during the edit operation. You may want to take over the lock by pressing the "%1" button.{/t}
     </p>
 
     <p class="plugbottom">
-      <input type="submit" name="delete_lock" value="{$action}"/>
+      <input type="submit" name="delete_lock" value="{$action|escape}"/>
       {if $allow_readonly}
       &nbsp;
       <input type="submit" name="open_readonly" value="{t}Read only{/t}"/>
       {/if}
       &nbsp;
-      <input type="submit" name="cancel_lock" value="{t}Cancel{/t}"/>
+      <input type="submit" formnovalidate="formnovalidate" name="cancel_lock" value="{t}Cancel{/t}"/>
     </p>
-
-    <input type="hidden" name="dn" value="{$dn}"/>
   </div>
 </div>
 
diff --git a/ihtml/themes/breezy/login.tpl b/ihtml/themes/breezy/login.tpl
index 32b3df902bacb0fe1ece8de636761d271fde5598..9c44fac25df41c3c3238edbae4bcf082b5873357 100644
--- a/ihtml/themes/breezy/login.tpl
+++ b/ihtml/themes/breezy/login.tpl
@@ -21,7 +21,7 @@
     <div class="optional">
       {t}Please use your username and your password to log into the site administration system.{/t}<br />
       {if $ssl}<span class="warning">{$ssl}</span>{/if}
-      {if $lifetime}<span class="warning">{$lifetime}</span>{/if}
+      {if $lifetime}<span class="warning">{$lifetime|escape}</span>{/if}
     </div>
 
     <div>
@@ -47,13 +47,13 @@
 
       <!-- check, if cookies are enabled -->
       <p class="fusiondirectoryLoginWarning">
-       <script type="text/javascript">
+       <script>
         <!--
         document.cookie = "fdtest=empty;path=/";
         if (document.cookie.indexOf( "fdtest=") > -1 )
           document.cookie = "fdtest=empty;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";
         else
-          document.write("{$cookies}");
+          document.write("<b>{t}Warning{/t}</b> {t}Your browser has cookies disabled. Please enable cookies and reload this page before logging in!{/t}");
         -->
        </script>
       </p>
@@ -72,16 +72,14 @@
 </form>
 </div>
 
-{$errors}
-
 </div>
 
 {include file={filePath file="copynotice.tpl"}}
 
-<script type="text/javascript">
+<script>
 <!--
   enable_keyPress = false;
-  focus_field("{$focusfield}");
+  focus_field("{$focusfield|escape}");
   next_msg_dialog();
 -->
 </script>
diff --git a/ihtml/themes/breezy/management/actionmenu.tpl b/ihtml/themes/breezy/management/actionmenu.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..de2a9dbc8f2be7174edf4e1bfdbf5b15eb2d570e
--- /dev/null
+++ b/ihtml/themes/breezy/management/actionmenu.tpl
@@ -0,0 +1,34 @@
+{function menu level=2}
+  <ul class="level{$level}">
+  {foreach $data as $entry}
+    <li id="actionmenu_{$entry.name|escape}" {if $entry.separator}style="border-top:1px solid #AAA"{/if}>
+      {if isset($entry.actions)}
+        <a href="#">
+          <img src="{$entry.icon|escape}" alt=""/>&nbsp;{$entry.label|escape}
+          &nbsp;<img src="images/forward-arrow.png" alt="forward arrow"/>
+        </a>
+        {menu data=$entry.actions level=$level+1}
+      {elseif $entry.enabled}
+        <a href="#" onClick="document.getElementById('actionmenu').value='{$entry.name|escape}';document.getElementById('exec_act').click();document.getElementById('actionmenu').value='';">
+          <img src="{$entry.icon|escape}" alt=""/>&nbsp;{$entry.label|escape}
+        </a>
+      {else}
+        <a>
+          <img src="{$entry.icon|escape}&amp;disabled=1" alt=""/>&nbsp;{$entry.label|escape}
+        </a>
+      {/if}
+    </li>
+  {/foreach}
+  </ul>
+{/function}
+
+<div id="pulldown">
+  <input type="hidden" name="act" id="actionmenu" value=""/>
+  <div style="display:none"><input type="submit" formnovalidate="formnovalidate" name="exec_act" id="exec_act" value=""/></div>
+  <ul class="level1" id="root">
+    <li>
+      <a href="#">{t}Actions{/t}&nbsp;<img class="center optional" src="images/down-arrow.png" alt=""/></a>
+      {menu data=$actions}
+    </li>
+  </ul>
+</div>
diff --git a/ihtml/themes/breezy/management/filter-element-date.tpl b/ihtml/themes/breezy/management/filter-element-date.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..4a153f1c7803cb4b33eccdf116a44d21d7578f5e
--- /dev/null
+++ b/ihtml/themes/breezy/management/filter-element-date.tpl
@@ -0,0 +1,10 @@
+<fieldset><legend>{$NAME|escape}</legend>
+  <label for="nt_{$attribute}" title="{t 1=$NAME}Minimum date for %1{/t}">
+    {t}Newer than{/t}
+    <input type="date" id="nt_{$attribute}" name="nt_{$attribute}" value="{$nt_value}"/>
+  </label>
+  <label for="ot_{$attribute}" title="{t 1=$NAME}Maximum date for %1{/t}">
+    {t}Older than{/t}
+    <input type="date" id="ot_{$attribute}" name="ot_{$attribute}" value="{$ot_value}"/>
+  </label>
+</fieldset>
diff --git a/ihtml/themes/breezy/management/filter-element-fixed.tpl b/ihtml/themes/breezy/management/filter-element-fixed.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..134d2285c4d91aa86dd3afdddd5050cd8af2df94
--- /dev/null
+++ b/ihtml/themes/breezy/management/filter-element-fixed.tpl
@@ -0,0 +1,10 @@
+<fieldset><legend>{$NAME|escape}</legend>
+  {foreach from=$INPUTS key="key" item="input"}
+    <label title="{$input.desc|escape}">
+      {if isset($input.icon)}
+        <img src="{$input.icon|escape}" alt=""/>
+      {/if}
+      {$input.name|escape}
+    </label>
+  {/foreach}
+</fieldset>
diff --git a/ihtml/themes/breezy/management/filter-element.tpl b/ihtml/themes/breezy/management/filter-element.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..c0aa75438644767a2b196f8f77a4842c1a129c53
--- /dev/null
+++ b/ihtml/themes/breezy/management/filter-element.tpl
@@ -0,0 +1,14 @@
+<fieldset><legend>{$NAME|escape}</legend>
+  {foreach from=$INPUTS key="key" item="input"}
+    <label for="{$key}" title="{$input.desc|escape}">
+      <input type="checkbox" id="{$key}" name="{$key}" value="1"
+        {if ($input.checked)}checked="checked"{/if}/>
+      {if isset($input.icon)}
+        <img src="{$input.icon|escape}" alt=""/>
+      {else}
+        <img src="images/empty.png" alt=""/>
+      {/if}
+      {$input.name|escape}
+    </label>
+  {/foreach}
+</fieldset>
diff --git a/ihtml/themes/breezy/management/filter.tpl b/ihtml/themes/breezy/management/filter.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..ae5116f6e64c81b25dbf26688bc079c8e9fa19f3
--- /dev/null
+++ b/ihtml/themes/breezy/management/filter.tpl
@@ -0,0 +1,47 @@
+<input type="hidden" name="FILTER_PID" value="{$FILTER_PID}"/>
+
+<div class="contentboxh">
+ <p>{t}Filter{/t}</p>
+</div>
+
+<div class="contentboxb">
+  <fieldset><legend>{t}Types{/t}</legend>
+  {foreach from=$TYPES key="key" item="type"}
+    <label for="{$key}">
+      <input type="checkbox" id="{$key}" name="{$key}" value="1"
+        {if ($type.show)}checked="checked"{/if}/>
+      <img src="{$type.infos.icon|escape}" alt=""/>
+      {$type.infos.name|escape}
+    </label>
+  {/foreach}
+  {if isset($TEMPLATES)}
+    <label for="filter_type_TEMPLATE">
+      <input type="checkbox" id="filter_type_TEMPLATE" name="filter_type_TEMPLATE" value="1"
+        {if ($TEMPLATES)}checked="checked"{/if}/>
+      <img src="geticon.php?context=devices&amp;icon=template&amp;size=16" alt=""/>
+      {t}Template{/t}
+    </label>
+  {/if}
+  </fieldset>
+  {foreach from=$FILTERS key="key" item="element"}
+    {$element}
+  {/foreach}
+
+  <hr/>
+
+  {if $SHOWSCOPE}
+  <label for="SCOPE">
+    <input type="checkbox" id="SCOPE" name="SCOPE" value="1"
+    {if ($SCOPE == 'sub')}checked="checked"{/if}/>
+    &nbsp;{t}Search in subtrees{/t}
+  </label>
+  <hr/>
+  {/if}
+
+  <label for="SEARCH" title="{$SEARCHDESC|escape}"><img src="geticon.php?context=actions&amp;icon=system-search&amp;size=16" alt="Search"/>
+    <input class="filter_textfield" id="SEARCH" name="SEARCH" type="search" value="{$SEARCH}"/>
+  </label>
+  <div>
+    <input type="submit" name="apply" value="{t}Apply filter{/t}"/>
+  </div>
+</div>
diff --git a/ihtml/themes/breezy/management/list.tpl b/ihtml/themes/breezy/management/list.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..8ffe93b59420c5dfa952fbe16d4da9505c64ba00
--- /dev/null
+++ b/ihtml/themes/breezy/management/list.tpl
@@ -0,0 +1,53 @@
+<input type="hidden" value="{$PID}" name="PID"/>
+
+<div style="width:100%;">
+<table class="listingTable management">
+  <thead><tr>
+    {if $multiSelect}
+      <th class="checkbox">
+        <input type="checkbox" id="select_all" name="select_all" title="{t}Select all{/t}" onClick='toggle_all_("listing_selected_[0-9]*$","select_all");' />
+      </th>
+    {/if}
+    {foreach from=$headers key=index item=header}
+      {if $header.sortable}
+        <th {$header.props}><a href="?plug={$PLUG}&amp;PID={$PID}&amp;act=SORT_{$index}">{$header.label|escape}
+        {if isset($header.sortdirection)}
+          &nbsp;<img title="{if $header.sortdirection}{t}Up{/t}{else}{t}Down{/t}{/if}" src="geticon.php?context=actions&amp;size=16&amp;icon=view-sort-{if $header.sortdirection}descending{else}ascending{/if}" alt="{if $header.sortdirection}{t}Sort up{/t}{else}{t}Sort down{/t}{/if}"/>
+        {/if}
+        </a></th>
+      {else}
+        <th {$header.props}>{$header.label|escape}</th>
+      {/if}
+    {/foreach}
+  </tr></thead>
+
+  <tbody>
+    {if (count($rows) == 0)}
+      <tr><td colspan="{$columnCount}" class="filler">&nbsp;</td></tr>
+    {/if}
+
+    {foreach from=$rows item=row}
+      <tr class="{' '|implode:$row.classes}">
+      {if $multiSelect}
+        <td class="checkbox">
+          <input type="checkbox" id="listing_selected_{$row.index}" name="listing_selected_{$row.index}"/>
+        </td>
+      {/if}
+      {foreach from=$row.cells item=cell}
+        <td {$cell.props}>{$cell.render}</td>
+      {/foreach}
+      </tr>
+    {/foreach}
+  </tbody>
+</table>
+</div>
+
+{if ($showFooter)}
+  <div class="nlistFooter">
+
+  {foreach from=$objectCounts item=type}
+    <img src="{$type.icon|escape}" title="{$type.name|escape}" alt="{$type.name|escape}"/>&nbsp;{$type.count}&nbsp;&nbsp;&nbsp;&nbsp;
+  {/foreach}
+
+  </div>
+{/if}
diff --git a/ihtml/themes/breezy/management/management.tpl b/ihtml/themes/breezy/management/management.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..16d68f8bd947df9bb375c4bd49c3536fdbae8906
--- /dev/null
+++ b/ihtml/themes/breezy/management/management.tpl
@@ -0,0 +1,43 @@
+<table class="listing-container">
+  <tbody>
+    <tr>
+      <td class="list">
+        <div class="contentboxh">
+          <p class="contentboxh">&nbsp;{$HEADLINE|escape}&nbsp;{$SIZELIMIT}</p>
+        </div>
+
+        <div class="contentboxb">
+          <table>
+            <tbody>
+              <tr>
+                {foreach from=$NAVIGATION item="action"}
+                  <td class="{$action.class}">
+                  {if $action.enabled}
+                    <input type="image" src="{$action.icon|escape}"
+                      name="{$action.id}" title="{$action.desc|escape}" alt="{$action.name|escape}"/>
+                  {else}
+                    <img src="{$action.icon|escape}&amp;disabled=1" alt="{$action.name|escape}"/>
+                  {/if}
+                  &nbsp;</td>
+                {/foreach}
+                {if $BASE}<td><img src="images/lists/seperator.png" alt="-" height="16" width="1" class="center"/>&nbsp;</td><td>{t}Base{/t} {$BASE}&nbsp;</td>{/if}
+                {if $ACTIONS}<td><img src="images/lists/seperator.png" alt="-" height="16" width="1" class="center"/>&nbsp;</td><td>{$ACTIONS}</td>{/if}
+              </tr>
+            </tbody>
+          </table>
+        </div>
+
+        <div style="margin-top:4px;">
+          {$LIST}
+        </div>
+      </td>
+      {if !empty($FILTER)}
+      <td class="filter">
+        {$FILTER}
+      </td>
+      {/if}
+    </tr>
+  </tbody>
+</table>
+
+<input type="hidden" name="ignore"/>
diff --git a/ihtml/themes/breezy/simple-select-list.tpl b/ihtml/themes/breezy/management/select-footer.tpl
similarity index 81%
rename from ihtml/themes/breezy/simple-select-list.tpl
rename to ihtml/themes/breezy/management/select-footer.tpl
index 0e3284fa0fe3f66c0c6e56326d18fb3fef8f2adf..b95e1c4f578cfb5c16c55e0ded8d58f47e2ff5cf 100644
--- a/ihtml/themes/breezy/simple-select-list.tpl
+++ b/ihtml/themes/breezy/management/select-footer.tpl
@@ -1,5 +1,3 @@
-{include file={filePath file="simple-list.tpl"}}
-
 <p class="plugbottom">
 {if $MULTISELECT}
   <input type="submit" name="add_finish" value="{msgPool type=addButton}"/>
diff --git a/ihtml/themes/breezy/management/tabfooter.tpl b/ihtml/themes/breezy/management/tabfooter.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..aa1e7ad469c18af88077005a7cd8987ec91e7273
--- /dev/null
+++ b/ihtml/themes/breezy/management/tabfooter.tpl
@@ -0,0 +1,15 @@
+{if $readOnly}
+  <p class="plugbottom">
+    <input type="submit" formnovalidate="formnovalidate" name="edit_cancel" value="{msgPool type=cancelButton}"/>
+  </p>
+{else}
+  <p class="plugbottom">
+    <input type="submit" name="edit_finish" value="{msgPool type=okButton}"/>
+    &nbsp;
+    {if $showApply}
+      <input type="submit" name="edit_apply" value="{msgPool type=applyButton}"/>
+      &nbsp;
+    {/if}
+    <input type="submit" formnovalidate="formnovalidate" name="edit_cancel" value="{msgPool type=cancelButton}"/>
+  </p>
+{/if}
diff --git a/ihtml/themes/breezy/msg_dialog.tpl b/ihtml/themes/breezy/msg_dialog.tpl
index a10127140680a8124569ef8e4e63e28309590cdf..843b553450f918f4d001ce5527bfd87148ee91a0 100644
--- a/ihtml/themes/breezy/msg_dialog.tpl
+++ b/ihtml/themes/breezy/msg_dialog.tpl
@@ -1,68 +1,57 @@
-{if $frame}
-  <div
-    id="e_layer2"
-    style="
-      position:absolute;
-      left:0px;
-      top:0px;
-      right:0px;
-      bottom:0px;
-      z-index:100;
-      overflow:hidden;
-      background-image:url(images/opacity_black.png);">
-{else}
+<div
+  id="e_layer2"
+  class="msgbackground">
 
-  {if $s_Trace != "" && $i_TraceCnt != 0}
-  <div id="trace_{$i_ID}"
-    style="
-      display:none;
-      position:absolute;
-      left:0px;
-      top:0px;
-      right:0px;">
-    {$s_Trace}
-  </div>
-  {/if}
+  {foreach from=$dialogInfos item=dialog}
 
-  {if $i_Type == $smarty.const.INFO_DIALOG || $i_Type == $smarty.const.CONFIRM_DIALOG}
-  <div id="e_layer{$i_ID}" class="info msgdialog">
-  {elseif $i_Type == $smarty.const.WARNING_DIALOG}
-  <div id="e_layer{$i_ID}" class="notice msgdialog">
-  {else}
-  <div id="e_layer{$i_ID}" class="error msgdialog">
-  {/if}
-
-    <div id="e_layerTitle{$i_ID}" class="msgtitle">
-      <h2>
-      {if $i_Type == $smarty.const.ERROR_DIALOG}
-        <img src="geticon.php?context=status&amp;icon=dialog-error&amp;size=32" class="center" alt="{t}Error{/t}"/>
-      {elseif $i_Type == $smarty.const.WARNING_DIALOG}
-        <img src="geticon.php?context=status&amp;icon=dialog-warning&amp;size=32" class="center"  alt="{t}Warning{/t}"/>
-      {elseif $i_Type == $smarty.const.INFO_DIALOG || $i_Type == $smarty.const.CONFIRM_DIALOG}
-        <img src="geticon.php?context=status&amp;icon=dialog-information&amp;size=32" class="center" alt="{t}Information{/t}"/>
-      {/if}
-        {$s_Title}
-      </h2>
+    {if ($dialog.trace != "")}
+    <div id="trace_{$dialog.id}"
+      class="msgtrace"
+      style="display:none;">
+      {$dialog.trace}
     </div>
+    {/if}
 
-    <div style="z-index:250;width:100%;">
-      {$s_Message}
-    </div>
-    <div class="plugbottom">
-      {if $s_Trace != "" && $i_TraceCnt != 0}
-        <input type="button" id="Trace" name="Trace"
-          onClick="$('trace_{$i_ID}').toggle();" value="{t}Trace{/t}"/>
-      {/if}
-      <input type="button" id="MSG_OK{$i_ID}" name="MSG_OK{$i_ID}"
-        onClick="next_msg_dialog();" value="{t}Ok{/t}"/>
-      {if $i_Type == $smarty.const.CONFIRM_DIALOG}
-        <input type="button" name="MSG_CANCEL{$i_ID}"
-          onClick="next_msg_dialog();" value="{t}Cancel{/t}"/>
-      {/if}
+    <div id="e_layer{$dialog.id}" class="msgdialog">
+
+      <div id="e_layerTitle{$dialog.id}" class="msgtitle">
+        <p>
+          {if $dialog.type == $smarty.const.ERROR_DIALOG}
+            <img src="geticon.php?context=status&amp;icon=dialog-error&amp;size=32" class="center" alt="{t}Error{/t}"/>
+          {elseif $dialog.type == $smarty.const.WARNING_DIALOG}
+            <img src="geticon.php?context=status&amp;icon=dialog-warning&amp;size=32" class="center"  alt="{t}Warning{/t}"/>
+          {elseif $dialog.type == $smarty.const.INFO_DIALOG || $dialog.type == $smarty.const.CONFIRM_DIALOG}
+            <img src="geticon.php?context=status&amp;icon=dialog-information&amp;size=32" class="center" alt="{t}Information{/t}"/>
+          {/if}
+          {$dialog.title|escape}
+        </p>
+      </div>
+
+      <div class="msgcontent">
+        <p>
+          {$dialog.message}
+        </p>
+      </div>
+      <div class="plugbottom msgfooter">
+        {if ($dialog.trace != "")}
+          <input type="button" id="Trace" name="Trace"
+            onClick="$('trace_{$dialog.id}').toggle();" value="{t}Trace{/t}"/>
+        {/if}
+        <input type="button" id="MSG_OK{$dialog.id}" name="MSG_OK{$dialog.id}"
+          onClick="next_msg_dialog();" value="{t}Ok{/t}"/>
+        {if $dialog.type == $smarty.const.CONFIRM_DIALOG}
+          <input type="button" name="MSG_CANCEL{$dialog.id}"
+            onClick="next_msg_dialog();" value="{t}Cancel{/t}"/>
+        {/if}
+      </div>
     </div>
-  </div>
-  <script type="text/javascript">
-    focus_field('MSG_OK{$i_ID}');
-  </script>
+    <script>
+      focus_field('MSG_OK{$dialog.id}');
+    </script>
+  {/foreach}
 
-{/if}
+</div>
+<input type="hidden" name="pending_msg_dialogs"  id="pending_msg_dialogs" value="{','|implode:$dialogIds}"/>
+<input type="hidden" name="closed_msg_dialogs"   id="closed_msg_dialogs" value=""/>
+<input type="hidden" name="current_msg_dialogs"  id="current_msg_dialogs" value=""/>
+<input type="hidden" name="js_debug"             id="js_debug"/>
diff --git a/ihtml/themes/breezy/recovery.tpl b/ihtml/themes/breezy/recovery.tpl
index 61a09b319bd10efb36bfeab41d7689d43d0b30f3..d99757318f2438b10876098780bc796ff42a9740 100644
--- a/ihtml/themes/breezy/recovery.tpl
+++ b/ihtml/themes/breezy/recovery.tpl
@@ -8,6 +8,7 @@
 <div id="window-div">
 
   <form action='recovery.php{$params}' method='post' name='mainform' onSubmit='js_check(this);return true;'>
+    <input type="hidden" name="CSRFtoken" value="{$CSRFtoken}"/>
 
   <div id="window-titlebar">
     <img id="fd-logo" src="geticon.php?context=applications&amp;icon=fusiondirectory&amp;size=48" alt="FusionDirectory logo"/>
@@ -22,7 +23,7 @@
       <span class="warning"> {$ssl} </span>
 
       <!-- Display error message on demand -->
-      <span class="warning"> {$message} </span>
+      <span class="warning"> {$message|escape} </span>
 
 {if $step==3}
     <p class="infotext">
@@ -51,7 +52,7 @@
       <label for="new_password_repeated">
         <img class="center" src="geticon.php?context=status&amp;icon=dialog-password&amp;size=48" alt="{t}New password repeated{/t}" title="{t}New password repeated{/t}"/>&nbsp;
       </label>
-      <input type="password" name="new_password_repeated" id="new_password_repeated" maxlength="40" value="" title="{t}New password repeated{/t}" />
+      <input type="password" name="new_password_repeated" id="new_password_repeated" value="" title="{t}New password repeated{/t}" />
       <br>
       <div style="width: 190px; display: inline-block; margin-left: 54px;" title="{t}Password strength{/t}">
         <span id="meterEmpty" style="padding:0;margin:0;width:100%;background-color:#DC143C;display:block;height:5px;">
@@ -92,7 +93,7 @@
       <label for="email_address">
          <img class="center" src="geticon.php?context=applications&amp;icon=internet-mail&amp;size=48" alt="{t}Email address{/t}" title="{t}Email address{/t}" />&nbsp;
       </label>
-      <input type="text" name="email_address" id="email_address" value="{$email_address}" title="{t}Email{/t}" onFocus=""/>
+      <input type="text" name="email_address" id="email_address" value="{$email_address|escape}" title="{t}Email{/t}" onFocus=""/>
     </div>
     {if $show_directory_chooser}
     <div>
@@ -116,7 +117,7 @@
 {/if}
 {else}
     <!-- Display error message on demand -->
-    <p class="warning"> {$message} </p>
+    <p class="warning"> {$message|escape} </p>
     <p>{t}Password recovery is not activated. If you have lost your password, please contact your administrator{/t}</p>
   </div>
   </div>
@@ -127,7 +128,7 @@
 {include file={filePath file="copynotice.tpl"}}
 
   <!-- Place cursor in email field -->
-  <script type="text/javascript">
+  <script>
     <!-- // First input field on page
     focus_field('error_accept','login','directory','username','current_password','email_address');
     next_msg_dialog();
diff --git a/ihtml/themes/breezy/restore-confirm.tpl b/ihtml/themes/breezy/restore-confirm.tpl
index 782f734a8b19033be5aabeeaaf01e9ae451ac257..e318892acc4bed80d31b3e26372f7a7cab669295 100644
--- a/ihtml/themes/breezy/restore-confirm.tpl
+++ b/ihtml/themes/breezy/restore-confirm.tpl
@@ -8,8 +8,8 @@
     <p>
       <ul>
         {foreach from=$objects item=object}
-          <li style="list-style-image:url('{$object.icon}');" title="{$object.type}">
-            {$object.name}&nbsp;(<i>{$object.dn}</i>)
+          <li style="list-style-image:url('{$object.icon|escape}');" title="{$object.type|escape}">
+            {$object.name|escape}&nbsp;(<i>{$object.dn|escape}</i>)
           </li>
         {/foreach}
       </ul>
@@ -23,7 +23,7 @@
 
     <p class="plugbottom">
       <input type="submit" name="restore_confirmed" value="{t}Continue{/t}"/>
-      <input type="submit" name="restore_cancel" value="{msgPool type=cancelButton}"/>
+      <input type="submit" formnovalidate="formnovalidate" name="restore_cancel" value="{msgPool type=cancelButton}"/>
     </p>
   </div>
 </div>
diff --git a/ihtml/themes/breezy/secondfactor.tpl b/ihtml/themes/breezy/secondfactor.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..c75fee9f699e940b1e464b04a2f8a4e784bbac29
--- /dev/null
+++ b/ihtml/themes/breezy/secondfactor.tpl
@@ -0,0 +1,50 @@
+<body>
+
+  {$php_errors}
+
+{* FusionDirectory login - smarty template *}
+
+<div id="window-container">
+
+<div id="window-div">
+<form action="secondfactor.php" method="post" id="loginform" name="loginform">
+  <div style="width: 0; height: 0; overflow: hidden;"><input type="submit" name="default_submit_hidden_button"/></div>
+
+{$msg_dialogs}
+  <div id="window-titlebar">
+    <img id="fd-logo" src="geticon.php?context=applications&amp;icon=fusiondirectory&amp;size=48" alt="FusionDirectory logo"/>
+    <p>
+      {t}Two factor authentication{/t}
+    </p>
+  </div>
+  <div id="window-content">
+    {foreach from=$methodOutputs key=method item=methodOutput}
+      <div class="secondfactormethod" id="{$method|escape}">
+        {$methodOutput}
+      </div>
+    {/foreach}
+  </div>
+  <div id="window-footer" class="plugbottom">
+    <div>
+      <!-- Display error message on demand -->
+      {$message}
+    </div>
+    <div>
+      <input type="submit" name="login" value="{t}Sign in{/t}" title="{t}Click here to log in{/t}"/>
+    </div>
+  </div>
+  <input type="hidden" name="CSRFtoken" value="{$CSRFtoken}"/>
+</form>
+</div>
+
+</div>
+
+{include file={filePath file="copynotice.tpl"}}
+
+<script>
+<!--
+  next_msg_dialog();
+-->
+</script>
+</body>
+</html>
diff --git a/ihtml/themes/breezy/simple-archive.tpl b/ihtml/themes/breezy/simple-archive.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..85b077bbe5e6957e094ad2d021a4886e33429ec3
--- /dev/null
+++ b/ihtml/themes/breezy/simple-archive.tpl
@@ -0,0 +1,28 @@
+<div class="notice">
+  <div class="msgtitle">
+    <h2>
+      <img alt="" src="geticon.php?context=status&amp;icon=dialog-warning&amp;size=32" class="center"/>&nbsp;{t}Warning: you are about to archive the following objects{/t}
+    </h2>
+  </div>
+  <div>
+    <p>
+      <ul>
+        {foreach from=$objects item=object}
+          <li style="list-style-image:url('{$object.icon|escape}');" title="{$object.type|escape}">
+            {$object.name|escape}&nbsp;(<i>{$object.dn|escape}</i>)
+          </li>
+        {/foreach}
+      </ul>
+      {t}Please double check if you really want to do this since there is no way for FusionDirectory to get your data back.{/t}
+    </p>
+
+    <p>
+     {t}So - if you're sure - press 'Archive' to continue or 'Cancel' to abort.{/t}
+    </p>
+
+    <p class="plugbottom">
+      <input type="submit" name="archive_confirmed" value="{t}Archive{/t}"/>
+      <input type="submit" formnovalidate="formnovalidate" name="archive_cancel" value="{msgPool type=cancelButton}"/>
+    </p>
+  </div>
+</div>
diff --git a/ihtml/themes/breezy/simple-filter.tpl b/ihtml/themes/breezy/simple-filter.tpl
deleted file mode 100644
index 86b432d458ef7f6691f5a040ba168b441892197f..0000000000000000000000000000000000000000
--- a/ihtml/themes/breezy/simple-filter.tpl
+++ /dev/null
@@ -1,21 +0,0 @@
-<div class="contentboxh">
- <p>{t}Filter{/t}</p>
-</div>
-
-<div class="contentboxb">
-  {if isset($objectFilters)}
-    {foreach from=$objectFilters item="ofilter"}
-      {${$ofilter.id}}<label for="{$ofilter.id}">&nbsp;{$ofilter.label}</label><br/>
-    {/foreach}
-  {/if}
-
-  <hr/>
-  {$SCOPE}
-  <hr/>
-
-  <label for="NAME" title="{$NAMEDESC}"><img src="geticon.php?context=actions&amp;icon=system-search&amp;size=16" alt="Search"/></label>{$NAME}
-
-  <div>
-    {$APPLY}
-  </div>
-</div>
diff --git a/ihtml/themes/breezy/simple-list.tpl b/ihtml/themes/breezy/simple-list.tpl
deleted file mode 100644
index 41b9deec4480862575bd4132b69e849a3c98c8ec..0000000000000000000000000000000000000000
--- a/ihtml/themes/breezy/simple-list.tpl
+++ /dev/null
@@ -1,33 +0,0 @@
-<table class="listing-container">
-  <tbody>
-    <tr>
-      <td class="list">
-        <div class="contentboxh">
-          <p class="contentboxh">&nbsp;{$HEADLINE}&nbsp;{$SIZELIMIT}</p>
-        </div>
-
-        <div class="contentboxb" style="background:white;">
-          <table>
-            <tbody>
-              <tr>
-                {if $BASE}<td>{$ROOT}&nbsp;</td><td>{$BACK}&nbsp;</td><td>{$HOME}&nbsp;</td>{/if}
-                <td class="optional">{$RELOAD}&nbsp;</td>
-                {if $BASE}<td>{$SEPARATOR}&nbsp;</td><td>{t}Base{/t} {$BASE}&nbsp;</td>{/if}
-                {if $ACTIONS}<td>{$SEPARATOR}&nbsp;</td><td>{$ACTIONS}</td>{/if}
-              </tr>
-            </tbody>
-          </table>
-        </div>
-
-        <div style="margin-top:4px;">
-          {$LIST}
-        </div>
-      </td>
-      <td class="filter">
-        {$FILTER}
-      </td>
-    </tr>
-  </tbody>
-</table>
-
-<input type="hidden" name="ignore"/>
diff --git a/ihtml/themes/breezy/simple-remove.tpl b/ihtml/themes/breezy/simple-remove.tpl
index e182eeb36a95024fba6521b731463624c9d68f15..68333131063a4c842fdb735dddd36e9bdfe46ac2 100644
--- a/ihtml/themes/breezy/simple-remove.tpl
+++ b/ihtml/themes/breezy/simple-remove.tpl
@@ -8,8 +8,8 @@
     <p>
       <ul>
         {foreach from=$objects item=object}
-          <li style="list-style-image:url('{$object.icon}');" title="{$object.type}">
-            {$object.name}&nbsp;(<i>{$object.dn}</i>)
+          <li style="list-style-image:url('{$object.icon|escape}');" title="{$object.type|escape}">
+            {$object.name|escape}&nbsp;(<i>{$object.dn|escape}</i>)
           </li>
         {/foreach}
       </ul>
@@ -22,7 +22,7 @@
 
     <p class="plugbottom">
       <input type="submit" name="delete_confirmed" value="{msgPool type=delButton}"/>
-      <input type="submit" name="delete_cancel" value="{msgPool type=cancelButton}"/>
+      <input type="submit" formnovalidate="formnovalidate" name="delete_cancel" value="{msgPool type=cancelButton}"/>
     </p>
   </div>
 </div>
diff --git a/ihtml/themes/breezy/simpleplugin.tpl b/ihtml/themes/breezy/simpleplugin.tpl
index c51a181b3e5e15310e292bf4af7c877068ca2180..cec63d08e317b53256156cc9b4c7ac95363f4683 100644
--- a/ihtml/themes/breezy/simpleplugin.tpl
+++ b/ihtml/themes/breezy/simpleplugin.tpl
@@ -6,17 +6,17 @@
 
 {if is_array($hiddenPostedInput)}
   {foreach from=$hiddenPostedInput item=hiddenPostedInput_item}
-    <input name="{$hiddenPostedInput_item}" value="1" type="hidden"/>
+    <input name="{$hiddenPostedInput_item|escape}" value="1" type="hidden"/>
   {/foreach}
 {else}
-  <input name="{$hiddenPostedInput}" value="1" type="hidden"/>
+  <input name="{$hiddenPostedInput|escape}" value="1" type="hidden"/>
 {/if}
 
 {if isset($focusedField)}
   <!-- Place cursor -->
-  <script type="text/javascript">
+  <script>
     <!-- // First input field on page
-      focus_field('{$focusedField}');
+      focus_field('{$focusedField|escape}');
     -->
   </script>
 {/if}
diff --git a/ihtml/themes/breezy/simpleplugin_section.tpl b/ihtml/themes/breezy/simpleplugin_section.tpl
index 0c9b525010bbf53f6717842dbdfdb8906449f241..e295bb5df789551b37ace958fb6a0986ae1a3cec 100644
--- a/ihtml/themes/breezy/simpleplugin_section.tpl
+++ b/ihtml/themes/breezy/simpleplugin_section.tpl
@@ -1,9 +1,14 @@
 <fieldset id="{$sectionId}" class="plugin-section{$sectionClasses}">
-  <legend><span>{$section}</span></legend>
+  <legend><span>{if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}</span></legend>
   <div>
   <table>
     {foreach from=$attributes item=attribute key=id}
-      <tr>
+      <tr class="
+        {if $attribute.subattribute}subattribute{/if}
+        {if $attribute.required}required{/if}
+        {if !$attribute.readable}nonreadable{/if}
+        {if !$attribute.writable}nonwritable{/if}
+      ">
         <td title="{$attribute.description|escape}"><label for="{$attribute.htmlid}">{eval var=$attribute.label}</label></td>
         <td>{eval var=$attribute.input}</td>
       </tr>
diff --git a/ihtml/themes/breezy/sizelimit.tpl b/ihtml/themes/breezy/sizelimit.tpl
index 7f61e5f1c8fb8f3f3020f264699123f624808dec..69050a6089dd85e28093af967ba644cd06e61d89 100644
--- a/ihtml/themes/breezy/sizelimit.tpl
+++ b/ihtml/themes/breezy/sizelimit.tpl
@@ -1,17 +1,17 @@
-<h1>{$warning}</h1>
+<h1>{t 1=$sizelimit}The size limit of %1 entries is exceeded!{/t}</h1>
 <p>
   {t}The size limit option makes LDAP operations faster and saves the LDAP server from getting too much load. The easiest way to handle big databases without long timeouts would be to limit your search to smaller values and use filters to get the entries you are looking for.{/t}
 </p>
 <p>
-  <b>{t}Please choose the way to react for this session{/t}:</b>
+  <b>{t}Please choose the way to react for this session:{/t}</b>
 </p>
 
 <input type="radio" name="action" value="ignore" id="ignore"/>
-  <label for="ignore">{t}ignore this error and show all entries the LDAP server returns{/t}</label><br/>
+  <label for="ignore">{t}Ignore this error and show all entries the LDAP server returns{/t}</label><br/>
 <input type="radio" name="action" value="limited" checked="checked" id="limited"/>
-  <label for="limited">{t}ignore this error and show all entries that fit into the defined sizelimit and let me use filters instead{/t}</label><br/>
+  <label for="limited">{t}Ignore this error and show all entries that fit into the defined sizelimit and let me use filters instead{/t}</label><br/>
 <input type="radio" name="action" value="newlimit" id="newlimit"/>
-  {$limit_message}
+  <label for="newlimit">{t}Change the size limit to: {/t}<input type="text" name="new_limit" maxlength="10" size="5" value="{$sizelimit + 100}"/></label>
 
 <p class="plugbottom">
  <input type=submit name="set_size_action" value="{t}Set{/t}"/>
diff --git a/ihtml/themes/breezy/template.tpl b/ihtml/themes/breezy/template.tpl
index 0aa9b9cab6a730ff5c9bc9628e770acdffedae96..1dc41fa52d3a81e78ffb6011790f1599d9528a4b 100644
--- a/ihtml/themes/breezy/template.tpl
+++ b/ihtml/themes/breezy/template.tpl
@@ -23,5 +23,5 @@
 <p class="plugbottom">
   <input type="submit" name="template_continue" value="{t}Continue{/t}"/>
   &nbsp;
-  <input type="submit" name="template_cancel" value="{msgPool type=cancelButton}"/>
+  <input type="submit" formnovalidate="formnovalidate" name="template_cancel" value="{msgPool type=cancelButton}"/>
 </p>
diff --git a/ihtml/themes/legacy/login.tpl b/ihtml/themes/legacy/login.tpl
index 55a474b15e3032a7ac1b3fa51dd7e876e18232a6..b660661b4a8a4fa5e08230f260b262e5492ade03 100644
--- a/ihtml/themes/legacy/login.tpl
+++ b/ihtml/themes/legacy/login.tpl
@@ -21,7 +21,7 @@
     <div class="optional">
       {t}Please use your username and your password to log into the site administration system.{/t}<br />
       {if $ssl}<span class="warning">{$ssl}</span>{/if}
-      {if $lifetime}<span class="warning">{$lifetime}</span>{/if}
+      {if $lifetime}<span class="warning">{$lifetime|escape}</span>{/if}
     </div>
 
     <div>
@@ -47,13 +47,13 @@
 
       <!-- check, if cookies are enabled -->
       <p class="fusiondirectoryLoginWarning">
-       <script type="text/javascript">
+       <script>
         <!--
         document.cookie = "fdtest=empty;path=/";
         if (document.cookie.indexOf( "fdtest=") > -1 )
           document.cookie = "fdtest=empty;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";
         else
-          document.write("{$cookies}");
+          document.write("<b>{t}Warning{/t}</b> {t}Your browser has cookies disabled. Please enable cookies and reload this page before logging in!{/t}");
         -->
        </script>
       </p>
@@ -72,13 +72,11 @@
 </form>
 </div>
 
-{$errors}
-
 </div>
 
 {include file={filePath file="copynotice.tpl"}}
 
-<script type="text/javascript">
+<script>
 <!--
   enable_keyPress = false;
   focus_field("{$focusfield}");
diff --git a/ihtml/themes/legacy/recovery.tpl b/ihtml/themes/legacy/recovery.tpl
index a57f0f1d37056412dc82a1847641e4900a37c275..789c161a4b952a112d14c91dcca198db5685c587 100644
--- a/ihtml/themes/legacy/recovery.tpl
+++ b/ihtml/themes/legacy/recovery.tpl
@@ -9,6 +9,7 @@
 <div id="window-div">
 
   <form action='recovery.php{$params}' method='post' name='mainform' onSubmit='js_check(this);return true;'>
+    <input type="hidden" name="CSRFtoken" value="{$CSRFtoken}"/>
 
   <div id="window-titlebar">
     <p>
@@ -52,7 +53,7 @@
       <label for="new_password_repeated">
         <img class="center" src="geticon.php?context=status&amp;icon=dialog-password&amp;size=48" alt="{t}New password repeated{/t}" title="{t}New password repeated{/t}"/>&nbsp;
       </label>
-      <input type="password" name="new_password_repeated" id="new_password_repeated" maxlength="40" value="" title="{t}New password repeated{/t}" />
+      <input type="password" name="new_password_repeated" id="new_password_repeated" value="" title="{t}New password repeated{/t}" />
       <br>
       <div style="width: 190px; display: inline-block; margin-left: 54px;" title="{t}Password strength{/t}">
         <span id="meterEmpty" style="padding:0;margin:0;width:100%;background-color:#DC143C;display:block;height:5px;">
@@ -128,7 +129,7 @@
 {include file={filePath file="copynotice.tpl"}}
 
   <!-- Place cursor in email field -->
-  <script type="text/javascript">
+  <script>
     <!-- // First input field on page
     focus_field('error_accept','login','directory','username','current_password','email_address');
     next_msg_dialog();
diff --git a/include/accept-to-gettext.inc b/include/accept-to-gettext.inc
index c78c7cdd4f771d07c552e15862429976c5692f9f..a0fffc4fe785dff119a16dd97410f950285db48f 100644
--- a/include/accept-to-gettext.inc
+++ b/include/accept-to-gettext.inc
@@ -3,7 +3,7 @@
  * accept-to-gettext.inc -- convert information in 'Accept-*' headers to
  * gettext language identifiers.
  * Copyright (c) 2003, Wouter Verhelst <wouter@debian.org>
- * Copyright (c) 2012-2018  FusionDirectory
+ * Copyright (c) 2012-2018, FusionDirectory
  *
  * 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
@@ -155,7 +155,7 @@ function al2gt ($gettextlangs)
     if (!($infos = parse_gettext_lang($gtlang))) {
       continue;
     }
-    list($lang, $country, $char) = $infos;
+    list ($lang, $country, $char) = $infos;
 
     $lang_score = max_scores($lang_scores, [$lang,$lang.'-'.$country,'*']);
     $char_score = max_scores($char_scores, [$char,'*']);
@@ -165,7 +165,7 @@ function al2gt ($gettextlangs)
     }
 
     // if lang scores are equals we compare char scores
-    if   (($lang_score > $max_l_score)
+    if (($lang_score > $max_l_score)
       || (($lang_score == $max_l_score) && ($char_score > $max_c_score))) {
       $max_l_score  = $lang_score;
       $max_c_score  = $char_score;
@@ -179,4 +179,3 @@ function al2gt ($gettextlangs)
 
   return $max_lang;
 }
-?>
diff --git a/include/class_ACLPermissions.inc b/include/class_ACLPermissions.inc
new file mode 100644
index 0000000000000000000000000000000000000000..253c50312c8ede8368bd88409dd0c761b402a6e7
--- /dev/null
+++ b/include/class_ACLPermissions.inc
@@ -0,0 +1,84 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class ACLPermissions
+{
+  static protected $letters = [
+    'r' => 'read',
+    'w' => 'write',
+    'c' => 'create',
+    'd' => 'delete',
+    'm' => 'move',
+  ];
+
+  protected $read;
+  protected $write;
+  protected $create;
+  protected $delete;
+  protected $move;
+
+  /* Rights on self only */
+  protected $self;
+
+  public function __construct (string $rights = '')
+  {
+    foreach (static::$letters as $letter => $var) {
+      $this->$var = (strpos($rights, $letter) !== FALSE);
+    }
+    $this->self = (strpos($rights, 's') !== FALSE);
+  }
+
+  public function toString (bool $readOnly = FALSE): string
+  {
+    $string = ($this->self ? 's' : '');
+    if ($readOnly) {
+      return $string.($this->read ? 'r' : '');
+    } else {
+      foreach (static::$letters as $letter => $var) {
+        if ($this->$var) {
+          $string .= $letter;
+        }
+      }
+      return $string;
+    }
+  }
+
+  public function __toString ()
+  {
+    return $this->toString(FALSE);
+  }
+
+  public function merge (ACLPermissions $merge)
+  {
+    foreach (static::$letters as $var) {
+      $this->$var = ($this->$var || $merge->$var);
+    }
+  }
+
+  public function isSelf (): bool
+  {
+    return $this->self;
+  }
+
+  public function isFull (): bool
+  {
+    return ($this->read && $this->write && $this->create && $this->delete && $this->move);
+  }
+}
diff --git a/include/class_CSRFProtection.inc b/include/class_CSRFProtection.inc
index 8bbb98578b450027a2d34c4949b1acd556ad4891..a726c4592370c8a4f1cfe70a150781b754c8e4a8 100644
--- a/include/class_CSRFProtection.inc
+++ b/include/class_CSRFProtection.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2017-2018  FusionDirectory
+  Copyright (C) 2017-2019 FusionDirectory
 
   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
@@ -31,6 +31,10 @@ class CSRFProtection
 
     static::checkHeaders();
 
+    if (!session::is_set('CSRFtoken')) {
+      throw new FusionDirectoryException('Unexpected CSRF protection token');
+    }
+
     if ($_POST['CSRFtoken'] !== static::getToken()) {
       throw new FusionDirectoryException('CSRF protection token invalid');
     }
@@ -58,8 +62,7 @@ class CSRFProtection
       if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
         /* Only take the first value, there may be several separated by commas */
         list($target) = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST'], 2);
-      } else
-      if (!empty($_SERVER['HTTP_HOST'])) {
+      } elseif (!empty($_SERVER['HTTP_HOST'])) {
         $target = $_SERVER['HTTP_HOST'];
       }
       if ($target && !hash_equals($origin, $target)) {
diff --git a/include/class_CopyPasteHandler.inc b/include/class_CopyPasteHandler.inc
index 742dccb6709952d5eb160494f6a6ac0fcbe8d644..7a4019955acc1aeddc52c0738ac17d023459e017 100644
--- a/include/class_CopyPasteHandler.inc
+++ b/include/class_CopyPasteHandler.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2017  FusionDirectory
 
   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
@@ -27,9 +27,9 @@
 /*!
  * \brief This class contains all function to copy and paste
  */
-class CopyPasteHandler
+class CopyPasteHandler implements FusionDirectoryDialog
 {
-  var $current;
+  var $current = FALSE;
 
   /*!
    * \brief This array contains all dns of the currently copied objects
@@ -43,23 +43,20 @@ class CopyPasteHandler
   /*!
    *  \brief The dn of the last edited object
    */
-  var $lastdn = "";
+  protected $lastdn = '';
 
-  var $disallowed_objects = [];
-  var $objects_to_fix     = [];
-  var $clean_objects      = [];
-  var $require_update     = FALSE;
+  protected $disallowed_objects = [];
+  protected $objects_to_fix     = [];
+  protected $clean_objects      = [];
+  protected $require_update     = FALSE;
 
   /*!
    * \brief Create CP handler
    */
   function __construct ()
   {
-    $this->current  = NULL;
-    $this->queue    = [];
   }
 
-
   /*!
    * \brief Entry entry to Copy & Paste queue.
    * A Queue entry is represented as follows.
@@ -75,7 +72,7 @@ class CopyPasteHandler
    */
   function add_to_queue ($dn, $action, $type)
   {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'add_to_queue');
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'add_to_queue');
 
     if (!in_array($action, ['cut','copy'])) {
       trigger_error(sprintf('Specified action "%s" does not exists for copy & paste.', $action));
@@ -131,22 +128,21 @@ class CopyPasteHandler
    */
   function entries_queued ()
   {
-    return ((count($this->queue) > 0) || ($this->current != FALSE));
+    return ((count($this->queue) > 0) || ($this->current !== FALSE));
   }
 
   /*!
    * \brief Paste one entry from LDAP
    */
-  protected function load_entry_from_ldap ($entry, $base)
+  protected function load_entry_from_ldap ($entry)
   {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $entry['dn'], 'load_entry_from_ldap');
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $entry['dn'], 'load_entry_from_ldap');
     if (!isset($entry['tab_class']) && !isset($entry['type'])) {
       return [];
     }
 
     $entry['object'] = objects::open($entry['dn'], $entry['type']);
 
-    $entry['object']->set_acl_base($base);
     if ($entry['parent'] !== NULL) {
       $entry['object']->parent = $entry['parent'];
     }
@@ -155,16 +151,14 @@ class CopyPasteHandler
       $entry['object']->resetCopyInfos();
     }
 
+    logging::log('copy', $entry['method'], $entry['dn'], [], '');
+
     $entry['object']->resetBase();
 
     return $entry;
   }
 
-  /*!
-   * \brief Displays a dialog which allows the user to fix all dependencies of this object.
-   *      Create unique names, ids, or what ever
-   */
-  function execute ($base)
+  public function update (): bool
   {
     $ui = get_userinfo();
 
@@ -181,7 +175,7 @@ class CopyPasteHandler
 
         /* Update entries on demand */
         if (!isset($entry['object'])) {
-          $entry = $this->load_entry_from_ldap($entry, $base);
+          $entry = $this->load_entry_from_ldap($entry);
           $this->queue[$key] = $entry;
         }
 
@@ -190,9 +184,8 @@ class CopyPasteHandler
         $cut_acl  = $ui->is_cutable($entry['dn'], $entry['aclCategory'], $entry['mainTab']);
 
         /* Check permissions */
-        if (($entry['method'] == 'copy') && !$copy_acl) {
-          $this->disallowed_objects[$key] = $entry;
-        } elseif (($entry['method'] == 'cut') && !$cut_acl) {
+        if ((($entry['method'] == 'copy') && !$copy_acl)
+          || (($entry['method'] == 'cut') && !$cut_acl)) {
           $this->disallowed_objects[$key] = $entry;
         } else {
           $this->clean_objects[$key] = $entry;
@@ -203,14 +196,14 @@ class CopyPasteHandler
         foreach ($this->disallowed_objects as $entry) {
           $dns[] = $entry['dn'];
         }
-        msg_dialog::display(_('Permission'), msgPool::permCreate($dns), INFO_DIALOG);
+        $error = new FusionDirectoryPermissionError(msgPool::permCreate($dns));
+        $error->display();
       }
       $this->require_update = FALSE;
     }
 
     /* Save objects that can be pasted directly */
     if (count($this->clean_objects)) {
-      $this->save_object();
       foreach ($this->clean_objects as $key => $entry) {
         $this->current = $entry;
         $errors = $this->current['object']->save();
@@ -229,9 +222,11 @@ class CopyPasteHandler
 
     /* Save edited entry and force loading new one */
     if (isset($this->current['object'])) {
-      $this->current['object']->save_object();
+      $dialogWasOpened = $this->current['object']->dialogOpened();
+      $this->current['object']->readPost();
+      $this->current['object']->update();
       /* Save current object if edition is finished */
-      if (isset($_POST['edit_finish'])) {
+      if (!$dialogWasOpened && !$this->current['object']->dialogOpened() && isset($_POST['edit_finish'])) {
         $errors = $this->current['object']->save();
 
         if (empty($errors)) {
@@ -242,9 +237,17 @@ class CopyPasteHandler
       }
     }
 
+    return TRUE;
+  }
+
+  /*!
+   * \brief Displays a dialog which allows the user to fix all dependencies of this object.
+   *      Create unique names, ids, or what ever
+   */
+  public function render (): string
+  {
     /* Display a list of all pastable entries */
     if ($this->current || count($this->objects_to_fix)) {
-      $this->save_object();
       if (!$this->current) {
         $key = key($this->objects_to_fix);
         if ($key !== NULL) {
@@ -254,19 +257,17 @@ class CopyPasteHandler
         }
       }
       if ($this->current) {
-        $display = $this->current['object']->execute();
-        if ($this->current['object']->dialogOpened()) {
-          return $display;
-        } else {
+        $display = $this->current['object']->render();
+        if (!$this->current['object']->dialogOpened()) {
           // Display ok, (apply) and cancel buttons
           $display .= '<p class="plugbottom">'."\n";
           $display .= '<input type="submit" name="edit_finish" style="width:80px" value="'.msgPool::okButton().'"/>'."\n";
           $display .= "&nbsp;\n";
-          $display .= '<input type="submit" name="abort_current_cut-copy_operation" value="'.msgPool::cancelButton().'"/>'."\n";
-          $display .= '<input type="submit" name="abort_all_cut-copy_operations" value="'._('Cancel all').'"/>'."\n";
+          $display .= '<input type="submit" formnovalidate="formnovalidate" name="abort_current_cut-copy_operation" value="'.msgPool::cancelButton().'"/>'."\n";
+          $display .= '<input type="submit" formnovalidate="formnovalidate" name="abort_all_cut-copy_operations" value="'._('Cancel all').'"/>'."\n";
           $display .= '</p>';
-          return $display;
         }
+        return $display;
       }
     }
     return '';
@@ -275,6 +276,7 @@ class CopyPasteHandler
   private function current_saved ()
   {
     $this->lastdn   = $this->current['object']->dn;
+    logging::log('copy', 'paste', $this->lastdn);
     $this->handleReferences();
     $this->current  = FALSE;
   }
@@ -289,11 +291,10 @@ class CopyPasteHandler
     return $this->lastdn;
   }
 
-
   /*!
    * \brief Save new values posted by copy & paste dialog
    */
-  function save_object ()
+  public function readPost ()
   {
     if (isset($_POST['abort_current_cut-copy_operation'])) {
       $this->current = FALSE;
@@ -334,4 +335,3 @@ class CopyPasteHandler
     return $Copy_Paste;
   }
 }
-?>
diff --git a/include/class_IconTheme.inc b/include/class_IconTheme.inc
index 38f856e8d5d80bc6c33869889219c6b3a477fd63..1a1bf372eb7c830b5245fc8b198f7fd27d0668b5 100644
--- a/include/class_IconTheme.inc
+++ b/include/class_IconTheme.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -49,7 +49,7 @@ class IconThemeDir
    * Defaults to 2 if not present. */
   private $Threshold = 2;
 
-  public function __construct ($infos)
+  function __construct ($infos)
   {
     $this->Size     = $infos['Size'];
     $this->MinSize  = $infos['Size'];
@@ -66,26 +66,26 @@ class IconThemeDir
     }
   }
 
-  public function MatchesSize ($size)
+  function MatchesSize ($size)
   {
     switch ($this->Type) {
       case 'Fixed':
         return ($this->Size == $size);
-      default:
       case 'Threshold':
       case 'Scalable':
+      default:
         return (($this->MinSize <= $size) && ($size <= $this->MaxSize));
     }
   }
 
-  public function SizeDistance ($size)
+  function SizeDistance ($size)
   {
     switch ($this->Type) {
       case 'Fixed':
         return abs($this->Size - $size);
-      default:
       case 'Threshold':
       case 'Scalable':
+      default:
         if ($size < $this->MinSize) {
           return $this->MinSize - $size;
         }
@@ -106,7 +106,7 @@ class IconTheme
   private $path;
   private $parent;
 
-  public function __construct ($folder, $default_parent)
+  function __construct ($folder, $default_parent)
   {
     $this->path = $folder;
     $datas  = @parse_ini_file($folder.'/index.theme', TRUE, INI_SCANNER_RAW);
@@ -116,7 +116,9 @@ class IconTheme
     if (isset($datas['Icon Theme']['Directories']) && !empty($datas['Icon Theme']['Directories'])) {
       $dirs   = preg_split('/,/', $datas['Icon Theme']['Directories']);
       foreach ($dirs as $name) {
-        $this->subdirs[strtolower($datas[$name]['Context'])][$name] = new IconThemeDir($datas[$name]);
+        if (isset($datas[$name])) {
+          $this->subdirs[strtolower($datas[$name]['Context'])][$name] = new IconThemeDir($datas[$name]);
+        }
       }
     }
 
@@ -127,16 +129,13 @@ class IconTheme
     }
   }
 
-  public function FindIcon ($context, $icon, $size)
+  function FindIcon ($context, $icon, $size)
   {
     $context = strtolower($context);
-    if (strpos($icon, '/') !== FALSE) {
-      return NULL;
-    }
     return $this->FindIconHelper($context, $icon, $size);
   }
 
-  protected function FindIconHelper ($context, $icon, $size)
+  function FindIconHelper ($context, $icon, $size)
   {
     $filename = $this->LookupIcon($context, $icon, $size);
     if ($filename != NULL) {
@@ -152,17 +151,17 @@ class IconTheme
     }
 
     if ($this->parent !== NULL) {
-      $parent = $this->findTheme($this->parent);
-      if ($parent === NULL) {
-        $parent = $this->findTheme(static::$default_theme);
+      $parentTheme = $this->findTheme($this->parent);
+      if ($parentTheme === NULL) {
+        $parentTheme = $this->findTheme(static::$default_theme);
       }
-      return $parent->FindIconHelper($context, $icon, $size);
+      return $parentTheme->FindIconHelper($context, $icon, $size);
     }
 
     return NULL;
   }
 
-  protected function LookupIcon ($context, $iconname, $size)
+  function LookupIcon ($context, $iconname, $size)
   {
     if (!isset($this->subdirs[$context])) {
       return NULL;
@@ -205,6 +204,7 @@ class IconTheme
 
   /* We store themes in the session. To do otherwise, override these methods. */
   static public $session_var    = 'IconThemes';
+
   static public function loadThemes ($path)
   {
     $themes = [];
@@ -229,6 +229,7 @@ class IconTheme
   static public function findThemeIcon ($theme, $context, $icon, $size)
   {
     if (!isset($_SESSION[static::$session_var])) {
+      trigger_error('Error: no theme found in session');
       die('Error: no theme found in session');
     }
     if (isset($_SESSION[static::$session_var][$theme])) {
@@ -236,11 +237,11 @@ class IconTheme
     }
     return $_SESSION[static::$session_var][static::$default_theme]->FindIcon($context, $icon, $size);
   }
+
   public function findTheme ($theme)
   {
     if (isset($_SESSION[static::$session_var][$theme])) {
-      $ret = &$_SESSION[static::$session_var][$theme];
-      return $ret;
+      return $_SESSION[static::$session_var][$theme];
     }
     return NULL;
   }
@@ -300,6 +301,9 @@ class IconTheme
     'actions/application-exit'      => [
       ['actions','system-log-out'],
     ],
+    'actions/archive'      => [
+      ['mimetypes','application-x-archive'],
+    ],
     'actions/document-export'       => [
       ['actions','document-send'],
     ],
@@ -403,5 +407,3 @@ class IconTheme
     ],
   ];
 }
-
-?>
diff --git a/include/class_Language.inc b/include/class_Language.inc
index cd1570bb3e92a07b1f088e7a08316e6359775550..aeddcb541956141aea66c8b48433405eca5a279b 100644
--- a/include/class_Language.inc
+++ b/include/class_Language.inc
@@ -42,7 +42,7 @@ class Language
       $lang = static::detect();
     }
 
-    list($language, $country, $char) = parse_gettext_lang($lang);
+    list ($language, , $char) = parse_gettext_lang($lang);
     putenv('LANGUAGE=');
     putenv("LANG=$lang");
     $langset = setlocale(LC_ALL, $lang, $language.'.'.$char);
@@ -60,7 +60,7 @@ class Language
     bindtextdomain($domain, LOCALE_DIR);
     textdomain($domain);
     if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, 'Setting language to');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $lang, 'Setting language to');
     }
 
     $ret = FALSE;
@@ -70,11 +70,11 @@ class Language
       $ret = TRUE;
       if (session::is_set('plist')) {
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
-          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, session::get('lang'), 'Plist already loaded with language');
+          logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, session::get('lang'), 'Plist already loaded with language');
         }
         session::un_set('plist');
         session::set('lang', $lang);
-        load_plist();
+        pluglist::load();
       }
     }
 
@@ -127,6 +127,30 @@ class Language
     return al2gt($langs);
   }
 
+  /*!
+   * \brief Checks if a locale is available
+   *
+   * \param string $lang Language locale to use
+   */
+  public static function isAvailable (string $lang): bool
+  {
+    if (strpos($lang, '.') === FALSE) {
+      $lang = $lang.'.UTF-8';
+    }
+
+    /* Store current locale */
+    $locale = setlocale(LC_ALL, 0);
+
+    /* Try to switch */
+    list ($language, , $char) = parse_gettext_lang($lang);
+    $langset = setlocale(LC_ALL, $lang, $language.'.'.$char);
+
+    /* Set current locale back */
+    setlocale(LC_ALL, $locale);
+
+    return ($langset !== FALSE);
+  }
+
   /*!
    * \brief Get the language for the user connecting
    *
@@ -226,12 +250,14 @@ class Language
 
   public static function setHeaders ($language, $mime)
   {
-    list($lang, $country, $char) = parse_gettext_lang($language);
+    list ($lang, $country, $char) = parse_gettext_lang($language);
 
     if (!headers_sent()) {
       header("Content-Language: $lang".(empty($country) ? '' : "-$country"));
-      if (!empty($char)) {
+      if (!empty($char) && preg_match('|^text/|', $mime)) {
         header("Content-Type: $mime; charset=$char");
+      } else {
+        header("Content-Type: $mime");
       }
     } else {
       trigger_error('Could not set language '.$lang.' header, headers already sent');
diff --git a/include/class_Lock.inc b/include/class_Lock.inc
new file mode 100644
index 0000000000000000000000000000000000000000..4e3c06f1d945099e3d1b9c76021ce46bdfbc882f
--- /dev/null
+++ b/include/class_Lock.inc
@@ -0,0 +1,377 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class Lock
+{
+  public $dn;
+  public $objectDn;
+  public $userDn;
+  public $timestamp;
+
+  public function __construct (string $dn, string $objectDn, string $userDn, DateTime $timestamp)
+  {
+    $this->dn         = $dn;
+    $this->objectDn   = $objectDn;
+    $this->userDn     = $userDn;
+    $this->timestamp  = $timestamp;
+  }
+
+  /*!
+   *  \brief Add a lock for object(s)
+   *
+   * Adds a lock by the specified user for one ore multiple objects.
+   * If a lock for that object already exists from another user, an error is triggered.
+   *
+   * \param array $object The object or array of objects to lock
+   *
+   * \param string $user  The user who shall own the lock
+   */
+  public static function add ($object, string $user = NULL)
+  {
+    global $config, $ui;
+
+    /* Remember which entries were opened as read only, because we
+        don't need to remove any locks for them later */
+    if (!session::is_set('LOCK_CACHE')) {
+      session::set('LOCK_CACHE', ['']);
+    }
+    if (is_array($object)) {
+      foreach ($object as $obj) {
+        static::add($obj, $user);
+      }
+      return;
+    }
+
+    if ($user === NULL) {
+      $user = $ui->dn;
+    }
+
+    $cache = &session::get_ref('LOCK_CACHE');
+    if (isset($_POST['open_readonly'])) {
+      $cache['READ_ONLY'][$object] = TRUE;
+      return;
+    }
+    if (isset($cache['READ_ONLY'][$object])) {
+      unset($cache['READ_ONLY'][$object]);
+    }
+
+    /* Just a sanity check... */
+    if (empty($object) || empty($user)) {
+      throw new FusionDirectoryError(htmlescape(_('Error while adding a lock. Contact the developers!')));
+    }
+
+    /* Check for existing entries in lock area */
+    $ldap = $config->get_ldap_link();
+    $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
+    $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($user).')(fdObjectDn='.base64_encode($object).'))',
+        ['fdUserDn']);
+    if ($ldap->get_errno() == 32) {
+      /* No such object, means the locking branch is missing, create it */
+      $ldap->cd($config->current['BASE']);
+      try {
+        $ldap->create_missing_trees(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
+      } catch (FusionDirectoryError $error) {
+        $error->display();
+      }
+      $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
+      $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($user).')(fdObjectDn='.base64_encode($object).'))',
+        ['fdUserDn']);
+    }
+    if (!$ldap->success()) {
+      throw new FusionDirectoryError(
+        sprintf(
+          htmlescape(_('Cannot create locking information in LDAP tree. Please contact your administrator!')).
+            '<br><br>'.htmlescape(_('LDAP server returned: %s')),
+          '<br><br><i>'.htmlescape($ldap->get_error()).'</i>'
+        )
+      );
+    }
+
+    /* Add lock if none present */
+    if ($ldap->count() == 0) {
+      $attrs  = [];
+      $name   = md5($object);
+      $dn     = 'cn='.$name.','.get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'];
+      $ldap->cd($dn);
+      $attrs = [
+        'objectClass'     => 'fdLockEntry',
+        'cn'              => $name,
+        'fdUserDn'        => $user,
+        'fdObjectDn'      => base64_encode($object),
+        'fdLockTimestamp' => LdapGeneralizedTime::toString(new DateTime('now')),
+      ];
+      $ldap->add($attrs);
+      if (!$ldap->success()) {
+        throw new FusionDirectoryLdapError($dn, LDAP_ADD, $ldap->get_error(), $ldap->get_errno());
+      }
+    }
+  }
+
+  /*!
+   * \brief Remove a lock for object(s)
+   *
+   * Remove a lock for object(s)
+   *
+   * \param mixed $object object or array of objects for which a lock shall be removed
+   */
+  public static function deleteByObject ($object)
+  {
+    global $config;
+
+    if (is_array($object)) {
+      foreach ($object as $obj) {
+        static::deleteByObject($obj);
+      }
+      return;
+    }
+
+    /* Sanity check */
+    if ($object == '') {
+      return;
+    }
+
+    /* If this object was opened in read only mode then
+        skip removing the lock entry, there wasn't any lock created.
+      */
+    if (session::is_set('LOCK_CACHE')) {
+      $cache = &session::get_ref('LOCK_CACHE');
+      if (isset($cache['READ_ONLY'][$object])) {
+        unset($cache['READ_ONLY'][$object]);
+        return;
+      }
+    }
+
+    /* Check for existance and remove the entry */
+    $ldap = $config->get_ldap_link();
+    $dn   = get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'];
+    $ldap->cd($dn);
+    $ldap->search('(&(objectClass=fdLockEntry)(fdObjectDn='.base64_encode($object).'))', ['fdObjectDn']);
+    if (!$ldap->success()) {
+      throw new FusionDirectoryLdapError($dn, LDAP_SEARCH, $ldap->get_error(), $ldap->get_errno());
+    } elseif ($attrs = $ldap->fetch()) {
+      $ldap->rmdir($attrs['dn']);
+      if (!$ldap->success()) {
+        throw new FusionDirectoryLdapError($attrs['dn'], LDAP_DEL, $ldap->get_error(), $ldap->get_errno());
+      }
+    }
+  }
+
+  /*!
+   * \brief Remove all locks owned by a specific userdn
+   *
+   * For a given userdn remove all existing locks. This is usually
+   * called on logout.
+   *
+   * \param string $userdn the subject whose locks shall be deleted
+   */
+  public static function deleteByUser (string $userdn)
+  {
+    global $config;
+
+    /* Get LDAP ressources */
+    $ldap = $config->get_ldap_link();
+    $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
+
+    /* Remove all objects of this user, drop errors silently in this case. */
+    $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($userdn).'))', ['fdUserDn']);
+    while ($attrs = $ldap->fetch()) {
+      $ldap->rmdir($attrs['dn']);
+    }
+  }
+
+  /*!
+   * \brief Get locks for objects
+   *
+   * \param mixed $objects Array of dns for which a lock will be searched or dn of a single object
+   *
+   * \param boolean $allow_readonly TRUE if readonly access should be permitted,
+   * FALSE if not (default).
+   *
+   * \return A numbered array containing all found locks as an array with key 'object'
+   * and key 'user', or FALSE if an error occured.
+   */
+  public static function get ($objects, bool $allow_readonly = FALSE): array
+  {
+    global $config;
+
+    if (is_array($objects) && (count($objects) == 1)) {
+      $objects = reset($objects);
+    }
+    if (is_array($objects)) {
+      if ($allow_readonly) {
+        throw new FusionDirectoryException('Read only is not possible for several objects');
+      }
+      $filter = '(&(objectClass=fdLockEntry)(|';
+      foreach ($objects as $obj) {
+        $filter .= '(fdObjectDn='.base64_encode($obj).')';
+      }
+      $filter .= '))';
+    } else {
+      if ($allow_readonly && isset($_POST['open_readonly'])) {
+        /* If readonly is allowed and asked and there is only one object, bypass lock detection */
+        return [];
+      }
+      $filter = '(&(objectClass=fdLockEntry)(fdObjectDn='.base64_encode($objects).'))';
+    }
+
+    /* Get LDAP link, check for presence of the lock entry */
+    $ldap = $config->get_ldap_link();
+    $dn   = get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'];
+    $ldap->cd($dn);
+    $ldap->search($filter, ['fdUserDn','fdObjectDn', 'fdLockTimestamp']);
+    if (!$ldap->success()) {
+      throw new FusionDirectoryLdapError($dn, LDAP_SEARCH, $ldap->get_error(), $ldap->get_errno());
+    }
+
+    $locks = [];
+    $sessionLifetime = $config->get_cfg_value('sessionLifetime', 1800);
+    if ($sessionLifetime > 0) {
+      $expirationDate = (new DateTime())->sub(new DateInterval('PT'.$sessionLifetime.'S'));
+    }
+    while ($attrs = $ldap->fetch()) {
+      $date = LdapGeneralizedTime::fromString($attrs['fdLockTimestamp'][0]);
+      if (isset($expirationDate) && ($date < $expirationDate)) {
+        /* Delete expired locks */
+        $ldap->rmdir($attrs['dn']);
+      } else {
+        $locks[] = new Lock(
+          $attrs['dn'],
+          base64_decode($attrs['fdObjectDn'][0]),
+          $attrs['fdUserDn'][0],
+          $date
+        );
+      }
+    }
+
+    if (!is_array($objects) && (count($locks) > 1)) {
+      /* Hmm. We're removing broken LDAP information here and issue a warning. */
+      $warning = new FusionDirectoryWarning(htmlescape(_('Found multiple locks for object to be locked. This should not happen - cleaning up multiple references.')));
+      $warning->display();
+
+      /* Clean up these references now... */
+      foreach ($locks as $lock) {
+        $ldap->rmdir($lock->dn);
+      }
+
+      return [];
+    }
+
+    return $locks;
+  }
+
+
+  /*!
+   *  \brief Add a lock for object(s) or fail
+   *
+   * Adds a lock by the specified user for one ore multiple objects.
+   * If the lock for that object already exists, waits a bit and retry.
+   * If a lock cannot be set, throws.
+   *
+   * \param array|string $object The object or array of objects to lock
+   *
+   * \param string $user  The user who shall own the lock
+   *
+   * \param int $retries  how many times we can retry (waiting a second each time)
+   */
+  public static function addOrFail ($object, string $user = NULL, int $retries = 10)
+  {
+    $wait = $retries;
+    while (!empty($locks = Lock::get($object))) {
+      sleep(1);
+
+      /* Oups - timed out */
+      if ($wait-- == 0) {
+        throw new FusionDirectoryException(_('Timeout while waiting for lock!'));
+      }
+    }
+    Lock::add($object, $user);
+  }
+
+  /*!
+   * \brief Generate a lock message
+   *
+   * This message shows a warning to the user, that a certain object is locked
+   * and presents some choices how the user can proceed. By default this
+   * is 'Cancel' or 'Edit anyway', but depending on the function call
+   * its possible to allow readonly access, too.
+   *
+   * Example usage:
+   * \code
+   * if ($locks = Lock::get($this->dn)) {
+   *   return Lock::genLockedMessage($locks, TRUE);
+   * }
+   * \endcode
+   *
+   * \param string $locks the locks as returned by Lock::get
+   *
+   * \param boolean $allowReadonly TRUE if readonly access should be permitted,
+   * FALSE if not (default).
+   *
+   * \param string $action Label of the action button, "Edit anyway" by default. Will be escaped.
+   *
+   */
+  public static function genLockedMessage (array $locks, bool $allowReadonly = FALSE, string $action = NULL): string
+  {
+    /* Save variables from LOCK_VARS_TO_USE in session - for further editing */
+    if (session::is_set('LOCK_VARS_TO_USE') && count(session::get('LOCK_VARS_TO_USE'))) {
+      $LOCK_VARS_USED_GET       = [];
+      $LOCK_VARS_USED_POST      = [];
+      $LOCK_VARS_USED_REQUEST   = [];
+      $LOCK_VARS_TO_USE         = session::get('LOCK_VARS_TO_USE');
+
+      foreach ($LOCK_VARS_TO_USE as $name) {
+        if (empty($name)) {
+          continue;
+        }
+
+        foreach ($_POST as $Pname => $Pvalue) {
+          if (preg_match($name, $Pname)) {
+            $LOCK_VARS_USED_POST[$Pname] = $_POST[$Pname];
+          }
+        }
+
+        foreach ($_GET as $Pname => $Pvalue) {
+          if (preg_match($name, $Pname)) {
+            $LOCK_VARS_USED_GET[$Pname] = $_GET[$Pname];
+          }
+        }
+
+        foreach ($_REQUEST as $Pname => $Pvalue) {
+          if (preg_match($name, $Pname)) {
+            $LOCK_VARS_USED_REQUEST[$Pname] = $_REQUEST[$Pname];
+          }
+        }
+      }
+      session::set('LOCK_VARS_TO_USE',        []);
+      session::set('LOCK_VARS_USED_GET',      $LOCK_VARS_USED_GET);
+      session::set('LOCK_VARS_USED_POST',     $LOCK_VARS_USED_POST);
+      session::set('LOCK_VARS_USED_REQUEST',  $LOCK_VARS_USED_REQUEST);
+    }
+
+    /* Prepare and show template */
+    $smarty = get_smarty();
+    $smarty->assign('allow_readonly', $allowReadonly);
+    $smarty->assign('action',         ($action ?? _('Edit anyway')));
+    $smarty->assign('locks',          $locks);
+
+    return $smarty->fetch(get_template_path('islocked.tpl'));
+  }
+}
diff --git a/include/class_SnapshotDialogs.inc b/include/class_SnapshotDialogs.inc
deleted file mode 100644
index ead678ca1c62419b1afcc5f46e8535a3618609eb..0000000000000000000000000000000000000000
--- a/include/class_SnapshotDialogs.inc
+++ /dev/null
@@ -1,409 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \brief Snapshot creation dialog
- */
-class SnapshotCreateDialog extends simplePlugin
-{
-  public $aclCategory;
-
-  static function plInfo ()
-  {
-    return [
-      'plShortName' => 'SnapshotCreateDialog',
-    ];
-  }
-
-  static function getAttributesInfo ()
-  {
-    return [
-      'main' => [
-        'name'  => _('Creating an object snapshot'),
-        'attrs' => [
-          new DisplayAttribute(
-            _('Object'), _('DN of the object you are creating a snapshot of'),
-            'object_dn', FALSE
-          ),
-          new DisplayAttribute(
-            _('Timestamp'), _('Timestamp of this snapshot creation'),
-            'timestamp', FALSE
-          ),
-          new TextAreaAttribute(
-            _('Reason'), _('Reason for creating this snapshot'),
-            'description', TRUE,
-            '',
-            'SnapshotHandler'
-          ),
-        ]
-      ],
-    ];
-  }
-
-  function __construct ($dn, $parent, $aclCategory)
-  {
-    parent::__construct();
-    $this->attributesAccess['description']->setInLdap(FALSE);
-    $this->object_dn    = $dn;
-    $this->parent       = $parent;
-    $this->aclCategory  = $aclCategory;
-  }
-
-  /*! \brief Check if logged in user have enough right to write this attribute value
-   *
-   * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
-   */
-  function attrIsWriteable ($attr)
-  {
-    global $ui;
-
-    if (!is_object($attr)) {
-      $attr = $this->attributesAccess[$attr];
-    }
-    if ($attr->getLdapName() == 'description') {
-      return in_array('c', $ui->get_snapshot_permissions($this->acl_base, $this->aclCategory));
-    } else {
-      return parent::attrIsWriteable($attr);
-    }
-  }
-
-  function renderAttributes ($readOnly = FALSE)
-  {
-    global $ui;
-    $smarty = get_smarty();
-
-    $permissions = $ui->get_snapshot_permissions($this->acl_base, $this->aclCategory);
-    $acl = '';
-    if (in_array('c', $permissions)) {
-      $acl .= 'crw';
-    }
-    $smarty->assign('SnapshotHandlerACL', $acl);
-
-    return parent::renderAttributes($readOnly);
-  }
-
-  function execute ()
-  {
-    $this->timestamp  = date(_('Y-m-d, H:i:s'));
-    $str = parent::execute();
-
-    $str .= '<p class="plugbottom">'.
-           '  <input type="submit" name="edit_finish" value="'.msgPool::saveButton().'"/>&nbsp;'.
-           '  <input type="submit" name="edit_cancel" value="'.msgPool::cancelButton().'"/>'.
-           '</p>';
-
-    return $str;
-  }
-
-  function save ()
-  {
-    $this->parent->createSnapshot($this->object_dn, $this->description);
-  }
-}
-
-/*!
- * \brief Attribute which list the snapshots
- */
-class SnapshotsAttribute extends OrderedArrayAttribute
-{
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = '')
-  {
-    Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->edit_enabled = FALSE;
-    $this->order        = FALSE;
-    $this->attribute    = FALSE;
-    $this->setInLdap(FALSE);
-  }
-
-  function setParent (&$plugin)
-  {
-    parent::setParent($plugin);
-    if (is_object($this->plugin)) {
-      if ($this->plugin->global) {
-        $this->setHeaders([
-          _('DN'),
-          _('Date'),
-          _('Description'),
-          ''
-        ]);
-      } else {
-        $this->setHeaders([
-          _('Date'),
-          _('Description'),
-          ''
-        ]);
-      }
-    }
-  }
-
-  function loadPostValue ()
-  {
-    if ($this->isVisible()) {
-      parent::loadPostValue();
-      parent::applyPostValue();
-    }
-  }
-
-  protected function handleEdit ($key)
-  {
-  }
-
-  function applyPostValue ()
-  {
-  }
-
-  function addValue ($value)
-  {
-    $this->value[] = $value;
-    $this->reIndexValues();
-  }
-
-  function renderButtons ()
-  {
-    return '';
-  }
-
-  protected function getAttributeArrayValue ($key, $value)
-  {
-    $values = [
-      date(_('Y-m-d, H:i:s'), preg_replace('/\-.*$/', '', $value['gosaSnapshotTimestamp'][0])),
-      $value['description'][0]
-    ];
-    if ($this->plugin->global) {
-      array_unshift($values, $value['gosaSnapshotDN'][0]);
-    }
-    return $values;
-  }
-
-  protected function genRowIcons ($key, $value)
-  {
-    $id = $this->getHtmlId();
-    list($img, $nbicons) = parent::genRowIcons($key, $value);
-    $img = $this->renderInputField(
-      'image', $id.'_restore_'.$key,
-      [
-        'src'   => 'geticon.php?context=actions&amp;icon=document-restore&amp;size=16',
-        'title' => _('Restore'),
-        'alt'   => _('Restore'),
-        'class' => 'center'
-      ]
-    ).$img;
-    $nbicons++;
-
-    return  [$img, $nbicons];
-  }
-
-  protected function handlePostValueActions ($id, $postValue)
-  {
-    if (parent::handlePostValueActions($id, $postValue)) {
-      return TRUE;
-    }
-    if (preg_match('/^'.$id.'_restore_/', $postValue)) {
-      $key = preg_replace('/^'.$id.'_restore_/', '', $postValue);
-      $key = preg_replace('/_[xy]$/', '', $key);
-
-      $this->plugin->triggerRestore($this->value[$key]['dn']);
-      return TRUE;
-    }
-    return FALSE;
-  }
-
-  function delPostValue ($key)
-  {
-    $this->plugin->triggerDelete($this->value[$key]['dn']);
-  }
-}
-
-/*!
- * \brief Snapshot restoration dialog
- */
-class SnapshotRestoreDialog extends simplePlugin
-{
-  public $global;
-  public $aclCategory;
-
-  protected $snapDn;
-  protected $snapAction;
-
-  static function plInfo ()
-  {
-    return [
-      'plShortName' => 'SnapshotRestoreDialog',
-    ];
-  }
-
-  static function getAttributesInfo ()
-  {
-    return [
-      'main' => [
-        'name'  => _('Restoring snapshots'),
-        'class' => ['fullwidth'],
-        'attrs' => [
-          new DisplayAttribute(
-            _('Object'), _('DN of the object you are creating a snapshot of'),
-            'object_dn', FALSE
-          ),
-          new SnapshotsAttribute(
-            _('Snapshots'), _('Existing snapshots for this object'),
-            'snapshots', FALSE,
-            [],
-            'SnapshotHandler'
-          ),
-        ]
-      ],
-    ];
-  }
-
-  function __construct ($dn, $parent, $global, $aclCategory)
-  {
-    $this->global       = $global;
-    parent::__construct();
-    $this->object_dn    = $dn;
-    $this->parent       = $parent;
-    $this->aclCategory  = $aclCategory;
-    if ($this->global) {
-      $this->attributesAccess['object_dn']->setVisible(FALSE);
-    }
-    $this->updateList();
-  }
-
-  function updateList ()
-  {
-    if ($this->global) {
-      $this->snapshots = $this->parent->getAllDeletedSnapshots();
-    } else {
-      $this->snapshots = $this->parent->getAvailableSnapsShots($this->object_dn);
-    }
-  }
-
-  function execute ()
-  {
-    global $ui;
-    if ($this->dialog == 'delete') {
-      $objects = [
-        [
-          'name'  => 'snapshot',
-          'dn'    => $this->snapDn,
-          'icon'  => 'geticon.php?context=actions&amp;icon=document-restore&amp;size=16',
-          'type'  => 'Snapshot'
-        ]
-      ];
-
-      // Display confirmation dialog.
-      $smarty = get_smarty();
-      $smarty->assign('objects', $objects);
-      $str = $smarty->fetch(get_template_path('simple-remove.tpl'));
-    } elseif ($this->dialog == 'restore') {
-      $objects = [
-        [
-          'name'  => 'snapshot',
-          'dn'    => $this->snapDn,
-          'icon'  => 'geticon.php?context=actions&amp;icon=document-restore&amp;size=16',
-          'type'  => 'Snapshot'
-        ]
-      ];
-
-      // Display confirmation dialog.
-      $smarty = get_smarty();
-      $smarty->assign('objects', $objects);
-      $str = $smarty->fetch(get_template_path('restore-confirm.tpl'));
-    } else {
-      $smarty = get_smarty();
-      $permissions = $ui->get_snapshot_permissions($this->acl_base, $this->aclCategory);
-      $acl = '';
-      if (in_array('r', $permissions)) {
-        $acl .= 'r';
-      }
-      if (in_array(($this->global ? 'restore_deleted' : 'restore_over'), $permissions)) {
-        $acl .= 'w';
-      }
-      if (in_array('d', $permissions)) {
-        $acl .= 'd';
-      }
-      $smarty->assign('SnapshotHandlerACL', $acl);
-      $str = parent::execute();
-      $str .= '<p class="plugbottom">'.
-             '  <input type="submit" name="edit_cancel" value="'.msgPool::backButton().'"/>'.
-             '</p>';
-    }
-
-    return $str;
-  }
-
-  function attrIsWriteable ($attr)
-  {
-    global $ui;
-
-    if (!is_object($attr)) {
-      $attr = $this->attributesAccess[$attr];
-    }
-    if ($attr->getLdapName() == 'snapshots') {
-      return in_array(($this->global ? 'restore_deleted' : 'restore_over'), $ui->get_snapshot_permissions($this->acl_base, $this->aclCategory));
-    } else {
-      return parent::attrIsWriteable($attr);
-    }
-  }
-
-  function triggerRestore ($dn)
-  {
-    $this->dialog = 'restore';
-    $this->snapDn = $dn;
-  }
-
-  function triggerDelete ($dn)
-  {
-    $this->dialog = 'delete';
-    $this->snapDn = $dn;
-  }
-
-  function save_object ()
-  {
-    if ($this->dialog == 'delete') {
-      if (isset($_POST['delete_confirmed'])) {
-        $this->parent->removeSnapshot($this->snapDn);
-        $this->closeDialog();
-      } elseif (isset($_POST['delete_cancel'])) {
-        $this->closeDialog();
-      }
-    } elseif ($this->dialog == 'restore') {
-      if (isset($_POST['restore_confirmed'])) {
-        $this->parent->restoreSnapshot($this->snapDn);
-        $this->closeDialog();
-      } elseif (isset($_POST['restore_cancel'])) {
-        $this->closeDialog();
-      }
-    } else {
-      parent::save_object();
-    }
-  }
-
-  function closeDialog ()
-  {
-    parent::closeDialog();
-    $this->snapDn = NULL;
-    $this->updateList();
-  }
-
-  function save ()
-  {
-  }
-}
-?>
diff --git a/include/class_URL.inc b/include/class_URL.inc
new file mode 100644
index 0000000000000000000000000000000000000000..0ad8c72be864bb1b0be1291078d119a6213f4c99
--- /dev/null
+++ b/include/class_URL.inc
@@ -0,0 +1,128 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Class URL
+ * Static methods to get/build URLs
+ */
+
+class URL
+{
+  /*! \brief Returns TRUE if SSL was used to contact FD, whether directly or through a proxy
+   */
+  public static function sslOn (): bool
+  {
+    if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
+      return (strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') == 0);
+    }
+    if (isset($_SERVER['HTTPS'])) {
+      return (strcasecmp($_SERVER['HTTPS'], 'on') == 0);
+    }
+    return FALSE;
+  }
+
+  protected static function gatherInfos (): array
+  {
+    $protocol = 'http';
+    if (static::sslOn()) {
+      $protocol .= 's';
+    }
+
+    if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
+      $host = $_SERVER['HTTP_X_FORWARDED_HOST'];
+      if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
+        $protocol = $_SERVER['HTTP_X_FORWARDED_PROTO'];
+      }
+      if (isset($_SERVER['HTTP_X_FORWARDED_PORT'])) {
+        $port = $_SERVER['HTTP_X_FORWARDED_PORT'];
+      } else {
+        $port = ($protocol === 'http' ? 80 : 443);
+      }
+    } else {
+      if (!empty($_SERVER['HTTP_HOST'])) {
+        $host = $_SERVER['HTTP_HOST'];
+      } else {
+        $host = $_SERVER['SERVER_NAME'];
+      }
+      $port = $_SERVER['SERVER_PORT'];
+    }
+
+    return [$protocol, $host, $port];
+  }
+
+  /*! \brief Returns SSL URL to redirect to
+   */
+  public static function getSslUrl (): string
+  {
+    list(, $host, $port) = static::gatherInfos();
+    $ssl = 'https://'.$host;
+
+    if (!empty($_SERVER['REQUEST_URI'])) {
+      $ssl .= $_SERVER['REQUEST_URI'];
+    } elseif (!empty($_SERVER['PATH_INFO'])) {
+      $ssl .= $_SERVER['PATH_INFO'];
+    } else {
+      $ssl .= $_SERVER['PHP_SELF'];
+    }
+    return $ssl;
+  }
+
+  /*! \brief Returns current page URL
+   */
+  public static function getPageURL ($queryString = FALSE): string
+  {
+    list($protocol, $host, $port) = static::gatherInfos();
+
+    $pageURL = $protocol.'://'.$host;
+    if ((($protocol == 'http') && ($port != '80')) || (($protocol == 'https') && ($port != '443'))) {
+      $pageURL .= ':'.$port;
+    }
+    if (!empty($_SERVER['REQUEST_URI']) && $queryString) {
+      $pageURL .= $_SERVER['REQUEST_URI'];
+    } elseif (!empty($_SERVER['PATH_INFO'])) {
+      $pageURL .= $_SERVER['PATH_INFO'];
+    } else {
+      $pageURL .= $_SERVER['PHP_SELF'];
+    }
+
+    return $pageURL;
+  }
+
+  /*! \brief Returns hostname to identify this website
+   */
+  public static function getHostName (): string
+  {
+    list($protocol, $host, $port) = static::gatherInfos();
+
+    if ((($protocol == 'http') && ($port != '80')) || (($protocol == 'https') && ($port != '443'))) {
+      $host .= ':'.$port;
+    }
+
+    return $host;
+  }
+
+  /*! \brief Returns absolute URL from relative URL
+   */
+  public static function buildAbsoluteUrl (string $path): string
+  {
+    return preg_replace('|/[^/]*$|', $path, static::getPageURL(FALSE));
+  }
+}
diff --git a/include/class_acl.inc b/include/class_acl.inc
index abe7403400b317938a1ac6fc92d5c785b5e825ba..470a2c5227a6aa8a6f3440ceae7ec17a2018c126 100644
--- a/include/class_acl.inc
+++ b/include/class_acl.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -46,30 +46,6 @@ class acl
     ];
   }
 
-  /*!
-   *  \brief Function sort an array by elements priority
-   *
-   *  \param Array $list Array to be sorted
-   */
-  static function sort_by_priority ($list)
-  {
-    uksort($list,
-      function ($a, $b)
-      {
-        $infos_a = pluglist::pluginInfos(preg_replace('|^[^/]*/|', '', $a));
-        $infos_b = pluglist::pluginInfos(preg_replace('|^[^/]*/|', '', $b));
-        $pa = (isset($infos_a['plPriority']) ? $infos_a['plPriority'] : 0);
-        $pb = (isset($infos_b['plPriority']) ? $infos_b['plPriority'] : 0);
-        if ($pa == $pb) {
-          return 0;
-        }
-        return ($pa < $pb ? -1 : 1);
-      }
-    );
-
-    return $list;
-  }
-
   /*!
    * \brief Explode a role
    *
@@ -98,24 +74,39 @@ class acl
   static function explodeACL ($acl)
   {
     $list = explode(':', $acl);
-    if (count($list) == 5) {
-      list($index, $type,$role,$members,$filter) = $list;
-      $filter = base64_decode($filter);
+    if (count($list) == 6) {
+      list($index, $type, $role, $members, $userfilter, $targetfilter) = $list;
+      $userfilter   = base64_decode($userfilter);
+      $targetfilter = base64_decode($targetfilter);
+    } elseif (count($list) == 5) {
+      list($index, $type, $role, $members, $userfilter) = $list;
+      $userfilter   = base64_decode($userfilter);
+      $targetfilter = '';
     } else {
-      $filter = "";
-      list($index, $type,$role,$members) = $list;
+      list($index, $type, $role, $members) = $list;
+      $userfilter   = '';
+      $targetfilter = '';
     }
 
-    $a = [ $index => [
-      'type'    => $type,
-      'filter'  => $filter,
-      'members' => acl::extractMembers($members),
-      'acl'     => base64_decode($role),
-    ]];
+    $a = [
+      $index => [
+        'type'          => $type,
+        'userfilter'    => $userfilter,
+        'targetfilter'  => $targetfilter,
+        'members'       => acl::extractMembers($members),
+        'acl'           => base64_decode($role),
+      ]
+    ];
 
     /* Handle unknown types */
     if (!in_array($type, ['subtree', 'base'])) {
-      msg_dialog::display(_("Internal error"), sprintf(_("Unkown ACL type '%s'!\nYou might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."), $type), ERROR_DIALOG);
+      $error = new FusionDirectoryError(
+        nl2br(htmlescape(sprintf(
+          _("Unkown ACL type \"%s\"!\nYou might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."),
+          $type
+        )))
+      );
+      $error->display();
       $a = [];
     }
     return $a;
@@ -128,7 +119,7 @@ class acl
    *
    * \return an array with members
    */
-  static function extractMembers ($ms)
+  static function extractMembers (string $ms)
   {
     global $config;
     $a = [];
@@ -182,7 +173,7 @@ class acl
    *
    * \param string $acl The acl to be extracted
    */
-  static function extractACL ($acl)
+  static function extractACL (string $acl)
   {
     /* Rip acl off the string, seperate by ',' and place it in an array */
     $as = preg_replace('/^[^:]+:[^:]+:[^:]*:([^:]*).*$/', '\1', $acl);
@@ -207,18 +198,16 @@ class acl
 
           /* Append ACL if set */
           if ($gacl != "") {
-            $a[$gobject] = [$gacl];
+            $a[$gobject] = [new ACLPermissions($gacl)];
           }
         } else {
           /* All other entries get appended... */
           list($field, $facl)   = explode(';', $ssacl);
-          $a[$gobject][$field]  = $facl;
+          $a[$gobject][$field]  = new ACLPermissions($facl);
         }
-
       }
     }
 
     return $a;
   }
 }
-?>
diff --git a/include/class_baseSelector.inc b/include/class_baseSelector.inc
index 9aa823bf9746d9e9798023d06838699679227495..88e9363959c4310cece41ab46a43560c48186610 100644
--- a/include/class_baseSelector.inc
+++ b/include/class_baseSelector.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -29,13 +30,13 @@
  */
 class baseSelector
 {
-  private $base;
+  private $base           = '';
   protected $pid;
   private $action;
-  private $height       = 500;
-  private $submitButton = TRUE;
-  protected $tree;
-  protected $pathMapping;
+  private $height         = 500;
+  private $submitButton   = TRUE;
+  protected $tree         = NULL;
+  protected $pathMapping  = [];
   protected $lastState;
 
   /*!
@@ -45,7 +46,7 @@ class baseSelector
    *
    * \param String $base Empty string
    */
-  function __construct ($bases, $base = "")
+  function __construct (array $bases, string $base = '')
   {
     // Initialize pid
     $this->pid = preg_replace("/[^0-9]/", "", microtime(TRUE));
@@ -58,7 +59,7 @@ class baseSelector
   /*!
    * \brief Returns id of the html field
    */
-  function getInputHtmlId ()
+  function getInputHtmlId (): string
   {
     return 'bs_input_'.$this->pid;
   }
@@ -88,7 +89,7 @@ class baseSelector
    *
    * \param String $base The new value of the base
    */
-  function setBase ($base)
+  function setBase (string $base): bool
   {
     if (isset($this->pathMapping[$base])) {
       $this->base       = $base;
@@ -105,7 +106,7 @@ class baseSelector
    *
    * \return Boolean the last state of the object
    */
-  function checkLastBaseUpdate ()
+  function checkLastBaseUpdate (): bool
   {
     return $this->lastState;
   }
@@ -115,7 +116,7 @@ class baseSelector
    *
    * \param Array $bases The new value of the bases
    */
-  function setBases ($bases)
+  function setBases (array $bases)
   {
     global $config;
 
@@ -138,7 +139,7 @@ class baseSelector
    *
    * \param Boolean $force FALSE
    */
-  function update ($force = FALSE)
+  function update (bool $force = FALSE): bool
   {
     if (!isset($this->base) || ($this->base == '')) {
       $this->lastState = FALSE;
@@ -181,7 +182,8 @@ class baseSelector
       return TRUE;
     }
 
-    $this->renderTree();
+    /* Force tree render next time render() is called */
+    $this->tree = NULL;
 
     $this->lastState = TRUE;
     return TRUE;
@@ -190,104 +192,62 @@ class baseSelector
   protected function renderTree ()
   {
     global $config;
-    $link = "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($config->current['BASE'])."';  $('submit_tree_base_".$this->pid."').click();\"";
-    $this->tree = '<input class="base-selector" type="text" name="'.$this->getInputHtmlId().'"'.
-                  ' id="'.$this->getInputHtmlId().'"'.
-                  ' onkeydown="$(\'bs_'.$this->pid.'\').hide()"'.
-                  ' onfocus="$(\'bs_'.$this->pid.'\').hide()"'.
-                  ' onmouseover="Element.clonePosition($(\'bs_'.$this->pid.'\'), \''.$this->getInputHtmlId().'\', {setHeight: false, setWidth: false, offsetTop:(Element.getHeight(\''.$this->getInputHtmlId().'\'))});$(\'bs_'.$this->pid.'\').show();"'.
-                  ' onmouseout="rtimer= Element.hide.delay(0.25, \'bs_'.$this->pid.'\')"'.
-                  ' value="'.htmlentities($this->pathMapping[$this->base], ENT_COMPAT, 'UTF-8').'"/>';
-
-    // Autocompleter
-    $this->tree .= "<div id='autocomplete_".$this->pid."' class='autocomplete'></div>".
-                  "<script type='text/javascript'>".
-                  "new Ajax.Autocompleter('".$this->getInputHtmlId()."', 'autocomplete_".$this->pid."', 'autocomplete.php?type=base', { minChars: 3, frequency: 0.5 });";
-    if ($this->submitButton) {
-      $this->tree .= "$('".$this->getInputHtmlId()."').observe('keypress', function(event) { if (event.keyCode == Event.KEY_RETURN) { $ ('submit_base_".$this->pid."').click (); } });";
-    }
-    $this->tree .= "</script>";
-
-    $selected     = ($this->base == $config->current['BASE'] ? 'Selected' : '');
-    $this->tree   .= "<div class='treeList' style='display:none;max-height:".$this->height."px' id='bs_".$this->pid."' onmouseover=\"window.clearTimeout(rtimer);\" onmouseout=\"rtimer= Element.hide.delay(0.25, 'bs_".$this->pid."')\"><a class='treeList$selected' $link>/&nbsp;["._("Root")."]</a><ul class='treeList'>\n";
-    $first        = TRUE;
-    $last_indent  = 2;
-    $last_base    = '';
 
-    foreach ($this->pathMapping as $base => $dummy) {
-      // Skip root for tree
+    /* Build tree */
+    $departmentInfo = $config->getDepartmentInfo();
+    $tree           = [];
+    foreach (array_keys($this->pathMapping) as $base) {
       if ($base == $config->current['BASE']) {
+        /* Skip root */
         continue;
       }
 
-      // Build path style display
-      $elements = explode(',', substr($base, 0, strlen($base) - strlen($config->current['BASE'])));
-
-      $indent = count($elements);
-      if (!$first && ($indent == $last_indent)) {
-        $this->tree .= "</li>\n";
-      } elseif ($indent > $last_indent) {
-        $parent_base = implode(',', array_slice($elements, 1)).$config->current['BASE'];
-        if (!$first && ($parent_base != $last_base)) {
+      $elements     = explode(',', substr($base, 0, strlen($base) - strlen($config->current['BASE'])));
+      /* Remove last one */
+      array_pop($elements);
+      /* Remove first one */
+      array_shift($elements);
+
+      $array        =& $tree;
+      $elementBase  = $config->current['BASE'];
+      foreach (array_reverse($elements) as $element) {
+        $elementBase = $element.','.$elementBase;
+        if (!isset($array[$elementBase])) {
           /* Our parent is missing, add it but without link */
-          $this->tree .= "</li>\n";
-          $this->tree .= '<li><a title="'.$parent_base.'">'.
-                        '<img class="center" '.
-                        'src="'.htmlentities($config->department_info[$parent_base]['img'], ENT_COMPAT, 'UTF-8').'" '.
-                        'alt=""/>&nbsp;'.
-                        $this->escape($config->department_info[$parent_base]['name']).
-                        (($config->department_info[$parent_base]['description'] == '') ? '' : '&nbsp;<span class="informal">['.$this->escape($config->department_info[$parent_base]['description']).']</span>').
-                        '</a>';
-        }
-        $this->tree .= "<ul>\n";
-      } elseif ($indent < $last_indent) {
-        for ($i = 0; $i < ($last_indent - $indent); $i++) {
-          $this->tree .= "</li></ul>\n";
+          $array[$elementBase] = [
+            'tree'        => [],
+            'selected'    => FALSE,
+            'link'        => FALSE,
+            'img'         => $departmentInfo[$elementBase]['img'],
+            'name'        => $departmentInfo[$elementBase]['name'],
+            'description' => $departmentInfo[$elementBase]['description'],
+          ];
         }
-        $this->tree .= "</li>\n";
+        /* Go down one level */
+        $array =& $array[$elementBase]['tree'];
       }
-      $selected   = ($this->base == $base ? ' class="treeListSelected"' : '');
-      $link       = "onclick=\"\$('bs_rebase_".$this->pid."').value='".base64_encode($base)."';$('submit_tree_base_".$this->pid."').click();\"";
-      $this->tree .= "<li><a$selected $link>".
-                    '<img class="center" '.
-                    'src="'.htmlentities($config->department_info[$base]['img'], ENT_COMPAT, 'UTF-8').'" '.
-                    'alt=""/>&nbsp;'.
-                    $this->escape($config->department_info[$base]['name']).
-                    (($config->department_info[$base]['description'] == '') ? '' : '&nbsp;<span class="informal">['.$this->escape($config->department_info[$base]['description']).']</span>').
-                    '</a>';
-
-      $last_indent  = $indent;
-      $last_base    = $base;
-      $first        = FALSE;
-    }
 
-    // Close tree
-    for ($i = 1; $i < $last_indent; $i++) {
-      if (($i > 1) || (!$first)) {
-        $this->tree .= "</li>";
-      }
-      $this->tree .= "</ul>\n";
+      $array[$base] = [
+        'tree'        => [],
+        'selected'    => ($this->base == $base),
+        'link'        => TRUE,
+        'img'         => $departmentInfo[$base]['img'],
+        'name'        => $departmentInfo[$base]['name'],
+        'description' => $departmentInfo[$base]['description'],
+      ];
     }
-    $this->tree .= "</div>\n";
 
-    // Draw submitter if required
-    if ($this->submitButton) {
-      $this->tree .= "&nbsp;<input class='center' type='image' src='geticon.php?context=actions&amp;icon=submit&amp;size=16' title='"._("Submit")."' name='submit_base_".$this->pid."' id='submit_base_".$this->pid."' alt='"._("Submit")."'>";
-    }
-    $this->tree .= '<input type="submit" style="display:none" name="submit_tree_base_'.$this->pid.'" id="submit_tree_base_'.$this->pid.'"/>';
-    $this->tree .= '<input type="hidden" name="bs_rebase_'.$this->pid.'" id="bs_rebase_'.$this->pid.'"/>';
-    $this->tree .= '<input type="hidden" name="BPID" id="BPID" value="'.$this->pid.'"/>';
-  }
-
-
-  /*!
-   * \brief Replace all space of the string by non-breaking space and escapes HTML
-   *
-   * \param String $string The string which his space will be replaced
-   */
-  function escape ($string)
-  {
-    return str_replace(' ', '&nbsp;', htmlentities($string, ENT_COMPAT, 'UTF-8'));
+    $smarty = get_smarty();
+    $smarty->assign('htmlid',       $this->getInputHtmlId());
+    $smarty->assign('pid',          $this->pid);
+    $smarty->assign('currentValue', $this->pathMapping[$this->base]);
+    $smarty->assign('submitButton', $this->submitButton);
+    $smarty->assign('height',       $this->height);
+    $smarty->assign('selected',     ($this->base == $config->current['BASE']));
+    $smarty->assign('rootBase',     $config->current['BASE']);
+    $smarty->assign('tree',         $tree);
+
+    $this->tree = $smarty->fetch(get_template_path('baseselector.tpl'));
   }
 
   /*!
@@ -295,8 +255,12 @@ class baseSelector
    *
    * \return members tree of the ACL class
    */
-  function render ()
+  function render (): string
   {
+    if (!isset($this->tree)) {
+      $this->renderTree();
+    }
+
     return $this->tree;
   }
 
@@ -305,7 +269,7 @@ class baseSelector
    *
    * \return String containts the base of the object
    */
-  function getBase ()
+  function getBase (): string
   {
     return $this->base;
   }
@@ -315,9 +279,8 @@ class baseSelector
    *
    * \return Array containts the bases and their display text
    */
-  function getBases ()
+  function getBases (): array
   {
     return $this->pathMapping;
   }
 }
-?>
diff --git a/include/class_config.inc b/include/class_config.inc
index 40b927297bc2e22be2364eb8b237a6af06a24e61..2b1bedbc6337dcb1b98fdcf4484298f404365f86 100644
--- a/include/class_config.inc
+++ b/include/class_config.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2017  FusionDirectory
 
   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
@@ -35,8 +35,6 @@ class config
   var $config_found     = FALSE;
   var $tags             = [];
   var $level            = 0;
-  var $gpc              = 0;
-  var $section          = '';
   var $currentLocation  = '';
 
   /*!
@@ -45,8 +43,8 @@ class config
   var $current = [];
 
   /* Link to LDAP-server */
-  var $ldap       = NULL;
-  var $referrals  = [];
+  protected $ldapLink = NULL;
+  var $referrals      = [];
 
   /*
    * \brief Configuration data
@@ -61,9 +59,10 @@ class config
   var $basedir        = '';
 
   /* Keep a copy of the current department list */
-  var $departments      = [];
-  var $idepartments     = [];
-  var $department_info  = [];
+  protected $departmentList;
+  protected $departmentTree;
+  protected $departmentInfo;
+
   var $filename         = '';
   var $last_modified    = 0;
 
@@ -96,20 +95,16 @@ class config
     /* Check if class_location.inc has changed, this is the case
         if we have installed or removed plugins. */
     $tmp = stat(CACHE_DIR.'/'.CLASS_CACHE);
-    if (session::is_set('class_location.inc:timestamp')) {
-      if ($tmp['mtime'] != session::get('class_location.inc:timestamp')) {
-        session::un_set('plist');
-      }
+    if (session::is_set('class_location.inc:timestamp')
+      && ($tmp['mtime'] != session::get('class_location.inc:timestamp'))) {
+      session::un_set('plist');
     }
     session::set('class_location.inc:timestamp', $tmp['mtime']);
 
     if (($this->filename != '') && ((filemtime($this->filename) != $this->last_modified) || $force)) {
-
       $this->config_found     = FALSE;
       $this->tags             = [];
       $this->level            = 0;
-      $this->gpc              = 0;
-      $this->section          = '';
       $this->currentLocation  = '';
 
       $this->parse($this->filename);
@@ -148,11 +143,10 @@ class config
     xml_set_element_handler($this->parser, "tag_open", "tag_close");
 
     if (!xml_parse($this->parser, chop($xmldata))) {
-      $msg = sprintf(_("XML error in fusiondirectory.conf: %s at line %d"),
+      $msg = sprintf(_('XML error in fusiondirectory.conf: %s at line %d'),
             xml_error_string(xml_get_error_code($this->parser)),
             xml_get_current_line_number($this->parser));
-      msg_dialog::display(_("Configuration error"), $msg, FATAL_ERROR_DIALOG);
-      exit;
+      throw new FatalError(htmlescape($msg));
     }
     xml_parser_free($this->parser);
   }
@@ -279,13 +273,12 @@ class config
           $cache[$creds] = cred_decrypt($creds, $_SERVER['HTTP_FDKEY']);
           session::set('HTTP_FDKEY_CACHE', $cache);
         } catch (FusionDirectoryException $e) {
-          $msg = sprintf(
-            _('It seems you are trying to decode something which is not encoded : %s<br/>'."\n".
+          $msg = nl2br(htmlescape(sprintf(
+            _('It seems you are trying to decode something which is not encoded : %s'."\n".
               'Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted.'),
             $e->getMessage()
-          );
-          msg_dialog::display(_('Configuration error'), $msg, FATAL_ERROR_DIALOG);
-          exit;
+          )));
+          throw new FatalError($msg);
         }
       }
       return $cache[$creds];
@@ -311,30 +304,29 @@ class config
    *
    * \return ldapMultiplexer object
    */
-  function get_ldap_link ($sizelimit = FALSE)
+  function get_ldap_link (bool $sizelimit = FALSE): ldapMultiplexer
   {
     global $ui;
 
-    if ($this->ldap === NULL || !is_resource($this->ldap->cid)) {
+    if (($this->ldapLink === NULL) || ($this->ldapLink->cid === FALSE)) {
       /* Build new connection */
-      $this->ldap = ldap_init($this->current['SERVER'], $this->current['BASE'],
+      $this->ldapLink = LDAP::init($this->current['SERVER'], $this->current['BASE'],
           $this->current['ADMINDN'], $this->get_credentials($this->current['ADMINPASSWORD']));
 
       /* Check for connection */
-      if (is_null($this->ldap) || (is_int($this->ldap) && $this->ldap == 0)) {
-        msg_dialog::display(_("LDAP error"), _("Cannot bind to LDAP. Please contact the system administrator."), FATAL_ERROR_DIALOG);
-        exit();
+      if (is_null($this->ldapLink) || (is_int($this->ldapLink) && $this->ldapLink == 0)) {
+        throw new FatalError(htmlescape(_('Cannot bind to LDAP. Please contact the system administrator.')));
       }
 
       /* Move referrals */
       if (!isset($this->current['REFERRAL'])) {
-        $this->ldap->referrals = [];
+        $this->ldapLink->referrals = [];
       } else {
-        $this->ldap->referrals = $this->current['REFERRAL'];
+        $this->ldapLink->referrals = $this->current['REFERRAL'];
       }
     }
 
-    $obj  = new ldapMultiplexer($this->ldap);
+    $obj  = new ldapMultiplexer($this->ldapLink);
     if ($sizelimit) {
       $obj->set_size_limit($ui->getSizeLimitHandler()->getSizeLimit());
     } else {
@@ -350,14 +342,15 @@ class config
    */
   function set_current ($name)
   {
+    global $ui;
+
     if (!isset($this->data['LOCATIONS'][$name])) {
-      msg_dialog::display(_('Error'), sprintf(_('Location "%s" could not be found in the configuration file'), $name), FATAL_ERROR_DIALOG);
-      exit;
+      throw new FatalError(htmlescape(sprintf(_('Location "%s" could not be found in the configuration file'), $name)));
     }
     $this->current = $this->data['LOCATIONS'][$name];
 
-    if (isset($this->current['INITIAL_BASE'])) {
-      session::set('CurrentMainBase', $this->current['INITIAL_BASE']);
+    if (isset($this->current['INITIAL_BASE']) && isset($ui)) {
+      $ui->setCurrentBase($this->current['INITIAL_BASE']);
     }
 
     /* Sort referrals, if present */
@@ -368,13 +361,14 @@ class config
       }
       asort($servers);
       reset($servers);
-    }
 
-    /* SERVER not defined? Load the one with the shortest base */
-    if (!isset($this->current['SERVER'])) {
-      $this->current['SERVER'] = key($servers);
+      /* SERVER not defined? Load the one with the shortest base */
+      if (!isset($this->current['SERVER'])) {
+        $this->current['SERVER'] = key($servers);
+      }
     }
 
+
     /* Parse LDAP referral informations */
     if (!isset($this->current['ADMINDN']) || !isset($this->current['ADMINPASSWORD'])) {
       $this->current['BASE']          = $this->current['REFERRAL'][$this->current['SERVER']]['BASE'];
@@ -385,10 +379,8 @@ class config
     /* Load in-ldap configuration */
     $this->load_inldap_config();
 
-    if (class_available('systemManagement')) {
-      /* Load server informations */
-      $this->load_servers();
-    }
+    /* Parse management config */
+    $this->loadManagementConfig();
 
     $debugLevel = $this->get_cfg_value('DEBUGLEVEL');
     if ($debugLevel & DEBUG_CONFIG) {
@@ -407,50 +399,6 @@ class config
     Language::init();
   }
 
-  /*!
-   * \brief Load server information from config/LDAP
-   *
-   * This function searches the LDAP for servers (e.g. goImapServer, goMailServer etc.)
-   * and stores information about them $this->data['SERVERS']. In the case of mailservers
-   * the main section of the configuration file is searched, too.
-   */
-  function load_servers ()
-  {
-    /* Only perform actions if current is set */
-    if ($this->current === NULL) {
-      return;
-    }
-
-    $ldap = $this->get_ldap_link();
-
-    /* Get samba servers from LDAP */
-    $this->data['SERVERS']['SAMBA'] = [];
-    if (class_available('sambaAccount')) {
-      $ldap->cd($this->current['BASE']);
-      $ldap->search('(objectClass=sambaDomain)');
-      while ($attrs = $ldap->fetch()) {
-        $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]] = [ 'SID' => '','RIDBASE' => ''];
-        if (isset($attrs['sambaSID'][0])) {
-          $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]['SID'] = $attrs['sambaSID'][0];
-        }
-        if (isset($attrs['sambaAlgorithmicRidBase'][0])) {
-          $this->data['SERVERS']['SAMBA'][$attrs['sambaDomainName'][0]]['RIDBASE'] = $attrs['sambaAlgorithmicRidBase'][0];
-        }
-      }
-
-      /* If no samba servers are found, look for configured sid/ridbase */
-      if (count($this->data['SERVERS']['SAMBA']) == 0) {
-        if (isset($this->current['SAMBASID']) && isset($this->current['SAMBARIDBASE'])) {
-          $this->data['SERVERS']['SAMBA']['DEFAULT'] = [
-            'SID'     => $this->get_cfg_value('SAMBASID'),
-            'RIDBASE' => $this->get_cfg_value('SAMBARIDBASE')
-          ];
-        }
-      }
-    }
-
-  }
-
   /* Check that configuration is in LDAP, check that no plugin got installed since last configuration update */
   function checkLdapConfig ($forceReload = FALSE)
   {
@@ -460,18 +408,17 @@ class config
     if (!$forceReload) {
       $ldap = $this->get_ldap_link();
       $ldap->cat($dn, ['fusionConfigMd5']);
-      if ($attrs = $ldap->fetch()) {
-        if (isset($attrs['fusionConfigMd5'][0]) && ($attrs['fusionConfigMd5'][0] == md5_file(CACHE_DIR.'/'.CLASS_CACHE))) {
-          return;
-        }
+      if (($attrs = $ldap->fetch()) && isset($attrs['fusionConfigMd5'][0])
+        && ($attrs['fusionConfigMd5'][0] == md5_file(CACHE_DIR.'/'.CLASS_CACHE))) {
+        return;
       }
     }
 
-    add_lock($dn, $ui->dn);
+    Lock::add($dn);
     $config_plugin = objects::open($dn, 'configuration');
-    $config_plugin->save_object();
+    $config_plugin->update();
     $config_plugin->save();
-    del_lock($dn);
+    Lock::deleteByObject($dn);
   }
 
   function load_inldap_config ()
@@ -487,6 +434,10 @@ class config
             $class  = strtoupper($parts[0]);
             $mode   = strtoupper($parts[1]);
             $cmd    = $parts[2];
+            if (!isset($cmd[0]) || ($cmd[0] == '#')) {
+              /* Ignore commented out and empty triggers */
+              continue;
+            }
             if (!isset($this->data['HOOKS'][$class])) {
               $this->data['HOOKS'][$class] = ['CLASS' => $parts[0]];
             }
@@ -510,14 +461,168 @@ class config
   }
 
   /*!
-   * \brief Store the departments from ldap in $this->departments
+   * \brief Loads the management classes config to index them by class
+   */
+  private function loadManagementConfig ()
+  {
+    if (isset($this->current['MANAGEMENTCONFIG'])) {
+      if (!is_array($this->current['MANAGEMENTCONFIG'])) {
+        $this->current['MANAGEMENTCONFIG'] = [$this->current['MANAGEMENTCONFIG']];
+      }
+      $value = [];
+      foreach ($this->current['MANAGEMENTCONFIG'] as $config) {
+        list($class, $json) = explode(':', $config, 2);
+        $value[$class] = $json;
+      }
+      $this->current['MANAGEMENTCONFIG'] = $value;
+    }
+    if (isset($this->current['MANAGEMENTUSERCONFIG'])) {
+      if (!is_array($this->current['MANAGEMENTUSERCONFIG'])) {
+        $this->current['MANAGEMENTUSERCONFIG'] = [$this->current['MANAGEMENTUSERCONFIG']];
+      }
+      $value = [];
+      foreach ($this->current['MANAGEMENTUSERCONFIG'] as $config) {
+        list($user, $class, $json) = explode(':', $config, 3);
+        $value[$user][$class] = $json;
+      }
+      $this->current['MANAGEMENTUSERCONFIG'] = $value;
+    }
+  }
+
+  /*!
+   * \brief Update the management config in the LDAP and the cache
    */
-  function get_departments ()
+  public function updateManagementConfig (string $managementClass, $managementConfig, bool $userConfig = FALSE): array
+  {
+    global $ui;
+
+    $changes = [];
+    if ($userConfig) {
+      if (!isset($this->current['MANAGEMENTUSERCONFIG'][$ui->dn])) {
+        $this->current['MANAGEMENTUSERCONFIG'][$ui->dn] = [];
+      }
+      $currentConfig  =& $this->current['MANAGEMENTUSERCONFIG'][$ui->dn];
+      $attrib         = 'fdManagementUserConfig';
+      $prefix         = $ui->dn.':'.$managementClass;
+    } else {
+      if (!isset($this->current['MANAGEMENTCONFIG'])) {
+        $this->current['MANAGEMENTCONFIG'] = [];
+      }
+      $currentConfig  =& $this->current['MANAGEMENTCONFIG'];
+      $attrib         = 'fdManagementConfig';
+      $prefix         = $managementClass;
+    }
+
+    if ($managementConfig !== NULL) {
+      $managementConfig = json_encode($managementConfig);
+    }
+
+    if (isset($currentConfig[$managementClass])) {
+      /* If there already was a config for this class, remove it */
+      if ($currentConfig[$managementClass] === $managementConfig) {
+        /* Unless it's the same one and we've got nothing to do */
+        return [];
+      }
+      $changes[] = [
+        'attrib'  => $attrib,
+        'modtype' => LDAP_MODIFY_BATCH_REMOVE,
+        'values'  => [$prefix.':'.$currentConfig[$managementClass]],
+      ];
+    }
+
+    if ($managementConfig !== NULL) {
+      /* Add the new one, if any */
+      $changes[] = [
+        'attrib'  => $attrib,
+        'modtype' => LDAP_MODIFY_BATCH_ADD,
+        'values'  => [$prefix.':'.$managementConfig],
+      ];
+    }
+    $ldap = $this->get_ldap_link();
+    $ldap->cd(CONFIGRDN.$this->current['BASE']);
+    if (!$ldap->modify_batch($changes)) {
+      return [$ldap->get_error()];
+    }
+
+    if ($managementConfig !== NULL) {
+      $currentConfig[$managementClass] = $managementConfig;
+    } else {
+      unset($currentConfig[$managementClass]);
+    }
+
+    return [];
+  }
+
+  /*!
+   * \brief Test if there is a stored management config
+   */
+  public function hasManagementConfig (string $managementClass, bool $userConfig = FALSE): bool
+  {
+    global $ui;
+
+    if ($userConfig) {
+      return isset($this->current['MANAGEMENTUSERCONFIG'][$ui->dn][$managementClass]);
+    } else {
+      return isset($this->current['MANAGEMENTCONFIG'][$managementClass]);
+    }
+  }
+
+  /*!
+   * \brief Returns the config for a management class, or NULL
+   */
+  public function getManagementConfig ($managementClass)
+  {
+    global $ui;
+
+    if (isset($this->current['MANAGEMENTUSERCONFIG'][$ui->dn][$managementClass])) {
+      return json_decode($this->current['MANAGEMENTUSERCONFIG'][$ui->dn][$managementClass], TRUE);
+    } elseif (isset($this->current['MANAGEMENTCONFIG'][$managementClass])) {
+      return json_decode($this->current['MANAGEMENTCONFIG'][$managementClass], TRUE);
+    } else {
+      return NULL;
+    }
+  }
+
+  function getDepartmentList (): array
+  {
+    if (!isset($this->departmentList)) {
+      $this->storeDepartmentList();
+    }
+    return $this->departmentList;
+  }
+
+  function getDepartmentTree (): array
+  {
+    if (!isset($this->departmentTree)) {
+      $this->storeDepartmentTree();
+    }
+    return $this->departmentTree;
+  }
+
+  function getDepartmentInfo (): array
+  {
+    if (!isset($this->departmentInfo)) {
+      $this->storeDepartmentList();
+    }
+    return $this->departmentInfo;
+  }
+
+  function resetDepartmentCache ()
+  {
+    unset($this->departmentList);
+    unset($this->departmentTree);
+    unset($this->departmentInfo);
+  }
+
+  /*!
+   * \brief Store the departments from ldap in $this->departmentList
+   */
+  protected function storeDepartmentList ()
   {
     /* Initialize result hash */
-    $result = [];
+    $result = ['/' => $this->current['BASE']];
 
-    $result['/'] = $this->current['BASE'];
+    $this->departmentInfo = [];
 
     /* Get all department types from department Management, to be able detect the department type.
         -It is possible that different department types have the same name,
@@ -557,35 +662,40 @@ class config
         continue;
       }
 
-      $dn   = $attrs['dn'];
-      $data = objects::infos($oc);
-      $this->department_info[$dn] = [
-        'img'         => $data['icon'],
+      $dn     = $attrs['dn'];
+      $infos  = objects::infos($oc);
+      $this->departmentInfo[$dn] = [
+        'img'         => $infos['icon'],
         'description' => (isset($attrs['description'][0]) ? $attrs['description'][0] : ''),
-        'name'        => $attrs[$data['mainAttr']][0]
+        'name'        => $attrs[$infos['mainAttr']][0]
       ];
 
       /* Only assign non-root departments */
       if ($dn != $result['/']) {
-        $c_dn = convert_department_dn($dn).' ('.$data['mainAttr'].')';
+        $c_dn = convert_department_dn($dn).' ('.$infos['mainAttr'].')';
         $result[$c_dn] = $dn;
       }
     }
 
-    $this->departments = $result;
+    $this->departmentList = $result;
   }
 
-  function make_idepartments ($max_size = 28)
+  /*!
+   * \brief Store the tree render for departments in $this->departmentTree
+   */
+  protected function storeDepartmentTree ()
   {
+    if (!isset($this->departmentList)) {
+      $this->storeDepartmentList();
+    }
+
     $base   = $this->current['BASE'];
     $qbase  = preg_quote($base, '/');
 
     $arr  = [];
 
-    $this->idepartments = [];
-
     /* Create multidimensional array, with all departments. */
-    foreach ($this->departments as $key => $val) {
+    foreach ($this->departmentList as $val) {
 
       /* Split dn into single department pieces */
       $elements = array_reverse(explode(',', preg_replace("/$qbase$/", '', $val)));
@@ -618,9 +728,13 @@ class config
     }
 
     /* Add base entry */
-    $ret['/']['ENTRY']  = $base;
-    $ret['/']['SUB']    = $arr;
-    $this->idepartments = $this->generateDepartmentArray($ret, -1, $max_size);
+    $ret = [
+      '/' => [
+        'ENTRY' => $base,
+        'SUB'   => $arr,
+      ]
+    ];
+    $this->departmentTree = $this->generateDepartmentArray($ret, -1, 28);
   }
 
   /*
@@ -632,7 +746,7 @@ class config
    *
    * \param int $max_size initialized at 256
    */
-  function generateDepartmentArray ($arr, $depth = -1, $max_size = 256)
+  protected function generateDepartmentArray ($arr, $depth, $max_size)
   {
     $ret = [];
     $depth++;
@@ -640,13 +754,6 @@ class config
     /* Walk through array */
     ksort($arr);
     foreach ($arr as $name => $entries) {
-
-      /* If this department is the last in the current tree position
-       * remove it, to avoid generating output for it */
-      if (count($entries['SUB']) == 0) {
-        unset($entries['SUB']);
-      }
-
       /* Fix name, if it contains a replace tag */
       $name = preg_replace('/\\\\,/', ',', $name);
 
@@ -665,7 +772,7 @@ class config
       }
 
       /* recursive add of subdepartments */
-      if (isset($entries['SUB'])) {
+      if (!empty($entries['SUB'])) {
         $ret = array_merge($ret, $this->generateDepartmentArray($entries['SUB'], $depth, $max_size));
       }
     }
@@ -772,9 +879,13 @@ class config
       /* Send message if not done already */
       if (!session::is_set('snapshotFailMessageSend')) {
         session::set('snapshotFailMessageSend', TRUE);
-        msg_dialog::display(_('Configuration error'),
-            sprintf(_('The snapshot functionality is enabled, but the required variable "%s" is not set.'),
-                    'snapshotBase'), ERROR_DIALOG);
+        $error = new FusionDirectoryError(
+          htmlescape(sprintf(
+            _('The snapshot functionality is enabled, but the required variable "%s" is not set.'),
+            'snapshotBase'
+          ))
+        );
+        $error->display();
       }
       return FALSE;
     }
@@ -784,8 +895,13 @@ class config
       /* Send message if not done already */
       if (!session::is_set('snapshotFailMessageSend')) {
         session::set('snapshotFailMessageSend', TRUE);
-        msg_dialog::display(_('Configuration error'),
-            sprintf(_('The snapshot functionality is enabled, but the required compression module is missing. Please install "%s".'), 'php5-zip / php5-gzip'), ERROR_DIALOG);
+        $error = new FusionDirectoryError(
+          htmlescape(sprintf(
+            _('The snapshot functionality is enabled, but the required compression module is missing. Please install "%s".'),
+            'php-zip / php-gzip'
+          ))
+        );
+        $error->display();
       }
       return FALSE;
     }
@@ -812,7 +928,7 @@ class config
             if (($tabclass == 'GROUPTABS') && class_available('mixedGroup')) {
               $tabclass = 'OGROUP-USERTABS';
             }
-            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class to tab list");
+            logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class to tab list");
             if (!isset($this->data['TABS'][$tabclass])) {
               $this->data['TABS'][$tabclass] = [];
             }
@@ -839,6 +955,8 @@ class config
               if (!preg_match('/^\(.*\)$/', $value['filter'])) {
                 $value['filter'] = '('.$value['filter'].')';
               }
+            } elseif (isset($plInfo['plFilter'])) {
+              $value['filter'] = $plInfo['plFilter'];
             } else {
               $value['filter'] = NULL;
             }
@@ -852,7 +970,7 @@ class config
               $value['tabClass'] = 'simpleTabs';
             }
             $this->data['OBJECTS'][strtoupper($key)] = $value;
-            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class as main tab of");
+            logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $tabclass, "Adding $class as main tab of");
             if (!isset($this->data['TABS'][$tabclass])) {
               $this->data['TABS'][$tabclass] = [];
             }
@@ -860,7 +978,7 @@ class config
           }
         }
       } elseif (class_available($class) && is_subclass_of($class, 'simpleService')) {
-        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, "Adding service");
+        logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, "Adding service");
         if (!isset($this->data['TABS']['SERVERSERVICE'])) {
           $this->data['TABS']['SERVERSERVICE'] = [];
         }
@@ -869,30 +987,6 @@ class config
           'NAME' => $plInfo['plShortName']
         ];
       }
-      /* Feed categories */
-      if (isset($plInfo['plCategory'])) {
-        /* Walk through supplied list and feed only translated categories */
-        $cats = [];
-        foreach ($plInfo['plCategory'] as $idx => $data) {
-          $cat    = (is_numeric($idx) ? $data : $idx);
-          $cats[] = $cat;
-          if (!isset($this->data['CATEGORIES'][$cat])) {
-            $this->data['CATEGORIES'][$cat] = [ 'classes' => ['0'] ];
-          }
-          if (!empty($plInfo['plProvidedAcls'])) {
-            $this->data['CATEGORIES'][$cat]['classes'][] = $class;
-          }
-          if (!is_numeric($idx)) {
-            /* Non numeric index means -> base object containing more informations */
-            $this->data['CATEGORIES'][$cat]['description'] = $data['description'];
-            if (!is_array($data['objectClass'])) {
-              $data['objectClass'] = [$data['objectClass']];
-            }
-            $this->data['CATEGORIES'][$cat]['objectClass'] = $data['objectClass'];
-          }
-        }
-        $plInfo['plCategory'] = $cats;
-      }
     }
     unset($plInfo);
     $this->data['CATEGORIES']['all'] = [
@@ -902,7 +996,7 @@ class config
     ];
     /* Extract categories definitions from object types */
     foreach ($this->data['OBJECTS'] as $key => $infos) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['aclCategory'], "ObjectType $key category");
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['aclCategory'], "ObjectType $key category");
       if (strtoupper($infos['aclCategory']) == $key) {
         $cat = $infos['aclCategory'];
         if (!isset($this->data['CATEGORIES'][$cat])) {
@@ -918,11 +1012,29 @@ class config
     /* Now that OBJECTS are filled, place tabs in categories */
     foreach ($plist->info as $class => &$plInfo) {
       $acl = [];
+      /* Feed categories */
       if (isset($plInfo['plCategory'])) {
-        $acl = $plInfo['plCategory'];
-        if (!is_array($acl)) {
-          $acl = [$acl];
+        /* Walk through supplied list and feed only translated categories */
+        $acl = [];
+        foreach ($plInfo['plCategory'] as $idx => $infos) {
+          $cat    = (is_numeric($idx) ? $infos : $idx);
+          $acl[] = $cat;
+          if (!isset($this->data['CATEGORIES'][$cat])) {
+            $this->data['CATEGORIES'][$cat] = [ 'classes' => ['0'] ];
+          }
+          if (!empty($plInfo['plProvidedAcls'])) {
+            $this->data['CATEGORIES'][$cat]['classes'][] = $class;
+          }
+          if (!is_numeric($idx)) {
+            /* Non numeric index means -> base object containing more informations */
+            $this->data['CATEGORIES'][$cat]['description'] = $infos['description'];
+            if (!is_array($infos['objectClass'])) {
+              $infos['objectClass'] = [$infos['objectClass']];
+            }
+            $this->data['CATEGORIES'][$cat]['objectClass'] = $infos['objectClass'];
+          }
         }
+        $plInfo['plCategory'] = $acl;
       }
       if (isset($plInfo['plObjectType'])) {
         foreach ($plInfo['plObjectType'] as $key => $value) {
@@ -969,18 +1081,22 @@ class config
 
           if (isset($this->data['OBJECTS'][$obj])) {
             $this->data['OBJECTS'][$obj]['management'] = $class;
-            if (isset($class::$skipTemplates) && ($class::$skipTemplates == FALSE)) {
+            if (isset($class::$skipTemplates) && !$class::$skipTemplates) {
               $this->data['OBJECTS'][$obj]['templateActive']  = TRUE;
               $this->data['CATEGORIES'][$cat]['classes'][]    = 'template';
             }
-            if (isset($class::$skipSnapshots) && ($class::$skipSnapshots == FALSE)) {
+            if (isset($class::$skipSnapshots) && !$class::$skipSnapshots) {
               $this->data['OBJECTS'][$obj]['snapshotActive']  = TRUE;
               $this->data['CATEGORIES'][$cat]['classes'][]    = 'SnapshotHandler';
             }
+            if (class_available('archivedObject') && archivedObject::isArchiveActive($obj)) {
+              $this->data['OBJECTS'][$obj]['archiveActive']   = TRUE;
+              $this->data['CATEGORIES'][$cat]['classes'][]    = 'archivedObject';
+            }
           }
         }
       }
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, join(',', array_unique($acl)), "Class $class categories");
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, join(',', array_unique($acl)), "Class $class categories");
       /* Feed menu */
       if (isset($plInfo['plSection'])) {
         $section = $plInfo['plSection'];
@@ -1062,4 +1178,3 @@ class config
     );
   }
 }
-?>
diff --git a/include/class_divSelectBox.inc b/include/class_divSelectBox.inc
index 1f54867f54f98816af1b4250b43d6d59c097708f..b3ecb0adce0d4b706ccca2a939c7ee314bff8788 100644
--- a/include/class_divSelectBox.inc
+++ b/include/class_divSelectBox.inc
@@ -1,5 +1,4 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
@@ -31,15 +30,14 @@
  */
 class divSelectBox
 {
-  var $headers = FALSE;
-  var $a_entries;
-  var $summary;
-  var $cols;
+  protected $headers = FALSE;
+  protected $a_entries;
+  protected $s_summary;
+  protected $cols;
 
-  private $id;
+  protected $id;
 
-  // Members for page managment
-  var $height = '200px';
+  protected $height = '200px';
 
   /*!
    * \brief Default divSelectBox constructor
@@ -71,7 +69,7 @@ class divSelectBox
    *
    * \param array $a_entriedata
    */
-  function AddEntry ($a_entriedata)
+  function addEntry ($a_entriedata)
   {
     $this->a_entries[] = $a_entriedata;
   }
@@ -81,7 +79,7 @@ class divSelectBox
    *
    * \param array $headers
    */
-  function SetHeaders ($headers)
+  function setHeaders ($headers)
   {
     $this->headers = $headers;
   }
@@ -89,7 +87,7 @@ class divSelectBox
   /*!
    * \brief Draw the list
    */
-  function DrawList ()
+  function drawList ()
   {
     $s_return = '';
     $s_return .= '<div style="border:1px solid rgb(170,170,170);padding-right:1px;height:'.$this->height.';width:100%">'."\n";
@@ -103,32 +101,23 @@ class divSelectBox
                       'border:none; '.
                     '"'.
                   ">\n";
-    $s_return .= $this->_generatePage();
+    $s_return .= $this->generatePage();
     $s_return .= '</table></div></div>';
     if ($this->headers !== FALSE) {
       $s_return .=
-        '<script type="text/javascript">
+        '<script>
           var sorter'.$this->id.' = tsorter.create(\''.$this->id.'\');
         </script>';
     }
     return $s_return;
   }
 
-  /*!
-   * \brief Get the number of entries
-   */
-  function _numentries ()
-  {
-    $cnt = count($this->a_entries);
-    return $cnt;
-  }
-
   /*!
    * \brief Set summary
    *
    * \param string $msg
    */
-  function SetSummary ($msg)
+  function setSummary ($msg)
   {
     $this->s_summary = $msg;
   }
@@ -136,7 +125,7 @@ class divSelectBox
   /*!
    * \brief Generate the page
    */
-  function _generatePage ()
+  protected function generatePage ()
   {
     $display = '';
     if ($this->headers !== FALSE) {
@@ -149,21 +138,17 @@ class divSelectBox
       }
       $display .= '</tr></thead>'."\n";
     }
-    return $display.'<tbody>'.$this->_generateBody().'</tbody>';
+    return $display.'<tbody>'.$this->generateBody().'</tbody>';
   }
 
   /*!
    * \brief Generate the body
    */
-  function _generateBody ()
+  protected function generateBody ()
   {
-    $s_value  = '';
-    $s_key    = '';
-    $s_return = '';
-    $str      = '';
-
     /* If divselectbox is empty, append a single white entry */
     if (count($this->a_entries) == 0) {
+      $str = '';
       if ($this->headers !== FALSE) {
         $this->cols = count($this->headers);
         $str .= '<tr>';
@@ -181,8 +166,9 @@ class divSelectBox
       return $str;
     }
 
-    $i = $this->_numEntries();
-    foreach ($this->a_entries as $s_key => $s_value) {
+    $s_return = '';
+    $i        = count($this->a_entries);
+    foreach ($this->a_entries as $s_value) {
       $i--;
 
       $s_return .= "\n<tr>";
@@ -210,7 +196,7 @@ class divSelectBox
           if ($s_value2['string'] === '') {
             $s_return .= '&nbsp;';
           } else {
-            $s_return .= htmlentities($s_value2['string'], ENT_COMPAT, 'UTF-8');
+            $s_return .= htmlescape($s_value2['string']);
           }
         } else {
           $s_return .= $s_value2['html'];
@@ -231,4 +217,3 @@ class divSelectBox
     return $s_return;
   }
 }
-?>
diff --git a/include/class_exceptions.inc b/include/class_exceptions.inc
index d30d2273d237a765fc339c154920d30abaafe577..3ea0cea1161e28e91561237fd0e5d96ebf86be09 100644
--- a/include/class_exceptions.inc
+++ b/include/class_exceptions.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2015-2018  FusionDirectory
+  Copyright (C) 2015-2016  FusionDirectory
 
   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
@@ -28,6 +28,15 @@
 */
 class FusionDirectoryException extends Exception
 {
+  public function toArray (): array
+  {
+    return [
+      'class'   => get_class($this),
+      'message' => $this->getMessage(),
+      'line'    => $this->getLine(),
+      'file'    => $this->getFile(),
+    ];
+  }
 }
 
 /*! \class LDIFImportException
@@ -37,6 +46,13 @@ class LDIFImportException extends FusionDirectoryException
 {
 }
 
+/*! \class LDIFExportException
+    \brief Exception class which can be thrown by LDAP class if LDIF export fails
+*/
+class LDIFExportException extends FusionDirectoryException
+{
+}
+
 /*! \class LdapGeneralizedTimeBadFormatException
     \brief Exception class which can be thrown by LdapGeneralizedTime if the format does not match
 */
@@ -53,24 +69,114 @@ class InvalidValueException extends FusionDirectoryException
 
 class NonExistingObjectTypeException extends FusionDirectoryException
 {
+  protected $type;
+
+  public function __construct (string $type, int $code = 0, Throwable $previous = NULL)
+  {
+    $this->type = $type;
+
+    parent::__construct(sprintf(_('Non-existing type "%s"!'), $this->type), $code, $previous);
+  }
+
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    $array['type'] = $this->type;
+
+    return $array;
+  }
 }
 
 class NonExistingBranchException extends FusionDirectoryException
 {
+  protected $branch;
+
+  public function __construct (string $branch, int $code = 0, Throwable $previous = NULL)
+  {
+    $this->branch = $branch;
+
+    parent::__construct(sprintf(_('Non-existing branch "%s"!'), $this->branch), $code, $previous);
+  }
+
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    $array['branch'] = $this->branch;
+
+    return $array;
+  }
 }
 
 class NonExistingLdapNodeException extends FusionDirectoryException
 {
+  protected $dn;
+
+  public function __construct (string $dn, string $message = NULL, int $code = 0, Throwable $previous = NULL)
+  {
+    $this->dn = $dn;
+    if ($message === NULL) {
+      $message = sprintf(_('Non-existing dn "%s"!'), $this->dn);
+    }
+
+    parent::__construct($message, $code, $previous);
+  }
+
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    $array['dn'] = $this->dn;
+
+    return $array;
+  }
 }
 
 class EmptyFilterException extends FusionDirectoryException
 {
+  public function __construct (string $message = "", int $code = 0, Throwable $previous = NULL)
+  {
+    if ($message === '') {
+      $message = _('Filter is empty');
+    }
+    parent::__construct($message, $code, $previous);
+  }
 }
 
 class NoManagementClassException extends FusionDirectoryException
 {
 }
 
+class UnknownClassException extends FusionDirectoryException
+{
+  protected $class;
+
+  public function __construct (string $class, int $code = 0, Throwable $previous = NULL)
+  {
+    $this->class = $class;
+
+    parent::__construct(sprintf(_('Unknown class "%s"!'), $this->class), $code, $previous);
+  }
+
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    $array['unknownclass'] = $this->class;
+
+    return $array;
+  }
+}
+
 class LDAPFailureException extends FusionDirectoryException
 {
 }
+
+class LoginFailureException extends FusionDirectoryException
+{
+}
+
+class LoginFailurePpolicyException extends LoginFailureException
+{
+}
diff --git a/include/class_filter.inc b/include/class_filter.inc
deleted file mode 100644
index 2c5c030a9dd30405cc7ac1118127c00ab3e6a560..0000000000000000000000000000000000000000
--- a/include/class_filter.inc
+++ /dev/null
@@ -1,691 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \file class_filter.inc
- * Source code for class filter
- */
-
-/*!
- * \brief This class contains all the function needed to manage filter
- */
-class filter
-{
-  var $xmlData;
-  var $elements         = [];
-  var $elementValues    = [];
-  var $alphabetElements = [];
-  var $autocompleter    = [];
-  var $category         = '';
-  var $objectStorage    = [];
-  var $base             = '';
-  var $scope            = '';
-  var $query;
-  var $initial          = FALSE;
-  var $scopeMode        = 'auto';
-  var $alphabet         = NULL;
-  var $converter        = [];
-  var $pid;
-  var $headpage;
-
-  /*!
-   * \brief Create a filter
-   *
-   * \param string $filename
-   */
-  function __construct ($filename)
-  {
-    // Load eventually passed filename
-    if (!$this->load($filename)) {
-      die("Cannot parse $filename!");
-    }
-
-    $this->pid = preg_replace("/[^0-9]/", "", microtime(TRUE));
-  }
-
-  /*
-   * \brief Load a filter
-   *
-   * \param string $filename
-   */
-  function load ($filename)
-  {
-    $contents       = file_get_contents($filename);
-    $this->xmlData  = xml::xml2array($contents, 1);
-
-    if (!isset($this->xmlData['filterdef']['search'])) {
-      return FALSE;
-    }
-
-    $this->xmlData = $this->xmlData['filterdef'];
-
-    // Load filter
-    if (!isset($this->xmlData['search']['query'][0])) {
-      $this->xmlData['search']['query'] = [$this->xmlData['search']['query']];
-    }
-
-    // Move information
-    $entry            = $this->xmlData['search'];
-    $this->scopeMode  = $entry['scope'];
-    $this->scope      = ($entry['scope'] == 'auto' ? 'one' : $entry['scope']);
-    $this->query      = $entry['query'];
-
-    // Transfer initial value
-    if (isset($this->xmlData['definition']['initial']) && ($this->xmlData['definition']['initial'] == 'true')) {
-      $this->initial = TRUE;
-    }
-
-    // Transfer category
-    if (isset($this->xmlData['definition']['category'])) {
-      $this->category = $this->xmlData['definition']['category'];
-    }
-
-    // Generate formular data
-    if (isset($this->xmlData['element'])) {
-      if (!isset($this->xmlData['element'][0])) {
-        $this->xmlData['element'] = [$this->xmlData['element']];
-      }
-      foreach ($this->xmlData['element'] as $element) {
-        // Ignore elements without type
-        if (!isset($element['type']) || !isset($element['tag'])) {
-          continue;
-        }
-
-        $tag = $element['tag'];
-
-        // Fix arrays
-        if (isset($element['value']) && !isset($element['value'][0])) {
-          $element['value'] = [$element['value']];
-        }
-
-        // Store element for quick access
-        $this->elements[$tag] = $element;
-
-        // Preset elementValues with default values if exist
-        if (isset($element['default']) && !is_array($element['default'])) {
-          $this->elementValues[$tag] = $element['default'];
-        } else {
-          $this->elementValues[$tag] = '';
-        }
-
-        // Does this element react on alphabet links?
-        if (isset($element['alphabet']) && ($element['alphabet'] == 'true')) {
-          $this->alphabetElements[] = $tag;
-        }
-      }
-
-      uasort($this->elements, 'strlenSort');
-      $this->elements = array_reverse($this->elements);
-    }
-
-    return TRUE;
-  }
-
-  /*!
-   * \brief Get the text in the field
-   *
-   * \param array $element
-   */
-  function getTextfield ($element)
-  {
-    $tag  = $element['tag'];
-    $size = 30;
-    if (isset($element['size'])) {
-      $size = $element['size'];
-    }
-    $maxlength = '';
-    if (isset($element['maxlength'])) {
-      $maxlength = $element['maxlength'];
-    }
-    $result = '<input class="filter_textfield" id="'.$tag.'" name="'.$tag.'" type="text" size="'.$size.'"'.(empty($maxlength) ? '' : ' maxlength="'.$maxlength.'"').' value="'.htmlentities($this->elementValues[$tag], ENT_COMPAT, 'UTF-8').'"/>';
-    if (isset($element['autocomplete'])) {
-      $frequency  = "0.5";
-      $characters = "1";
-      if (isset($element['autocomplete']['frequency'])) {
-        $frequency = $element['autocomplete']['frequency'];
-      }
-      if (isset($element['autocomplete']['characters'])) {
-        $characters = $element['autocomplete']['characters'];
-      }
-      $result .= "<div id='autocomplete$tag' class='autocomplete'></div>".
-                "<script type='text/javascript'>".
-                "new Ajax.Autocompleter('$tag', 'autocomplete$tag', 'autocomplete.php', { minChars: $characters, frequency: $frequency });".
-                "</script>";
-
-       $this->autocompleters[$tag] = $element['autocomplete'];
-    }
-    return $result;
-  }
-
-
-  /*!
-   * \brief Get the checkbox
-   *
-   * \param array $element
-   */
-  function getCheckbox ($element)
-  {
-    $tag      = $element['tag'];
-    $checked  = "";
-    if ($this->elementValues[$tag] == "true") {
-      $checked = " checked";
-    }
-
-    $result = "<input class='filter_checkbox' id='$tag' name='$tag' type='checkbox' onClick='document.mainform.submit();' value='true'$checked>";
-    return $result;
-  }
-
-  /*!
-   * \brief Get a combobox
-   *
-   * \param array $element
-   */
-  function getCombobox ($element)
-  {
-    $result = "<select name='".$element['tag']."' size='1' onChange='document.mainform.submit();'>";
-
-    // Fill with presets
-    foreach ($element['value'] as $value) {
-      $selected = "";
-      if ($this->elementValues[$element['tag']] == $value['key']) {
-        $selected = " selected";
-      }
-
-      // Handle translations
-      $result .= "<option value='".$value['key']."'$selected>"._($value['label'])."</option>";
-    }
-
-    // Use autocompleter for additional data
-    if (isset($element['autocomplete'])) {
-      $list = $this->getCompletitionList($element['autocomplete'], $element['tag']);
-      foreach ($list as $value) {
-        $selected = "";
-        if ($this->elementValues[$element['tag']] == $value) {
-          $selected = " selected";
-        }
-        $result .= "<option value='$value'$selected>$value</option>";
-      }
-    }
-
-    $result .= "</select>";
-
-    return $result;
-  }
-
-
-  /*!
-   * \brief Get the date picker
-   *
-   * \param array $element
-   */
-  function getDatePicker ($element)
-  {
-    global $lang;
-    $tag    = $element['tag'];
-    $value  = '';
-    if (!empty($this->elementValues[$tag])) {
-      try {
-        $value = LdapGeneralizedTime::fromString($this->elementValues[$tag])->format('d.m.Y');
-      } catch (Exception $e) {
-        $value = $this->elementValues[$tag];
-      }
-    }
-    return  '<input type="text" name="'.$tag.'" id="'.$tag.'"'.
-              ' value="'.$value.'"'.
-              ' class="date" />'.
-            '<script type="text/javascript">
-              var datepicker  = new DatePicker({ relative : \''.$tag.'\', language : \''.preg_replace('/_.*$/', '', $lang).'\', keepFieldEmpty : true, enableCloseEffect : false, enableShowEffect : false });
-            </script>';
-  }
-
-  /*!
-   * \brief Set the combobox options
-   *
-   * \param string $tag
-   *
-   * \param array $options
-   */
-  function setComboBoxOptions ($tag, $options)
-  {
-    if (isset($this->elements[$tag]) && ($this->elements[$tag]['type'] == "combobox")) {
-      $this->elements[$tag]['value'] = [];
-      foreach ($options as $key => $label) {
-        $this->elements[$tag]['value'][] = ['label' => $label, 'key' => $key];
-      }
-    }
-  }
-
-   /*!
-   * \brief Set a converter
-   *
-   * \param string $field
-   *
-   * \param string $hook
-   */
-  function setConverter ($field, $hook)
-  {
-    $this->converter[$field] = $hook;
-  }
-
-  /*!
-   * \brief Set a object storage
-   *
-   * \param string $storage
-   */
-  function setObjectStorage ($storage)
-  {
-    $this->objectStorage = $storage;
-  }
-
-
-  /*!
-   * \brief Set a base
-   *
-   * \param string $base
-   */
-  function setBase ($base)
-  {
-    $this->base = $base;
-  }
-
-  /*!
-   * \brief Set the current scope
-   *
-   * \param string $scope
-   */
-  function setCurrentScope ($scope)
-  {
-    $this->scope = $scope;
-  }
-
-  /*!
-   * \brief Render alphabet
-   *
-   * \param integer $columns
-   */
-  function renderAlphabet ($columns = 10)
-  {
-    // Return pre-rendered alphabet if available
-    if ($this->alphabet) {
-      return $this->alphabet;
-    }
-
-    $characters = _("*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
-    $alphabet   = "";
-    $c          = 0;
-
-    /* Fill cells with charaters */
-    for ($i = 0, $l = mb_strlen($characters, 'UTF8'); $i < $l; $i++) {
-      if ($c == 0) {
-        $alphabet .= "<tr>";
-      }
-
-      $ch       = mb_substr($characters, $i, 1, "UTF8");
-      $alphabet .= "<td><a class=\"alphaselect\" href=\"main.php?plug=".
-        validate($_GET['plug'])."&amp;filter=".$ch."\">&nbsp;".$ch."&nbsp;</a></td>";
-
-      if ($c++ == $columns) {
-        $alphabet .= "</tr>";
-        $c        = 0;
-      }
-    }
-
-    /* Fill remaining cells */
-    while ($c++ <= $columns) {
-      $alphabet .= "<td>&nbsp;</td>";
-    }
-
-    /* Save alphabet */
-    $this->alphabet = "<table width='100%'>$alphabet</table>";
-
-    return $this->alphabet;
-  }
-
-  /*!
-   * \brief Render apply filter
-   *
-   * \return string
-   */
-  function renderApply ()
-  {
-    return "<input type='submit' name='apply' value='"._("Apply filter")."'>";
-  }
-
-  /*!
-   * \brief Render scope
-   *
-   * \return string
-   */
-  function renderScope ()
-  {
-    $checked = ($this->scope == 'sub' ? ' checked' : '');
-    return "<input type='checkbox' id='SCOPE' name='SCOPE' value='1' onClick='document.mainform.submit();'$checked>&nbsp;<LABEL for='SCOPE'>"._("Search in subtrees")."</LABEL>";
-  }
-
-  /*!
-   * \brief Render
-   */
-  function render ()
-  {
-    /* If template is not filled, we display nothing */
-    if (!isset ($this->xmlData['definition']['template'])) {
-      return "";
-    }
-
-    $smarty = get_smarty();
-    $smarty->assign("ALPHABET", $this->renderAlphabet());
-    $smarty->assign("APPLY", $this->renderApply());
-    $smarty->assign("SCOPE", $this->renderScope());
-
-    // Load template and replace elementsHtml[]
-    foreach ($this->elements as $tag => $element) {
-      $htmlCode = "";
-      switch ($element['type']) {
-        case "textfield":
-          $htmlCode = $this->getTextfield($element);
-          $smarty->assign($tag.'DESC', sprintf(_('Searches in %s'), implode(', ', $element['autocomplete']['attribute'])));
-          break;
-
-        case "checkbox":
-          $htmlCode = $this->getCheckbox($element);
-          break;
-
-        case "combobox":
-          $htmlCode = $this->getCombobox($element);
-          break;
-
-        case 'date':
-          $htmlCode = $this->getDatePicker($element);
-          break;
-
-        default:
-          throw new Exception('Unknown element type specified: '.$element['type'].'!');
-      }
-      $smarty->assign("$tag", $htmlCode);
-    }
-
-    // Try to load template from plugin the folder first...
-    $file = get_template_path($this->xmlData['definition']['template'], TRUE);
-
-    // ... if this fails, try to load the file from the theme folder.
-    if (!file_exists($file)) {
-      $file = get_template_path($this->xmlData['definition']['template']);
-    }
-
-    // Load template
-    return "<input type='hidden' name='FILTER_PID' value='".$this->pid."'/>".$smarty->fetch($file);
-  }
-
-  /*!
-   * \brief Query
-   */
-  function query ()
-  {
-    global $class_mapping;
-    $result = [];
-
-    // Return empty list if initial is not set
-    if (!$this->initial) {
-      $this->initial = TRUE;
-      return $result;
-    }
-
-    // Go thru all queries and merge results
-    foreach ($this->query as $query) {
-      if (!isset($query['backend']) || !isset($query['filter']) || !isset($query['attribute'])) {
-        die('No backend specified in search config.');
-      }
-
-      // Is backend available?
-      $backend = 'filter'.$query['backend'];
-      if (!isset($class_mapping["$backend"])) {
-        die('Invalid backend specified in search config.');
-      }
-
-      // Load filter and attributes
-      $filter     = $query['filter'];
-      $attributes = $query['attribute'];
-
-      if ($attributes === '*') {
-        $attributes = [$attributes];
-      } else {
-        if (!is_array($attributes)) {
-          $attributes = [$attributes];
-        }
-        // ObjectClass is required to check permissions later.
-        if (!in_array('objectClass', $attributes)) {
-          $attributes[] = 'objectClass';
-        }
-      }
-
-      // Generate final filter
-      foreach ($this->elements as $tag => $element) {
-        if (!isset($element['set']) || !isset($element['unset'])) {
-          continue;
-        }
-
-        // Handle converters if present
-        if (isset($this->converter[$tag])) {
-          preg_match('/([^:]+)::(.*)$/', $this->converter[$tag], $m);
-          $e_set    = call_user_func([$m[1], $m[2]], preg_replace('/\$/', $this->elementValues[$tag], is_array($element['set']) ? '' : $element['set']));
-          $e_unset  = call_user_func([$m[1], $m[2]], preg_replace('/\$/', $this->elementValues[$tag], is_array($element['unset']) ? '' : $element['unset']));
-        } else {
-          $e_set    = (is_array($element['set']) ? '' : $element['set']);
-          $e_unset  = (is_array($element['unset']) ? '' : $element['unset']);
-        }
-
-        // Do not replace escaped \$ - This is required to be able to search for e.g. windows machines.
-        if ($this->elementValues[$tag] == '') {
-          $e_unset  = preg_replace('/([^\\\\])\$/', '${1}'.ldap_escape_f($this->elementValues[$tag]), $e_unset);
-          $e_unset  = preg_replace('/\\\\\$/', '$', $e_unset);
-          $filter   = preg_replace("/\\$$tag/", $e_unset, $filter);
-        } else {
-          $e_set  = preg_replace('/([^\\\\])\$/', '${1}'.ldap_escape_f($this->elementValues[$tag]), $e_set);
-          $e_set  = preg_replace('/\\\\\$/', '$', $e_set);
-          $filter = preg_replace("/\\$$tag/", $e_set, $filter);
-        }
-      }
-
-      $objectStorage = $this->objectStorage;
-
-      if (isset($this->elements['FILTERTEMPLATE']) && $this->elementValues['FILTERTEMPLATE']) {
-        $objectStorage = array_merge(
-          $objectStorage,
-          array_map(
-            function ($oc)
-            {
-              return 'ou=templates,'.$oc;
-            },
-            $objectStorage
-          )
-        );
-      }
-      // Now call filter method and merge resulting entries.
-      $result = array_merge($result, call_user_func([$backend, 'query'],
-            $this, $this->base, $this->scope, $filter, $attributes, $this->category, $objectStorage));
-    }
-
-    return $result;
-  }
-
-  /*!
-   * \brief Check if a filter is valid
-   *
-   * \return TRUE if is valid, FALSE otherwise
-   */
-  function isValid ()
-  {
-    foreach ($this->elements as $tag => $element) {
-      if (isset($element->regex)) {
-        if (!preg_match('/'.(string)$element->regex.'/', $this->elementValues[$tag])) {
-          return FALSE;
-        }
-      }
-    }
-    return TRUE;
-  }
-
-  /*!
-   * \brief Update
-   */
-  function update ()
-  {
-    /* React on alphabet links if needed */
-    if (isset($_GET['filter'])) {
-      $s = mb_substr(validate($_GET['filter']), 0, 1, "UTF8");
-      foreach ($this->alphabetElements as $tag) {
-        $this->elementValues[$tag] = $s;
-      }
-    }
-
-    if (isset($_POST['FILTER_PID']) && $_POST['FILTER_PID'] == $this->pid) {
-      // Load post values and adapt filter, base and scope accordingly - but
-      // only if we didn't get a _GET
-      foreach ($this->elements as $tag => $element) {
-        if (!empty($_POST[$tag])) {
-          if ($element['type'] == 'date') {
-            try {
-              $date = new DateTime($_POST[$tag], new DateTimeZone('UTC'));
-              $this->elementValues[$tag] = LdapGeneralizedTime::toString($date);
-            } catch (Exception $e) {
-              $this->elementValues[$tag] = validate($_POST[$tag]);
-            }
-          } else {
-            $this->elementValues[$tag] = validate($_POST[$tag]);
-          }
-        } else {
-          $this->elementValues[$tag] = '';
-        }
-      }
-
-      // Save scope if needed
-      if ($this->scopeMode == 'auto') {
-        $this->scope = (isset($_POST['SCOPE']) ? 'sub' : 'one');
-      }
-    }
-
-  }
-
-  /*!
-   * \brief Get competition list
-   *
-   * \param string $cfg
-   *
-   * \param string $tag
-   *
-   * \param string $value
-   */
-  function getCompletitionList ($cfg, $tag, $value = "*")
-  {
-    global $class_mapping;
-    $res = [];
-
-    // Is backend available?
-    $backend = "filter".$cfg['backend'];
-    if (!isset($class_mapping["$backend"])) {
-      die("Invalid backend specified in search config.");
-    }
-
-    // Load filter and attributes
-    $filter     = $cfg['filter'];
-    $attributes = $cfg['attribute'];
-    if (!is_array($attributes)) {
-      $attributes = [$attributes];
-    }
-
-    // ObjectClass is required to check permissions later.
-    if (!in_array('objectClass', $attributes)) {
-      $attributes[] = 'objectClass';
-    }
-
-    // Make filter
-    $filter = preg_replace("/\\$$tag/", ldap_escape_f($value), $filter);
-    if (isset($cfg['base']) && isset($cfg['scope']) && isset($cfg['category'])) {
-      $result = call_user_func([$backend, 'query'], $this, $cfg['base'], $cfg['scope'], $filter, $attributes,
-                           $cfg["category"], $cfg["objectStorage"]);
-    } else {
-      $result = call_user_func([$backend, 'query'], $this, $this->base, $this->scope, $filter, $attributes,
-                           $this->category, $this->objectStorage);
-    }
-
-    foreach ($result as $entry) {
-      foreach ($attributes as $attribute) {
-        if (is_array($entry[$attribute])) {
-          for ($i = 0; $i < $entry[$attribute]['count']; $i++) {
-            if (mb_stristr($entry[$attribute][$i], $value)) {
-              $res[] = $entry[$attribute][$i];
-            }
-          }
-        } else {
-          $res[] = $entry[$attribute];
-        }
-      }
-    }
-
-    return $res;
-  }
-
-  /*!
-   * \brief Auto complete
-   */
-  function processAutocomplete ()
-  {
-    $result = [];
-
-    // Introduce maximum number of entries
-    $max = 25;
-
-    foreach ($this->autocompleters as $tag => $cfg) {
-      if (isset($_POST[$tag])) {
-        $result = $this->getCompletitionList($cfg, $tag, $_POST[$tag]);
-        $result = array_unique($result);
-        asort($result);
-
-        echo '<ul>';
-        foreach ($result as $entry) {
-          echo '<li>'.mark(htmlentities($_POST[$tag], ENT_COMPAT, 'UTF-8'), htmlentities($entry, ENT_COMPAT, 'UTF-8')).'</li>';
-          if ($max-- == 0) {
-            break;
-          }
-        }
-
-        echo '</ul>';
-      }
-    }
-  }
-}
-
-/*!
- * \brief Sort elements for element length to allow proper replacing later on
- *
- * \param array $a
- *
- * \param array $b
- */
-function strlenSort ($a, $b)
-{
-  if (strlen($a['tag']) == strlen($b['tag'])) {
-    return 0;
-  }
-  return (strlen($a['tag']) < strlen($b['tag']) ? -1 : 1);
-}
-
-?>
diff --git a/include/class_filterLDAP.inc b/include/class_filterLDAP.inc
deleted file mode 100644
index 14fd21aadafa486feadfbb89e8774b6b5012f34b..0000000000000000000000000000000000000000
--- a/include/class_filterLDAP.inc
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \file class_filterLDAP.inc
- * Source code for class filterLDAP
- */
-
- /*!
-  * \brief This class contains all the function to manage LDAP filter
-  *
-  * \see filter
-  */
-class filterLDAP
-{
-  /*!
-   * \brief Query
-   *
-   * \param string $parent
-   *
-   * \param string $base
-   *
-   * \param string $scope
-   *
-   * \param string $filter
-   *
-   * \param array $attributes
-   *
-   * \param string $category
-   *
-   * \param array $objectStorage
-   */
-  static function query ($parent, $base, $scope, $filter, $attributes, $category, $objectStorage = [""])
-  {
-    return static::get_list($parent, $base, $filter, $attributes, $category, $objectStorage, (($scope == 'sub') ? 'subtree' : 'one'), TRUE);
-  }
-
-  /*!
-   * \brief Get list
-   *
-   * \param string $parent
-   *
-   * \param string $base
-   *
-   * \param string $filter
-   *
-   * \param array $attributes
-   *
-   * \param string $category
-   *
-   * \param array $objectStorage
-   *
-   * \param string $scope subtree or one
-   *
-   * \param boolean $sizelimit
-   *
-   * \param boolean $skipAcl
-   */
-  static function get_list ($parent, $base, $filter, $attributes, $category, $objectStorage, $scope, $sizelimit = TRUE, $skipAcl = FALSE)
-  {
-    global $config, $ui;
-
-    // Move to arrays for category and objectStorage
-    if (!is_array($category)) {
-      $category = [$category];
-    }
-
-    // Initialize search bases
-    $bases = [];
-
-    foreach ($objectStorage as $oc) {
-      $oc = preg_replace('/,$/', '', $oc);
-      if ($scope == 'one') {
-        if (empty($oc)) {
-          $bases[$base] = TRUE;
-        } else {
-          $bases[$oc.','.$base] = TRUE;
-        }
-      } else {
-        if (empty($oc)) {
-          /* If we search on the base as well because of an empty storage string,
-           * it makes no sense to do dn filters */
-          $bases[$base] = TRUE;
-          break;
-        }
-        $parts    = ldap_explode_dn($oc, 0);
-        unset($parts['count']);
-        $dnFilter = [];
-        foreach ($parts as $part) {
-          preg_match('/([^=]+)=(.*)$/', $part, $m);
-          $dnFilter[] = '('.$m[1].':dn:='.$m[2].')';
-        }
-        if (count($dnFilter) > 1) {
-          $bases[$base][] = '(&'.implode('', $dnFilter).')';
-        } else {
-          $bases[$base][] = $dnFilter[0];
-        }
-      }
-    }
-
-    // Get LDAP link
-    $ldap = $config->get_ldap_link($sizelimit);
-
-    // Do search for every base
-    $result = [];
-    $limit_exceeded = FALSE;
-    $ui->getSizeLimitHandler()->setLimitExceeded(FALSE);
-
-    foreach ($bases as $base => $dnFilters) {
-      // Break if the size limit is exceeded
-      if ($limit_exceeded) {
-        return $result;
-      }
-
-      // Switch to new base and search
-      if (is_array($dnFilters)) {
-        $dnFilter = '(|'.implode('', $dnFilters).')';
-      } else {
-        $dnFilter = '';
-      }
-      $ldap->cd($base);
-
-      $ldap->search('(&'.$filter.$dnFilter.')', $attributes, $scope);
-
-      // Check for size limit exceeded messages for GUI feedback
-      if ($ldap->hitSizeLimit()) {
-        $ui->getSizeLimitHandler()->setLimitExceeded();
-        $limit_exceeded = TRUE;
-      }
-
-      /* Crawl through result entries and perform the migration to the
-         result array */
-      while ($attrs = $ldap->fetch()) {
-        $dn = $attrs['dn'];
-
-        /* Skip ACL checks if we are forced to skip those checks */
-        if ($skipAcl) {
-          $result[] = $attrs;
-        } else {
-          // Check entry permission
-          $obj = $parent->headpage->getObjectTypeInfos($dn, $attrs);
-          if (isset($obj['category'])) {
-            $o = $obj['category'].'/'.$obj['class'];
-            if (strpos($ui->get_permissions($dn, $o), 'r') !== FALSE) {
-              $result[] = $attrs;
-            }
-          } else {
-            trigger_error('Could not find objectType for '.$dn.'!');
-          }
-        }
-      }
-    }
-
-    return $result;
-  }
-}
-?>
diff --git a/include/class_ldap.inc b/include/class_ldap.inc
index a287777f97fca5bb207e7d09c321cb8699fc9441..53b05aa7c38c526aee6a9c100c06b090a2fe4c18 100644
--- a/include/class_ldap.inc
+++ b/include/class_ldap.inc
@@ -1,10 +1,10 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 1998  Eric Kilfoil
-  Copyright (C) 2003 Alejandro Escanero Blanco
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2003 Alejandro Escanero Blanco <aescanero@chaosdimension.org>
+  Copyright (C) 1998  Eric Kilfoil <eric@ipass.net>
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -37,8 +37,12 @@ class LDAP
   var $reconnect      = FALSE;
   var $tls            = FALSE;
 
-  /* connection identifier */
-  var $cid;
+  /**
+   * Connection identifier
+   *
+   * @var resource|object|false
+   */
+  var $cid            = FALSE;
 
   var $hasres         = [];
   var $sr             = [];
@@ -97,6 +101,47 @@ class LDAP
     $this->connect();
   }
 
+  /*! \brief Remove bogus resources after unserialize
+   */
+  public function __wakeup ()
+  {
+    $this->cid    = FALSE;
+    $this->hascon = FALSE;
+  }
+
+  /*!
+   * \brief Initialize a LDAP connection
+   *
+   * Initializes a LDAP connection.
+   *
+   * \param string $server The server we are connecting to
+   *
+   * \param string $base The base of our ldap tree
+   *
+   * \param string $binddn Default: empty
+   *
+   * \param string $pass Default: empty
+   *
+   * \return LDAP object
+   */
+  public static function init (string $server, string $base, string $binddn = '', string $pass = ''): LDAP
+  {
+    global $config;
+
+    $ldap = new LDAP($binddn, $pass, $server,
+        isset($config->current['LDAPFOLLOWREFERRALS']) && $config->current['LDAPFOLLOWREFERRALS'] == 'TRUE',
+        isset($config->current['LDAPTLS']) && $config->current['LDAPTLS'] == 'TRUE');
+
+    /* Sadly we've no proper return values here. Use the error message instead. */
+    if (!$ldap->success()) {
+      throw new FatalError(htmlescape(sprintf(_('FATAL: Error when connecting to LDAP. Server said "%s".'), $ldap->get_error())));
+    }
+
+    /* Preset connection base to $base and return to caller */
+    $ldap->cd($base);
+    return $ldap;
+  }
+
   /*!
    * \brief Get the search ressource
    *
@@ -121,6 +166,16 @@ class LDAP
     return ldap_escape_f($dn);
   }
 
+  /*!
+   *  \brief Error text that must be returned for invalid user or password
+   *
+   *  This is useful to make sure the same error text is shown whether a user exists or not, when the password is not correct.
+   */
+  static function invalidCredentialsError (): string
+  {
+    return _(ldap_err2str(49));
+  }
+
   /*!
    *  \brief Create a connection to LDAP server
    *
@@ -132,30 +187,72 @@ class LDAP
     $this->reconnect  = FALSE;
     if ($this->cid = @ldap_connect($this->hostname)) {
       @ldap_set_option($this->cid, LDAP_OPT_PROTOCOL_VERSION, 3);
-      if (function_exists("ldap_set_rebind_proc") && $this->follow_referral) {
+      if ($this->follow_referral) {
         @ldap_set_option($this->cid, LDAP_OPT_REFERRALS, 1);
-        @ldap_set_rebind_proc($this->cid, [&$this, "rebind"]);
+        @ldap_set_rebind_proc($this->cid, [&$this, 'rebind']);
       }
-      if (function_exists("ldap_start_tls") && $this->tls) {
+      if ($this->tls) {
         @ldap_start_tls($this->cid);
       }
 
-      $this->error = "No Error";
-      if (@ldap_bind($this->cid, $this->binddn, $this->bindpw)) {
-        $this->error  = "Success";
-        $this->hascon = TRUE;
-      } else {
-        if ($this->reconnect) {
-          if ($this->error != "Success") {
-            $this->error = "Could not rebind to " . $this->binddn;
+      $this->error = 'No Error';
+      $serverctrls = [];
+      if (class_available('ppolicyAccount')) {
+        $serverctrls = [['oid' => LDAP_CONTROL_PASSWORDPOLICYREQUEST]];
+      }
+      $result = @ldap_bind_ext($this->cid, $this->binddn, $this->bindpw, $serverctrls);
+      if (@ldap_parse_result($this->cid, $result, $errcode, $matcheddn, $errmsg, $referrals, $ctrls)) {
+        if (isset($ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value']['error'])) {
+          $this->hascon = FALSE;
+          switch ($ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value']['error']) {
+            case 0:
+              /* passwordExpired - password has expired and must be reset */
+              $this->error = _('It seems your user password has expired. Please use <a href="recovery.php">password recovery</a> to change it.');
+              break;
+            case 1:
+              /* accountLocked */
+              $this->error = _('Account locked. Please contact your system administrator!');
+              break;
+            case 2:
+              /* changeAfterReset - password must be changed before the user will be allowed to perform any other operation */
+              $this->error = 'changeAfterReset';
+              break;
+            case 3:
+              /* passwordModNotAllowed */
+            case 4:
+              /* mustSupplyOldPassword */
+            case 5:
+              /* insufficientPasswordQuality */
+            case 6:
+              /* passwordTooShort */
+            case 7:
+              /* passwordTooYoung */
+            case 8:
+              /* passwordInHistory */
+            default:
+              $this->error = sprintf(_('Unexpected ppolicy error "%s", please contact the administrator'), $ctrls[LDAP_CONTROL_PASSWORDPOLICYRESPONSE]['value']['error']);
+              break;
           }
+          // Note: Also available: expire, grace
         } else {
-          $this->error = "Could not bind to " . $this->binddn;
+          $this->hascon = ($errcode == 0);
+          if ($errcode == 49) {
+            $this->error = static::invalidCredentialsError();
+          } elseif (empty($errmsg)) {
+            $this->error = ldap_err2str($errcode);
+          } else {
+            $this->error = $errmsg;
+          }
         }
+      } else {
+        $this->error  = 'Parsing of LDAP result from bind failed';
+        $this->hascon = FALSE;
       }
     } else {
-      $this->error = "Could not connect to LDAP server";
+      $this->error = 'Could not connect to LDAP server';
     }
+
+    logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'connect');
   }
 
   /*!
@@ -168,9 +265,11 @@ class LDAP
       $this->error      = "Success";
       $this->hascon     = TRUE;
       $this->reconnect  = TRUE;
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rebind');
       return 0;
     } else {
       $this->error = "Could not bind to " . $credentials['ADMINDN'];
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rebind');
       return NULL;
     }
   }
@@ -191,7 +290,8 @@ class LDAP
   function unbind ()
   {
     @ldap_unbind($this->cid);
-    $this->cid = NULL;
+    $this->cid = FALSE;
+    logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, '', 'unbind');
   }
 
   /*!
@@ -202,7 +302,9 @@ class LDAP
     if ($this->hascon) {
       @ldap_close($this->cid);
       $this->hascon = FALSE;
+      $this->cid    = FALSE;
     }
+    logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, '', 'disconnect');
   }
 
   /*!
@@ -245,25 +347,37 @@ class LDAP
    *
    * \param string $scope Scope of the search: subtree/base/one
    */
-  function search ($srp, $filter, $attrs = [], $scope = 'subtree')
+  function search ($srp, $filter, $attrs = [], $scope = 'subtree', array $controls = NULL)
   {
     if ($this->hascon) {
       if ($this->reconnect) {
         $this->connect();
       }
 
-      $start = microtime(TRUE);
+      $startTime = microtime(TRUE);
       $this->clearResult($srp);
       switch (strtolower($scope)) {
         case 'base':
-          $this->sr[$srp] = @ldap_read($this->cid, $this->basedn, $filter, $attrs);
+          if (isset($controls)) {
+            $this->sr[$srp] = @ldap_read($this->cid, $this->basedn, $filter, $attrs, 0, 0, 0, LDAP_DEREF_NEVER, $controls);
+          } else {
+            $this->sr[$srp] = @ldap_read($this->cid, $this->basedn, $filter, $attrs);
+          }
           break;
         case 'one':
-          $this->sr[$srp] = @ldap_list($this->cid, $this->basedn, $filter, $attrs);
+          if (isset($controls)) {
+            $this->sr[$srp] = @ldap_list($this->cid, $this->basedn, $filter, $attrs, 0, 0, 0, LDAP_DEREF_NEVER, $controls);
+          } else {
+            $this->sr[$srp] = @ldap_list($this->cid, $this->basedn, $filter, $attrs);
+          }
           break;
-        default:
         case 'subtree':
-          $this->sr[$srp] = @ldap_search($this->cid, $this->basedn, $filter, $attrs);
+        default:
+          if (isset($controls)) {
+            $this->sr[$srp] = @ldap_search($this->cid, $this->basedn, $filter, $attrs, 0, 0, 0, LDAP_DEREF_NEVER, $controls);
+          } else {
+            $this->sr[$srp] = @ldap_search($this->cid, $this->basedn, $filter, $attrs);
+          }
           break;
       }
       $this->error = @ldap_error($this->cid);
@@ -271,21 +385,40 @@ class LDAP
       $this->hasres[$srp] = TRUE;
 
       /* Check if query took longer as specified in max_ldap_query_time */
-      if ($this->max_ldap_query_time) {
-        $diff = microtime(TRUE) - $start;
-        if ($diff > $this->max_ldap_query_time) {
-          msg_dialog::display(_("Performance warning"), sprintf(_("LDAP performance is poor: last query took about %.2fs!"), $diff), WARNING_DIALOG);
-        }
+      $diff = microtime(TRUE) - $startTime;
+      if ($this->max_ldap_query_time && ($diff > $this->max_ldap_query_time)) {
+        $warning = new FusionDirectoryWarning(htmlescape(sprintf(_('LDAP performance is poor: last query took about %.2fs!'), $diff)));
+        $warning->display();
       }
 
-      $this->log("LDAP operation: time=".(microtime(TRUE) - $start)." operation=search('".$this->basedn."', '$filter')");
+      $this->log("LDAP operation: time=".$diff." operation=search('".$this->basedn."', '$filter')");
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'search(base="'.$this->basedn.'",scope="'.$scope.'",filter="'.$filter.'")');
       return $this->sr[$srp];
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'search(base="'.$this->basedn.'",scope="'.$scope.'",filter="'.$filter.'")');
       return "";
     }
   }
 
+  /*!
+   * \brief Parse last result
+   *
+   * \param integer $srp srp
+   *
+   */
+  function parse_result ($srp): array
+  {
+    if ($this->hascon && $this->hasres[$srp]) {
+      if (ldap_parse_result($this->cid, $this->sr[$srp], $errcode, $matcheddn, $errmsg, $referrals, $controls)) {
+        return [$errcode, $matcheddn, $errmsg, $referrals, $controls];
+      }
+      throw new FusionDirectoryException(_('Parsing LDAP result failed'));
+    } else {
+      throw new FusionDirectoryException(_('No LDAP result to parse'));
+    }
+  }
+
   /*
    * \brief List
    *
@@ -327,9 +460,11 @@ class LDAP
       $this->error    = @ldap_error($this->cid);
       $this->resetResult($srp);
       $this->hasres[$srp] = TRUE;
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'cat(dn="'.$dn.'",filter="'.$filter.'")');
       return $this->sr[$srp];
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'cat(dn="'.$dn.'",filter="'.$filter.'")');
       return "";
     }
   }
@@ -348,10 +483,11 @@ class LDAP
         $this->connect();
       }
       $res  = @ldap_read($this->cid, $dn, $filter, ["objectClass"]);
-      $rv   = @ldap_count_entries($this->cid, $res);
-      return $rv;
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'object_match_filter(dn="'.$dn.'",filter="'.$filter.'")');
+      return @ldap_count_entries($this->cid, $res);
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'object_match_filter(dn="'.$dn.'",filter="'.$filter.'")');
       return FALSE;
     }
   }
@@ -372,16 +508,17 @@ class LDAP
     } else {
       $this->error = "Could not connect to LDAP server";
     }
+    logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $size, 'set_size_limit');
   }
 
   /*!
    * \brief Fetch
    *
    * \param integer $srp
+   * \param bool    $cleanUpNumericIndices whether to remove numeric indices and "count" index at top level ("count" index in each attribute value is kept)
    */
-  function fetch ($srp)
+  function fetch ($srp, bool $cleanUpNumericIndices = FALSE)
   {
-    $att = [];
     if ($this->hascon) {
       if ($this->hasres[$srp]) {
         if ($this->start[$srp] == 0) {
@@ -394,21 +531,29 @@ class LDAP
         } else {
           $this->re[$srp] = @ldap_next_entry($this->cid, $this->re[$srp]);
         }
+        $att = [];
         if ($this->re[$srp]) {
           $att        = @ldap_get_attributes($this->cid, $this->re[$srp]);
           $att['dn']  = trim(@ldap_get_dn($this->cid, $this->re[$srp]));
+          if ($cleanUpNumericIndices && isset($att['count'])) {
+            for ($i = 0; $i < $att['count']; ++$i) {
+              /* Remove numeric keys */
+              unset($att[$i]);
+            }
+            unset($att['count']);
+          }
         }
         $this->error = @ldap_error($this->cid);
-        if (!isset($att)) {
-          $att = [];
-        }
+        logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'fetch()');
         return $att;
       } else {
         $this->error = "Perform a fetch with no search";
+        logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'fetch()');
         return "";
       }
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'fetch()');
       return "";
     }
   }
@@ -474,13 +619,16 @@ class LDAP
       if ($this->hasres[$srp]) {
         $rv = @ldap_count_entries($this->cid, $this->sr[$srp]);
         $this->error = @ldap_error($this->cid);
+        logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'count()');
         return $rv;
       } else {
         $this->error = "Perform a Fetch with no Search";
+        logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'count()');
         return "";
       }
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'count()');
       return "";
     }
   }
@@ -505,9 +653,11 @@ class LDAP
 
       $r = ldap_mod_del($this->cid, $dn, $attrs);
       $this->error = @ldap_error($this->cid);
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rm('.$dn.')');
       return $r;
     } else {
       $this->error = 'Could not connect to LDAP server';
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rm('.$dn.')');
       return '';
     }
   }
@@ -524,9 +674,11 @@ class LDAP
 
       $r = @ldap_mod_add($this->cid, $dn, $attrs);
       $this->error = @ldap_error($this->cid);
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'mod_add('.$dn.')');
       return $r;
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'mod_add('.$dn.')');
       return "";
     }
   }
@@ -544,9 +696,11 @@ class LDAP
       }
       $r = @ldap_delete($this->cid, $deletedn);
       $this->error = @ldap_error($this->cid);
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rmdir('.$deletedn.')');
       return ($r ? $r : 0);
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rmdir('.$deletedn.')');
       return "";
     }
   }
@@ -593,12 +747,13 @@ class LDAP
       $r = ldap_rename($this->cid, $source, $dest_rdn, $parent, TRUE);
       $this->error = ldap_error($this->cid);
 
-      /* Check if destination dn exists, if not the
-          server may not support this operation */
-      $r &= is_resource($this->dn_exists($dest));
+      /* Check if destination dn exists, if not the server may not support this operation */
+      $r &= $this->dn_exists($dest);
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rename("'.$source.'","'.$dest.'")');
       return $r;
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rename("'.$source.'","'.$dest.'")');
       return FALSE;
     }
   }
@@ -633,6 +788,7 @@ class LDAP
       reset($delarray);
 
       /* Really Delete ALL dn's in subtree */
+      $r = TRUE;
       foreach (array_keys($delarray) as $key) {
         $r = @ldap_delete($this->cid, $key);
         if ($r === FALSE) {
@@ -640,9 +796,11 @@ class LDAP
         }
       }
       $this->error = @ldap_error($this->cid);
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rmdir_recursive("'.$deletedn.'")');
       return ($r ? $r : 0);
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'rmdir_recursive("'.$deletedn.'")');
       return "";
     }
   }
@@ -654,22 +812,21 @@ class LDAP
     }
 
     $str = "";
-    if (preg_match("/^objectClass: value #([0-9]*) invalid per syntax$/", $this->get_additional_error(), $m)) {
-      if (isset($attrs['objectClass'])) {
-        $ocs = $attrs['objectClass'];
-        if (!is_array($ocs)) {
-          $ocs = [$ocs];
-        }
-        if (isset($ocs[$m[1]])) {
-          $str .= " - <b>objectClass: ".$ocs[$m[1]]."</b>";
-        }
+    if (isset($attrs['objectClass'])
+      && preg_match("/^objectClass: value #([0-9]*) invalid per syntax$/", $this->get_additional_error(), $m)) {
+      $ocs = $attrs['objectClass'];
+      if (!is_array($ocs)) {
+        $ocs = [$ocs];
+      }
+      if (isset($ocs[$m[1]])) {
+        $str .= " - <b>objectClass: ".$ocs[$m[1]]."</b>";
       }
     }
     if ($error == "Undefined attribute type") {
       $str = " - <b>attribute: ".preg_replace("/:.*$/", "", $this->get_additional_error())."</b>";
     }
 
-    @DEBUG(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $attrs, "Erroneous data");
+    logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $attrs, "Erroneous data");
 
     return $str;
   }
@@ -693,13 +850,40 @@ class LDAP
       if (!$this->success()) {
         $this->error .= $this->makeReadableErrors($this->error, $attrs);
       }
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'modify('.$this->basedn.')');
       return ($r ? $r : 0);
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'modify('.$this->basedn.')');
       return "";
     }
   }
 
+  /*!
+   * \brief Modify a entry of the directory LDAP with fine control
+   *
+   * \param array $changes The changes
+   */
+  function modify_batch (array $changes)
+  {
+    if (count($changes) == 0) {
+      return TRUE;
+    }
+    if ($this->hascon) {
+      if ($this->reconnect) {
+        $this->connect();
+      }
+      $r            = @ldap_modify_batch($this->cid, $this->basedn, $changes);
+      $this->error  = @ldap_error($this->cid);
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'modify_batch('.$this->basedn.')');
+      return $r;
+    } else {
+      $this->error = 'Could not connect to LDAP server';
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'modify_batch('.$this->basedn.')');
+      return FALSE;
+    }
+  }
+
   /*!
    * \brief Add entry in the LDAP directory
    *
@@ -716,9 +900,11 @@ class LDAP
       if (!$this->success()) {
         $this->error .= $this->makeReadableErrors($this->error, $attrs);
       }
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'add('.$this->basedn.')');
       return ($r ? $r : 0);
     } else {
       $this->error = "Could not connect to LDAP server";
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->error, 'add('.$this->basedn.')');
       return "";
     }
   }
@@ -733,7 +919,7 @@ class LDAP
     $real_path = substr($target, 0, strlen($target) - strlen($this->basedn) - 1);
 
     if ($target == $this->basedn) {
-      $l = ['dummy'];
+      $l = ["dummy"];
     } else {
       $l = array_reverse(ldap_explode_dn($real_path, 0));
     }
@@ -744,134 +930,127 @@ class LDAP
     $classes = $this->get_objectclasses();
 
     foreach ($l as $part) {
-      if ($part != 'dummy') {
+      if ($part != "dummy") {
         $cdn = "$part,$cdn";
       }
 
       /* Ignore referrals */
       if ($ignoreReferralBases) {
+        $found = FALSE;
         foreach ($this->referrals as $ref) {
           if ($ref['BASE'] == $cdn) {
-            continue 2;
+            $found = TRUE;
+            break;
           }
         }
+        if ($found) {
+          continue;
+        }
       }
 
-      $this->cat($srp, $cdn);
-      $attrs = $this->fetch($srp);
-
       /* Create missing entry? */
-      if (count($attrs)) {
-        continue;
-      }
-
-      $type   = preg_replace('/^([^=]+)=.*$/', '\\1', $cdn);
-      $param  = preg_replace('/^[^=]+=([^,]+).*$/', '\\1', $cdn);
-      $param  = preg_replace(['/\\\\,/','/\\\\"/'], [',','"'], $param);
-
-      $attrs = [$type => $param];
-
-      /* Hardcoded classes */
-      switch ($type) {
-        case 'ou':
-          $attrs['objectClass']  = ['organizationalUnit'];
-          break;
-        case 'd':
-          $attrs['objectClass']  = ['domain'];
-          break;
-        case 'dc':
-          $attrs['objectClass']  = ['dcObject'];
-          break;
-        case 'o':
-          $attrs['objectClass']  = ['organization'];
-          break;
-        case 'l':
-          $attrs['objectClass']  = ['locality'];
-          break;
-        case 'c':
-          $attrs['objectClass']  = ['country'];
-          break;
-        default:
-          /* Fallback to autodetection of objectClass */
-          if (!count($classes)) {
-            msg_dialog::display(_('Internal error'), sprintf(_('Cannot automatically create subtrees with RDN "%s": not supported'), $type), FATAL_ERROR_DIALOG);
-            exit();
-          }
-          /* Get name of first matching objectClass */
-          $attrs['objectClass']  = [];
-          foreach ($classes as $class) {
-            if (isset($class['MUST']) && in_array($type, $class['MUST'])) {
-              /* Look for first class that is structural... */
-              if (isset($class['STRUCTURAL'])) {
-                $attrs['objectClass'] = [$class['NAME']];
-                break;
-              }
-
-              /* Look for class that is auxiliary... */
-              if (empty($attrs['objectClass']) && isset($class['AUXILIARY'])) {
-                $attrs['objectClass'] = [$class['NAME']];
+      if (!$this->dn_exists($cdn)) {
+        $type   = preg_replace('/^([^=]+)=.*$/', '\\1', $cdn);
+        $param  = preg_replace('/^[^=]+=([^,]+).*$/', '\\1', $cdn);
+        $param  = preg_replace(['/\\\\,/','/\\\\"/'], [',','"'], $param);
+
+        $na = [];
+
+        /* Automatic or traditional? */
+        if (count($classes)) {
+          if ($type == 'l') {
+            /* Locality has l as MAY so autodetection fails */
+            $ocname = 'locality';
+          } else {
+            /* Get name of first matching objectClass */
+            $ocname = '';
+            foreach ($classes as $class) {
+              if (isset($class['MUST']) && in_array($type, $class['MUST'])) {
+                /* Look for first classes that is structural... */
+                if (isset($class['STRUCTURAL'])) {
+                  $ocname = $class['NAME'];
+                  break;
+                }
+
+                /* Look for classes that are auxiliary... */
+                if (isset($class['AUXILIARY'])) {
+                  $ocname = $class['NAME'];
+                }
               }
-            } elseif (empty($attrs['objectClass']) && isset($class['MAY']) && in_array($type, $class['MAY'])) {
-              /* Better than nothing */
-              $attrs['objectClass'] = [$class['NAME']];
             }
           }
 
           /* Bail out, if we've nothing to do... */
-          if (empty($attrs['objectClass'])) {
-            msg_dialog::display(_('Internal error'), sprintf(_('Cannot automatically create subtrees with RDN "%s": no object class found!'), $type), FATAL_ERROR_DIALOG);
-            exit();
+          if ($ocname == '') {
+            throw new FusionDirectoryError(htmlescape(sprintf(_('Cannot automatically create subtrees with RDN "%s": no object class found!'), $type)));
           }
-      }
-
-      $ocname = $attrs['objectClass'][0];
-      while (isset($classes[$ocname]['SUP']) && ($classes[$ocname]['SUP'] != 'top')) {
-        $ocname                 = $classes[$ocname]['SUP'];
-        $attrs['objectClass'][] = $ocname;
-      }
-
-      if (isset($classes[$ocname]['AUXILIARY'])) {
-        /* AUXILIARY class, we have to add a STRUCTURAL one */
-        $attrs['objectClass'][] = 'organization';
-      }
 
-      foreach ($attrs['objectClass'] as $ocname) {
-        // Fill in MUST values - but do not overwrite existing ones.
-        if (is_array($classes[$ocname]['MUST'])) {
-          foreach ($classes[$ocname]['MUST'] as $attr) {
-            if (empty($attrs[$attr])) {
-              $attrs[$attr] = $param;
+          /* Assemble_entry */
+          $na['objectClass'] = [$ocname];
+          if (isset($classes[$ocname]['AUXILIARY'])) {
+            $na['objectClass'][] = $classes[$ocname]['SUP'];
+          }
+          if ($type == 'dc') {
+            /* This is bad actually, but - tell me a better way? */
+            $na['objectClass'][]  = 'organization';
+            $na['o']              = $param;
+          }
+          $na[$type] = $param;
+
+          // Fill in MUST values - but do not overwrite existing ones.
+          $oc = $ocname;
+          do {
+            if (isset($classes[$oc]['MUST']) && is_array($classes[$oc]['MUST'])) {
+              foreach ($classes[$oc]['MUST'] as $attr) {
+                if (isset($na[$attr]) && !empty($na[$attr])) {
+                  continue;
+                }
+                $na[$attr] = 'filled';
+              }
             }
+            $oc = ($classes[$oc]['SUP'] ?? NULL);
+          } while ($oc);
+        } else {
+          /* Use alternative add... */
+          switch ($type) {
+            case 'ou':
+              $na['objectClass']  = 'organizationalUnit';
+              $na['ou']           = $param;
+              break;
+            case 'dc':
+              $na['objectClass']  = ['dcObject', 'top', 'organization'];
+              $na['dc']           = $param;
+              $na['o']            = $param;
+              break;
+            default:
+              throw new FusionDirectoryError(htmlescape(sprintf(_('Cannot automatically create subtrees with RDN "%s": not supported'), $type)));
           }
         }
-      }
-      $this->cd($cdn);
-      $this->add($attrs);
+        $this->cd($cdn);
+        $this->add($na);
 
-      if (!$this->success()) {
-        @DEBUG(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $cdn, 'dn');
-        @DEBUG(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $attrs, 'Content');
-        @DEBUG(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->get_error(), 'LDAP error');
+        if (!$this->success()) {
+          logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $cdn, 'dn');
+          logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $na, 'Content');
+          logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->get_error(), 'LDAP error');
 
-        msg_dialog::display(_('LDAP error'), msgPool::ldaperror($this->get_error(), $cdn, LDAP_ADD, get_class()), LDAP_ERROR);
-        return FALSE;
+          throw new FusionDirectoryLdapError($cdn, LDAP_ADD, $this->get_error(), $this->get_errno());
+        }
       }
     }
-
-    return TRUE;
   }
 
 
   /*!
    * \brief Get the LDAP additional error
    *
-   * \return string $error containts LDAP_OPT_ERROR_STRING
+   * \return string containts LDAP_OPT_ERROR_STRING
    */
   function get_additional_error ()
   {
-    $error = "";
-    @ldap_get_option($this->cid, LDAP_OPT_ERROR_STRING, $error);
-    return $error;
+    $additional_error = '';
+    @ldap_get_option($this->cid, LDAP_OPT_ERROR_STRING, $additional_error);
+    return $additional_error;
   }
 
   /*!
@@ -879,7 +1058,7 @@ class LDAP
    *
    * \return boolean TRUE if Success is found in $error, else return FALSE
    */
-  function success ()
+  function success (): bool
   {
     return (trim($this->error) === 'Success');
   }
@@ -887,18 +1066,23 @@ class LDAP
   /*!
    * \brief Get the error
    */
-  function get_error ()
+  function get_error ($details = TRUE): string
   {
-    if ($this->error == 'Success') {
+    if (($this->error == 'Success') || !$details) {
       return $this->error;
     } else {
       $adderror = $this->get_additional_error();
-      if ($adderror != "") {
-        $error = $this->error." (".$this->get_additional_error().", ".sprintf(_("while operating on '%s' using LDAP server '%s'"), $this->basedn, $this->hostname).")";
+      if ($adderror != '') {
+        return sprintf(
+          _('%s (%s, while operating on "%s" using LDAP server "%s")'),
+          $this->error, $adderror, $this->basedn, $this->hostname
+        );
       } else {
-        $error = $this->error." (".sprintf(_("while operating on LDAP server %s"), $this->hostname).")";
+        return sprintf(
+          _('%s (while operating on LDAP server "%s")'),
+          $this->error, $this->hostname
+        );
       }
-      return $error;
     }
   }
 
@@ -907,12 +1091,12 @@ class LDAP
    *
    * Must be run right after the ldap request
    */
-  function get_errno ()
+  function get_errno (): int
   {
     if ($this->error == 'Success') {
       return 0;
     } else {
-      return ldap_errno($this->cid);
+      return @ldap_errno($this->cid) ?? -1;
     }
   }
 
@@ -921,7 +1105,7 @@ class LDAP
    *
    * Must be run right after the search
    */
-  function hitSizeLimit ()
+  function hitSizeLimit (): bool
   {
     /* LDAP_SIZELIMIT_EXCEEDED 0x04 */
     return ($this->get_errno() == 0x04);
@@ -951,30 +1135,31 @@ class LDAP
   /*!
    * \brief  Generates an ldif for all entries matching the filter settings, scope and limit.
    *
-   * \param  $dn           The entry to export.
+   * \param  string $dn       The entry to export.
+   *
+   * \param  string $filter   Limit the exported object to those maching this filter.
    *
-   * \param  $filter       Limit the exported object to those maching this filter.
+   * \param  string $scope    'base', 'sub' .. see manpage for 'ldapmodify' for details.
    *
-   * \param  $scope        'base', 'sub' .. see manpage for 'ldapmodify' for details.
+   * \param  int $limit       Limits the result.
    *
-   * \param  $limit        Limits the result.
+   * \param  ?int $wrap       Wraps line around this length (0 to disable).
    */
-  function generateLdif ($dn, $filter = "(objectClass=*)", $scope = 'sub', $limit = 0)
+  function generateLdif (string $dn, string $filter = '(objectClass=*)', string $scope = 'sub', int $limit = 0, int $wrap = NULL): string
   {
-    // Ensure that limit is numeric if not skip here.
-    if (!empty($limit) && !is_numeric($limit)) {
-        trigger_error(sprintf("Invalid parameter for limit '%s', a numeric value is required."), $limit);
-        return NULL;
+    $limit  = (($limit == 0) ? '' : ' -z '.$limit);
+    if ($wrap === NULL) {
+      $wrap = '';
+    } else {
+      $wrap = ' -o ldif-wrap='.($wrap ? $wrap : 'no');
     }
-    $limit = (!$limit) ? '' : ' -z '.$limit;
 
     // Check scope values
     $scope = trim($scope);
     if (!empty($scope) && !in_array($scope, ['base', 'one', 'sub', 'children'])) {
-        trigger_error(sprintf("Invalid parameter for scope '%s', please use 'base', 'one', 'sub' or 'children'."), $scope);
-        return NULL;
+      throw new LDIFExportException(sprintf('Invalid parameter for scope "%s", please use "base", "one", "sub" or "children".', $scope));
     }
-    $scope = (!empty($scope)) ? ' -s '.$scope : '';
+    $scope = (empty($scope) ? '' : ' -s '.$scope);
 
     // Prepare parameters to be valid for shell execution
     $dn     = escapeshellarg($dn);
@@ -983,7 +1168,7 @@ class LDAP
     $admin  = escapeshellarg($this->binddn);
     $filter = escapeshellarg($filter);
 
-    $cmd = 'ldapsearch'.($this->tls ? ' -ZZ' : '')." -x -LLLL -D {$admin} {$filter} {$limit} {$scope} -H {$host} -b {$dn} -w {$pwd} ";
+    $cmd = 'ldapsearch'.($this->tls ? ' -ZZ' : '')." -x -LLLL -D {$admin} {$filter} {$limit} {$wrap} {$scope} -H {$host} -b {$dn} -w {$pwd} ";
 
     // Create list of process pipes
     $descriptorspec = [
@@ -994,7 +1179,7 @@ class LDAP
 
     // Try to open the process
     $process = proc_open($cmd, $descriptorspec, $pipes);
-    if (is_resource($process)) {
+    if ($process !== FALSE) {
       // Write the password to stdin
       fclose($pipes[0]);
 
@@ -1005,42 +1190,22 @@ class LDAP
 
       // Close the process and check its return value
       if (proc_close($process) != 0) {
-        $this->error = $err;
-        return NULL;
+        throw new LDIFExportException($err);
       }
     } else {
-      $this->error = _("proc_open failed to execute ldapsearch");
-      return NULL;
+      throw new LDIFExportException(_('proc_open failed to execute ldapsearch'));
     }
     return $res;
   }
 
-  function dn_exists ($dn)
+  function dn_exists ($dn): bool
   {
-    return @ldap_read($this->cid, $dn, "(objectClass=*)", ["objectClass"]);
+    logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, '', 'dn_exists('.$dn.')');
+    return (@ldap_read($this->cid, $dn, '(objectClass=*)', ['objectClass']) !== FALSE);
   }
 
-  /*!
-   * \brief Function to imports ldifs
-   *
-   * If DeleteOldEntries is TRUE, the destination entry will be deleted first.
-   * If JustModify is TRUE the destination entry will only be touched by the attributes specified in the ldif.
-   * if JustMofify is FALSE the destination dn will be overwritten by the new ldif.
-   *
-   * \param integer $srp
-   *
-   * \param string $str_attr
-   *
-   * \param boolean $JustModify
-   *
-   * \param boolean $DeleteOldEntries
-   */
-  function import_complete_ldif ($srp, $str_attr, $JustModify, $DeleteOldEntries)
+  function parseLdif (string $str_attr): array
   {
-    if ($this->reconnect) {
-      $this->connect();
-    }
-
     /* First we split the string into lines */
     $fileLines = preg_split("/\n/", $str_attr);
     if (end($fileLines) != '') {
@@ -1061,13 +1226,13 @@ class LDAP
         $line .= substr($fileLine, 1);
       } else {
         if ($line !== NULL) {
-          if (preg_match('/^#/', $line)) {
+          if (preg_match('/^#/', $line)
+            || (preg_match('/^version:/', $line) && empty($entry))) {
             /* Ignore comment */
-          } elseif (preg_match('/^version:/', $line) && empty($entry)) {
             /* Ignore version number */
           } else {
             /* Line has ended */
-            list($key, $value) = explode(':', $line, 2);
+            list ($key, $value) = explode(':', $line, 2);
             $value = trim($value);
             if (preg_match('/^:/', $value)) {
               $value = base64_decode(trim(substr($value, 1)));
@@ -1109,6 +1274,32 @@ class LDAP
       }
     }
 
+    return $entries;
+  }
+
+  /*!
+   * \brief Function to imports ldifs
+   *
+   * If DeleteOldEntries is TRUE, the destination entry will be deleted first.
+   * If JustModify is TRUE the destination entry will only be touched by the attributes specified in the ldif.
+   * if JustMofify is FALSE the destination dn will be overwritten by the new ldif.
+   *
+   * \param integer $srp
+   *
+   * \param string $str_attr
+   *
+   * \param boolean $JustModify
+   *
+   * \param boolean $DeleteOldEntries
+   */
+  function import_complete_ldif ($srp, $str_attr, $JustModify, $DeleteOldEntries)
+  {
+    $entries = $this->parseLdif($str_attr);
+
+    if ($this->reconnect) {
+      $this->connect();
+    }
+
     foreach ($entries as $startLine => $entry) {
       /* Delete before insert */
       $usermdir = ($this->dn_exists($entry['dn']) && $DeleteOldEntries);
@@ -1150,7 +1341,9 @@ class LDAP
       $this->connect();
     }
 
-    $ret  = FALSE;
+    $ret        = FALSE;
+    $dn         = NULL;
+    $operation  = NULL;
 
     /* If dn is an index of data, we should try to insert the data */
     if (isset($data['dn'])) {
@@ -1174,9 +1367,14 @@ class LDAP
 
       /* Create missing trees */
       $this->cd($config->current['BASE']);
-      $this->create_missing_trees($srp, preg_replace('/^[^,]+,/', '', $dn));
+      try {
+        $this->create_missing_trees($srp, preg_replace('/^[^,]+,/', '', $dn));
+      } catch (FusionDirectoryError $error) {
+        $error->display();
+      }
       $this->cd($dn);
 
+      $operation = LDAP_MOD;
       if (!$modify) {
         $this->cat($srp, $dn);
         if ($this->count($srp)) {
@@ -1195,6 +1393,7 @@ class LDAP
           $ret = $this->modify($data);
         } else {
           /* The destination entry doesn't exists, create it */
+          $operation = LDAP_ADD;
           $ret = $this->add($data);
         }
       } else {
@@ -1204,9 +1403,11 @@ class LDAP
     }
 
     if (!$this->success()) {
-      msg_dialog::display(_('LDAP error'), msgPool::ldaperror($this->get_error(), $dn, '', get_class()), LDAP_ERROR);
+      $error = new FusionDirectoryLdapError($dn, $operation, $this->get_error(), $this->get_errno());
+      $error->display();
     }
 
+
     return $ret;
   }
 
@@ -1217,26 +1418,23 @@ class LDAP
    */
   function get_objectclasses ($force_reload = FALSE)
   {
-    $objectclasses = [];
-
     /* Return the cached results. */
     if (class_available('session') && session::is_set('LDAP_CACHE::get_objectclasses') && !$force_reload) {
-      $objectclasses = session::get('LDAP_CACHE::get_objectclasses');
-      return $objectclasses;
+      return session::get('LDAP_CACHE::get_objectclasses');
     }
 
     // Get base to look for schema
-    $sr   = @ldap_read($this->cid, '', 'objectClass=*', ['subschemaSubentry']);
-    $attr = @ldap_get_entries($this->cid, $sr);
-    if (!isset($attr[0]['subschemasubentry'][0])) {
+    $res    = @ldap_read($this->cid, '', 'objectClass=*', ['subschemaSubentry']);
+    $attrs  = @ldap_get_entries($this->cid, $res);
+    if (!isset($attrs[0]['subschemasubentry'][0])) {
       return [];
     }
 
     /* Get list of objectclasses and fill array */
-    $nb = $attr[0]['subschemasubentry'][0];
+    $nb = $attrs[0]['subschemasubentry'][0];
     $objectclasses = [];
-    $sr = ldap_read($this->cid, $nb, 'objectClass=*', ['objectclasses']);
-    $attrs = ldap_get_entries($this->cid, $sr);
+    $res    = ldap_read($this->cid, $nb, 'objectClass=*', ['objectclasses']);
+    $attrs  = ldap_get_entries($this->cid, $res);
     if (!isset($attrs[0])) {
       return [];
     }
@@ -1244,11 +1442,12 @@ class LDAP
       if (preg_match('/^[0-9]+$/', $val)) {
         continue;
       }
-      $name = "OID";
-      $pattern = explode(' ', $val);
-      $ocname = preg_replace("/^.* NAME\s+\(*\s*'([^']+)'\s*\)*.*$/", '\\1', $val);
+      $name     = 'OID';
+      $pattern  = explode(' ', $val);
+      $ocname   = preg_replace("/^.* NAME\s+\(*\s*'([^']+)'\s*\)*.*$/", '\\1', $val);
       $objectclasses[$ocname] = [];
 
+      $value = '';
       foreach ($pattern as $chunk) {
         switch ($chunk) {
 
@@ -1290,7 +1489,6 @@ class LDAP
           default:  $value .= $chunk.' ';
         }
       }
-
     }
     if (class_available('session')) {
       session::set('LDAP_CACHE::get_objectclasses', $objectclasses);
@@ -1356,7 +1554,7 @@ class LDAP
     }
   }
 
-  function get_naming_contexts ($server, $admin = '', $password = '')
+  public static function get_naming_contexts ($server, $admin = '', $password = '')
   {
     /* Build LDAP connection */
     $ds = ldap_connect($server);
@@ -1367,10 +1565,10 @@ class LDAP
     ldap_bind($ds, $admin, $password);
 
     /* Get base to look for naming contexts */
-    $sr   = @ldap_read($ds, '', 'objectClass=*', ['namingContexts']);
-    $attr = @ldap_get_entries($ds, $sr);
+    $res    = @ldap_read($ds, '', 'objectClass=*', ['namingContexts']);
+    $attrs  = @ldap_get_entries($ds, $res);
 
-    return $attr[0]['namingcontexts'];
+    logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $attrs[0]['namingcontexts'], 'get_naming_contexts');
+    return $attrs[0]['namingcontexts'];
   }
 }
-?>
diff --git a/include/class_ldapFilter.inc b/include/class_ldapFilter.inc
index 8078627d06ba0d5687320fbf2b74652bfc846f57..245195353f68abac2079316639da79d01fe79511 100644
--- a/include/class_ldapFilter.inc
+++ b/include/class_ldapFilter.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
 
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2020  FusionDirectory
 
   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
@@ -19,7 +19,6 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-
 /*!
  * \file class_ldapFilter.inc
  * Source code for class ldapFilter and ldapFilterLeaf
@@ -29,7 +28,7 @@
   * \brief This class allows to parse and execute on a array an LDAP filter
   * Example:
   * $filter = ldapFilter::parse("(&(objectClass=testClass)(testField=value))");
-  * $array = array('objectClass' => array('testClass'), 'testField' => array('value1', 'value'));
+  * $array = array('objectClass' => array('testClass'), 'testField' => array ('value1', 'value'));
   * if ($filter($array)) {
   *   // do something
   * }
@@ -101,7 +100,7 @@ class ldapFilter
       $filter .= ')';
       $offset = 0;
       $level  = 0;
-      $open;
+      $open   = 0;
       while (preg_match('/[^\\\\](\\(|\\))/', $filter, $m, PREG_OFFSET_CAPTURE, $offset)) {
         $offset = $m[0][1] + 1;
         if ($m[1][0] == '(') {
@@ -122,7 +121,7 @@ class ldapFilter
       } else {
         return new ldapFilter($filter[0], $subfilters);
       }
-    } elseif (preg_match('/^([^\\(\\)\\=\\>\\<]+)('.join('|', ldapFilterLeaf::$operators).')([^\\(\\)]+)$/', $filter, $m)) {
+    } elseif (preg_match('/^([^\\(\\)\\=\\>\\<]+)('.join('|', ldapFilterLeaf::$operators).')([^\\(\\)]*)$/', $filter, $m)) {
       return new ldapFilterLeaf($m[1], $m[2], $m[3]);
     } else {
       throw new FusionDirectoryException('Failed to parse '.$filter);
@@ -142,7 +141,7 @@ class ldapFilterLeaf extends ldapFilter
 
   function __construct ($left, $operator, $right)
   {
-    if (strrpos($left, ':dn:', -4) !== FALSE) {
+    if (@strrpos($left, ':dn:', -4) !== FALSE) {
       $this->dnFilter = TRUE;
       $left = substr($left, 0, -4);
     }
@@ -232,14 +231,19 @@ class ldapFilterLeaf extends ldapFilter
   }
 }
 
-function fdTemplateFilter ($filter)
+/* Converts a filter object to search for templates */
+function fdTemplateFilter (ldapFilter $filter)
 {
   if ($filter instanceof ldapFilterLeaf) {
     if ($filter->isDnFilter()) {
       return $filter;
     } elseif ($filter->getOperator() == '=') {
       $subparts = $filter->getSubparts();
-      return new ldapFilterLeaf('fdTemplateField', '=', $subparts[0].':'.$subparts[1]);
+      if ($subparts[0] == '_template_cn') {
+        return new ldapFilterLeaf('cn', '=', $subparts[1]);
+      } else {
+        return new ldapFilterLeaf('fdTemplateField', '=', $subparts[0].':'.$subparts[1]);
+      }
     } else {
       trigger_error('Not able to adapt this filter for templates');
     }
@@ -253,3 +257,24 @@ function fdTemplateFilter ($filter)
   }
   return $filter;
 }
+
+/* Removes parts specific to templates from a search filter */
+function fdNoTemplateFilter (ldapFilter $filter)
+{
+  if ($filter instanceof ldapFilterLeaf) {
+    if (!$filter->isDnFilter()) {
+      $subparts = $filter->getSubparts();
+      if ($subparts[0] == '_template_cn') {
+        return FALSE;
+      }
+    }
+  } else {
+    $subparts = $filter->getSubparts();
+    foreach ($subparts as &$subpart) {
+      $subpart = fdNoTemplateFilter($subpart);
+    }
+    unset($subpart);
+    return new ldapFilter($filter->getOperator(), array_filter($subparts));
+  }
+  return $filter;
+}
diff --git a/include/class_ldapGeneralizedTime.inc b/include/class_ldapGeneralizedTime.inc
index bc7a63943207d23589c2fe65c64dafbb3f9a6c23..4d2b1db5a6513d9c7723f4d948f666eaf402d093 100644
--- a/include/class_ldapGeneralizedTime.inc
+++ b/include/class_ldapGeneralizedTime.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2016-2018  FusionDirectory
+  Copyright (C) 2016  FusionDirectory
 
   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
@@ -111,9 +111,8 @@ class LdapGeneralizedTime
     \param DateTime $date DateTime object to convert
     \param boolean $setToUTC Whether or not to set the date timezone to UTC. Defaults to TRUE.
   */
-  public static function toString ($date, $setToUTC = TRUE)
+  public static function toString (DateTime $date, $setToUTC = TRUE)
   {
-    assert($date instanceof DateTime);
     if ($setToUTC) {
       $date->setTimezone(new DateTimeZone('UTC'));
     }
diff --git a/include/class_ldapMultiplexer.inc b/include/class_ldapMultiplexer.inc
index 1eedd35a2165bcb4faf155914e1c3ccaf86254d7..b5efd0d9431903a5cd45ffbcd51dbaf75e46104c 100644
--- a/include/class_ldapMultiplexer.inc
+++ b/include/class_ldapMultiplexer.inc
@@ -3,7 +3,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -25,10 +25,24 @@
  * Source code for class ldapMultiplexer
  */
 
- /*!
-  * \brief This class contains all function to manage ldap multiplexer
+ /**
+  * This class contains all function to manage ldap multiplexer
+  * @method void set_size_limit ($size)
+  * @method void cd ($dir)
+  * @method boolean|resource modify_batch (array $changes)
+  * @method string get_error ($details = TRUE)
+  * @method array get_objectclasses ($force_reload = FALSE)
+  * @method string|array fetch (bool $cleanUpNumericIndices = FALSE)
+  * @method string|resource search ($filter, $attrs = [], $scope = 'subtree', array $controls = NULL)
+  * @method string|resource cat ($dn, $attrs = ["*"], $filter = "(objectclass=*)")
+  * @method int count ()
+  * @method bool success ()
+  * @method true|0|"" rmdir_recursive (string $deletedn)
+  * @method void create_missing_trees (string $target, bool $ignoreReferralBases = TRUE)
+  * @method mixed add ($attrs)
   */
-class ldapMultiplexer {
+class ldapMultiplexer
+{
 
   /* Internal stuff */
   protected $object;
@@ -60,7 +74,7 @@ class ldapMultiplexer {
   public function __call ($methodName, $parameters)
   {
     /* Add resource pointer if the mentioned methods are used */
-    if (in_array($methodName, ['search','ls','cat','fetch','clearResult','resetResult','count','getDN','rmdir_recursive','create_missing_trees','import_single_entry','import_complete_ldif'])) {
+    if (in_array($methodName, ['search','ls','cat','fetch','clearResult','resetResult','count','getDN','rmdir_recursive','create_missing_trees','import_single_entry','import_complete_ldif','parse_result'])) {
       array_unshift($parameters, $this->sr);
     }
 
@@ -76,7 +90,4 @@ class ldapMultiplexer {
   {
     return $this->object->$memberName;
   }
-
 }
-
-?>
diff --git a/include/class_ldapSizeLimit.inc b/include/class_ldapSizeLimit.inc
index 1b89d5efb6d6c80a3a80c998f9a90e00972a6887..20c8e1922a379f34f7b1d5459a0e61592f826a01 100644
--- a/include/class_ldapSizeLimit.inc
+++ b/include/class_ldapSizeLimit.inc
@@ -71,8 +71,12 @@ class ldapSizeLimit
       switch ($_POST['action']) {
         case 'newlimit':
           if (isset($_POST['new_limit']) && tests::is_id($_POST['new_limit'])) {
-            $this->sizeLimit  = intval($_POST['new_limit']);
-            $this->ignore     = FALSE;
+            if (($error = static::checkMaxInputVars($_POST['new_limit'])) !== FALSE) {
+              $error->display();
+            } else {
+              $this->sizeLimit  = intval($_POST['new_limit']);
+              $this->ignore     = FALSE;
+            }
           }
           break;
         case 'ignore':
@@ -111,8 +115,7 @@ class ldapSizeLimit
     /* Eventually show dialog */
     if ($this->limitExceeded) {
       $smarty = get_smarty();
-      $smarty->assign('warning', sprintf(_('The size limit of %d entries is exceed!'), $this->sizeLimit));
-      $smarty->assign('limit_message', sprintf(_('Set the new size limit to %s and show me this message if the limit still exceeds'), '<input type="text" name="new_limit" maxlength="10" size="5" value="'.($this->sizeLimit + 100).'"/>'));
+      $smarty->assign('sizelimit', $this->sizeLimit);
       return $smarty->fetch(get_template_path('sizelimit.tpl'));
     }
 
@@ -127,14 +130,32 @@ class ldapSizeLimit
    */
   function renderWarning ()
   {
-    if (($this->sizeLimit >= 10000000) || $this->limitExceeded) {
-      $config = '<input type="submit" name="edit_sizelimit" value="'._('Configure').'"/>';
-    } else {
-      $config = '';
-    }
     if ($this->limitExceeded) {
-      return '('._('incomplete').") $config";
+      $config = '<input type="submit" name="edit_sizelimit" value="'.htmlescape(_('Configure')).'" formnovalidate="formnovalidate"/>';
+      return '('.htmlescape(_('incomplete')).') '.$config;
     }
     return '';
   }
+
+  /**
+   * Checks if a new limit or a number of entries is too high regarding to max_input_vars.
+   *
+   * If there are more items in $_POST than max_input_vars, PHP will discard some of them and will cause a CSRF error.
+   */
+  static public function checkMaxInputVars (int $newLimit, string $messageTemplate = NULL)
+  {
+    $maxInputVars = ini_get('max_input_vars');
+
+    if (($maxInputVars != '') && (($newLimit + 10) >= intval($maxInputVars))) {
+      return new FusionDirectoryError(
+        htmlescape(sprintf(
+          $messageTemplate ?? _('Limit %d is greater than or too close to configured max_input_vars PHP ini setting of %d. Please change max_input_vars ini setting to a higher value if you wish to set the limit higher.'),
+          $newLimit,
+          $maxInputVars
+        ))
+      );
+    }
+
+    return FALSE;
+  }
 }
diff --git a/include/class_listing.inc b/include/class_listing.inc
deleted file mode 100644
index 2d856971ee8256f0d68693584b594559ccdc0ccb..0000000000000000000000000000000000000000
--- a/include/class_listing.inc
+++ /dev/null
@@ -1,1854 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \file class_listing.inc
- * Source code for class listing
- */
-
-/*!
- * \brief This class contains all the function needed to make the list
- * that show the objects inside FusionDirectory
- */
-class listing
-{
-  var $xmlData;
-  var $entries;
-  var $departments            = [];
-  var $departmentBrowser      = FALSE;
-  var $departmentRootVisible  = FALSE;
-  var $multiSelect            = FALSE;
-  var $template;
-  var $headline;
-  var $base;
-  var $sortDirection  = NULL;
-  var $sortColumn     = NULL;
-  var $sortAttribute;
-  var $sortType;
-  var $numColumns;
-  var $baseMode = FALSE;
-  var $bases    = [];
-  var $header   = [];
-  var $colprops = [];
-  var $filters  = [];
-  var $filter   = NULL;
-  var $pid;
-  protected $departmentTypes  = [];
-  var $objectTypes      = [];
-  var $objectTypeCount  = [];
-  protected $objectDnMapping  = [];
-  protected $copyPasteHandler = NULL;
-  protected $snapshotHandler  = NULL;
-  var $exporter       = [];
-  var $exportColumns  = [];
-  var $height         = 0;
-  var $scrollPosition = 0;
-  var $baseSelector;
-  protected $filterCache = [];
-
-  /*!
-   * \brief Create a listing
-   *
-   * \param string $data either a filename or an array representation of the XML
-   */
-  function __construct ($data)
-  {
-    global $config;
-    global $class_mapping;
-
-    // Initialize pid
-    $this->pid = preg_replace("/[^0-9]/", "", microtime(TRUE));
-
-    if (!$this->load($data)) {
-      if (is_array($data)) {
-        die("Cannot parse data : ".print_r($data, TRUE));
-      } else {
-        die("Cannot parse $data!");
-      }
-    }
-
-    // Set base for filter
-    if ($this->baseMode) {
-      $this->base = session::get("CurrentMainBase");
-      if ($this->base == NULL) {
-        $this->base = $config->current['BASE'];
-      }
-      $this->refreshBasesList();
-    } else {
-      $this->base = $config->current['BASE'];
-    }
-
-    // Move footer information
-    $this->showFooter = ($config->get_cfg_value("listSummary") == "TRUE");
-
-    // Register build in filters
-    $this->registerElementFilter("departmentType",  "listing::filterDepartmentType");
-    $this->registerElementFilter("departmentLink",  "listing::filterDepartmentLink");
-    $this->registerElementFilter("objectType",      "listing::filterObjectType");
-    $this->registerElementFilter("link",            "listing::filterLink");
-    $this->registerElementFilter("nameLink",        "listing::filterNameLink");
-    $this->registerElementFilter("actions",         "listing::filterActions");
-
-    // Load exporters
-    foreach (array_keys($class_mapping) as $class) {
-      if (preg_match('/Exporter$/', $class)) {
-        $info = call_user_func([$class, "getInfo"]);
-        if ($info != NULL) {
-          $this->exporter = array_merge($this->exporter, $info);
-        }
-      }
-    }
-
-    // Instanciate base selector
-    $this->baseSelector = new baseSelector($this->bases, $this->base);
-  }
-
-  /*!
-   * \brief Set a CopyPasteHandler
-   *
-   * \param $handler The handler
-   *
-   * \see CopyPasteHandler
-   */
-  function setCopyPasteHandler ($handler)
-  {
-    $this->copyPasteHandler = $handler;
-  }
-
-  /*!
-   * \brief Set the height
-   *
-   * \param integer $height
-   */
-  function setHeight ($height)
-  {
-    $this->height = $height;
-  }
-
-  /*!
-   * \brief Set a SnapshotHandler
-   *
-   * \param $handler The handler
-   *
-   * \see  SnapshotHandler
-   */
-  function setSnapshotHandler ($handler)
-  {
-    if ($handler->enabled()) {
-      $this->snapshotHandler = $handler;
-    } else {
-      $this->snapshotHandler = NULL;
-    }
-  }
-
-  /*!
-   * \brief Set a filter
-   *
-   * \param string $filter
-   *
-   * \see filter
-   */
-  function setFilter ($filter)
-  {
-    $this->filter     = $filter;
-    $filter->headpage = $this;
-    if ($this->departmentBrowser) {
-      $this->departments = $this->getDepartments();
-    }
-    $this->filter->setBase($this->base);
-  }
-
-  /*!
-   * \brief Save element from a filter
-   *
-   * \param string $name
-   *
-   * \param string $call
-   */
-  function registerElementFilter ($name, $call)
-  {
-    if (!isset($this->filters[$name])) {
-      $this->filters[$name] = $call;
-      return TRUE;
-    }
-
-    return FALSE;
-  }
-
-  /*!
-   * \brief Load a file
-   *
-   * \param string $data either a filename or an array representation of the XML
-   */
-  function load ($data)
-  {
-    if (is_array($data)) {
-      $this->xmlData = $data;
-    } else {
-      $contents = file_get_contents($data);
-      $this->xmlData = xml::xml2array($contents, 1);
-    }
-
-    $this->filterCache = [];
-
-    if (!isset($this->xmlData['list'])) {
-      return FALSE;
-    }
-
-    $this->xmlData = $this->xmlData["list"];
-
-    // Load some definition values
-    foreach (["departmentBrowser", "departmentRootVisible", "multiSelect", "baseMode"] as $token) {
-      if (isset($this->xmlData['definition'][$token]) &&
-          $this->xmlData['definition'][$token] == "true") {
-        $this->$token = TRUE;
-      }
-    }
-
-    // Fill objectTypes from departments and xml definition
-    $types = departmentManagement::getDepartmentTypes();
-    foreach ($types as $type) {
-      $i = objects::infos($type);
-      $this->departmentTypes[strtoupper($type)] = [
-        'label'       => $i['name'],
-        'image'       => $i['icon'],
-        'category'    => $i['aclCategory'],
-        'class'       => $i['mainTab'],
-        'filter'      => objects::getFilterObject($type),
-        'nameAttr'    => $i['nameAttr'],
-      ];
-    }
-    $this->categories = [];
-    if (isset($this->xmlData['definition']['objectType'])) {
-      if (isset($this->xmlData['definition']['objectType']['label'])) {
-        $this->xmlData['definition']['objectType'] = [$this->xmlData['definition']['objectType']];
-      }
-      foreach ($this->xmlData['definition']['objectType'] as $index => $otype) {
-        $this->objectTypes[$otype['objectClass']] = $otype;
-        if (isset($otype['category'])) {
-          $this->categories[] = $otype['category'];
-        }
-      }
-    }
-    $this->categories = array_unique($this->categories);
-
-    // Parse layout per column
-    $this->colprops = $this->parseLayout($this->xmlData['table']['layout']);
-
-    // Prepare table headers
-    $this->renderHeader();
-
-    // Assign headline/Categories
-    $this->headline = _($this->xmlData['definition']['label']);
-    if (!is_array($this->categories)) {
-      $this->categories = [$this->categories];
-    }
-
-    // Evaluate columns to be exported
-    if (isset($this->xmlData['table']['column'])) {
-      foreach ($this->xmlData['table']['column'] as $index => $cfg) {
-        if (isset($cfg['export']) && $cfg['export'] == "true") {
-          $this->exportColumns[] = $index;
-        }
-      }
-    }
-
-    if (isset($this->xmlData['actiontriggers']['action']['type'])) {
-      $this->xmlData['actiontriggers']['action'] = [$this->xmlData['actiontriggers']['action']];
-    }
-
-    return TRUE;
-  }
-
-
-  function renderHeader ()
-  {
-    $this->header = [];
-    $this->plainHeader = [];
-
-    // Initialize sort?
-    $sortInit = FALSE;
-    if (!$this->sortDirection) {
-      $this->sortColumn = 0;
-      if (isset($this->xmlData['definition']['defaultSortColumn'])) {
-        $this->sortColumn = $this->xmlData['definition']['defaultSortColumn'];
-      } else {
-        $this->sortAttribute = "";
-      }
-      $this->sortDirection = [];
-      $sortInit = TRUE;
-    }
-
-    if (isset($this->xmlData['table']['column'])) {
-      foreach ($this->xmlData['table']['column'] as $index => $cfg) {
-        // Initialize everything to one direction
-        if ($sortInit) {
-          $this->sortDirection[$index] = FALSE;
-        }
-
-        $sorter = "";
-        if ($index == $this->sortColumn && isset($cfg['sortAttribute']) &&
-            isset($cfg['sortType'])) {
-          $this->sortAttribute  = $cfg['sortAttribute'];
-          $this->sortType       = $cfg['sortType'];
-          $sorter = "&nbsp;<img class='center' title='".($this->sortDirection[$index] ? _("Up") : _("Down"))."' src='geticon.php?context=actions&amp;size=16&amp;icon=view-sort-".($this->sortDirection[$index] ? "descending" : "ascending")."' alt='".($this->sortDirection[$index] ? _('Sort up') : _('Sort down'))."'>";
-        }
-        $sortable = (isset($cfg['sortAttribute']));
-
-        $link = "href='?plug=".$_GET['plug']."&amp;PID=".$this->pid."&amp;act=SORT_$index'";
-        if (isset($cfg['label'])) {
-          if ($sortable) {
-            $this->header[$index] = "<th ".$this->colprops[$index]."><a $link>"._($cfg['label'])."$sorter</a></th>";
-          } else {
-            $this->header[$index] = "<th ".$this->colprops[$index].">"._($cfg['label'])."</th>";
-          }
-          $this->plainHeader[] = _($cfg['label']);
-        } else {
-          if ($sortable) {
-            $this->header[$index] = "<th ".$this->colprops[$index]."><a $link>&nbsp;$sorter</a></th>";
-          } else {
-            $this->header[$index] = "<th ".$this->colprops[$index].">&nbsp;</th>";
-          }
-          $this->plainHeader[] = "";
-        }
-      }
-    }
-  }
-
-  /*!
-   * \brief Render
-   */
-  function render ()
-  {
-    global $ui;
-
-    // Check for exeeded sizelimit
-    if (($message = $ui->getSizeLimitHandler()->check()) != '') {
-      return $message;
-    }
-
-    // Initialize list
-    $result = '<input type="hidden" value="'.$this->pid.'" name="PID"/>'."\n";
-    $result .= '<input type="hidden" name="position_'.$this->pid.'" id="position_'.$this->pid.'"/>'."\n";
-    $height = 450;
-    if ($this->height != 0) {
-      $result .= '<input type="hidden" value="'.$this->height.'" id="d_height"/>'."\n";
-      $height = $this->height;
-    }
-
-    $result .= '<div id="d_scrollbody" style="width:100%;">'."\n";
-    $result .= '<table style="width:100%;" id="t_scrolltable" class="listingTable">'."\n";
-
-    // Build list header
-    $result .= '<thead><tr>'."\n";
-    if ($this->multiSelect) {
-      $width = '24px';
-      $result .= '<th style="text-align:center;padding:0;width:'.$width.';"><input type="checkbox" id="select_all" name="select_all" title="'._('Select all').'" onClick=\'toggle_all_("listing_selected_[0-9]*$","select_all");\' /></th>'."\n";
-    }
-    foreach ($this->header as $header) {
-      $result .= $header;
-    }
-    $result .= '</tr></thead>'."\n";
-
-    // Build list body
-    $result .= '<tbody id="t_nscrollbody">'."\n";
-
-    // No results? Just take an empty colspanned row
-    if (count($this->entries) + count($this->departments) == 0) {
-      $result .= '<tr><td colspan="'.($this->numColumns + ($this->multiSelect ? 1 : 0)).'" style="height:100%;width:100%;">&nbsp;</td></tr>'."\n";
-    }
-
-    // Draw department browser if configured and we're not in sub mode
-    if ($this->departmentBrowser && ($this->filter->scope != 'sub')) {
-      // Fill with department browser if configured this way
-      $departmentIterator = new departmentSortIterator($this->departments, $this->sortDirection[$this->sortColumn]);
-      foreach ($departmentIterator as $row => $entry) {
-        $result .= '<tr>';
-
-        // Render multi select if needed
-        if ($this->multiSelect) {
-          $result .= '<td>&nbsp;</td>';
-        }
-
-        // Render defined department columns, fill the rest with some stuff
-        $rest = $this->numColumns;
-        foreach ($this->xmlData['table']['department'] as $index => $cfg) {
-          $colspan = 1;
-          if (isset($cfg['span'])) {
-            $colspan = $cfg['span'];
-          }
-          $result .= '<td colspan="'.$colspan.'" '.$this->colprops[$index].'>'.$this->renderCell('department', $index, $cfg['value'], $entry, $row).'</td>';
-          $rest -= $colspan;
-        }
-
-        // Fill remaining cols with nothing
-        for ($i = $this->numColumns - $rest; $i < $this->numColumns; $i++) {
-          $result .= '<td '.$this->colprops[$i].'>&nbsp;</td>';
-        }
-        $result .= '</tr>';
-      }
-    }
-
-    // Fill with contents, sort as configured
-    foreach ($this->entries as $row => $entry) {
-      $trow = '';
-
-      // Render multi select if needed
-      if ($this->multiSelect) {
-        $trow .= '<td style="text-align:center;width:20px;"><input type="checkbox" id="listing_selected_'.$row.'" name="listing_selected_'.$row.'"/></td>'."\n";
-      }
-
-      foreach ($this->xmlData['table']['column'] as $index => $cfg) {
-        $renderedCell = $this->renderCell('column', $index, $cfg['value'], $entry, $row);
-        $trow .= '<td '.$this->colprops[$index].'>'.$renderedCell.'</td>'."\n";
-
-        // Save rendered column
-        $sort = preg_replace('/.*>([^<]+)<.*$/', '$1', $renderedCell);
-        $sort = str_replace('&nbsp;', '', $sort);
-        if (strpos($sort, '<') !== FALSE) {
-          $sort = '';
-        }
-        $this->entries[$row]['_sort'.$index] = $sort;
-      }
-
-      // Save rendered entry
-      $this->entries[$row]['_rendered'] = $trow;
-    }
-
-    // Complete list by sorting entries for _sort$index and appending them to the output
-    $entryIterator = new listingSortIterator($this->entries, $this->sortDirection[$this->sortColumn], "_sort".$this->sortColumn, $this->sortType);
-    foreach ($entryIterator as $row => $entry) {
-      // Apply custom class to row?
-      if (preg_match("/<rowClass:([a-z0-9_-]*)\/>/i", $entry['_rendered'], $matches)) {
-          $result .= "<tr class='".$matches[1]."'>\n";
-          $result .= preg_replace("/<rowClass[^>]+>/", '', $entry['_rendered']);
-      } else {
-          $result .= "<tr>\n";
-          $result .= $entry['_rendered'];
-      }
-
-      $result .= "</tr>\n";
-    }
-
-    // Close list body
-    $result .= "</tbody></table></div>";
-
-    // Add the footer if requested
-    if ($this->showFooter) {
-      $result .= '<div class="nlistFooter">';
-
-      if ($this->departmentBrowser && ($this->filter->scope != 'sub')) {
-        foreach ($this->departmentTypes as $objectType) {
-          if (isset($this->objectTypeCount[$objectType['label']])) {
-            $result .= '<img class="center" src="'.htmlentities($objectType['image'], ENT_COMPAT, 'UTF-8').'" title="'.$objectType['label'].'" alt="'.$objectType['label'].'"/>&nbsp;'.$this->objectTypeCount[$objectType['label']]."&nbsp;&nbsp;&nbsp;&nbsp;";
-          }
-        }
-      }
-
-      foreach ($this->objectTypes as $objectType) {
-        if (isset($this->objectTypeCount[$objectType['label']])) {
-          $result .= '<img class="center" src="'.htmlentities($objectType['image'], ENT_COMPAT, 'UTF-8').'" title="'.$objectType['label'].'" alt="'.$objectType['label'].'"/>&nbsp;'.$this->objectTypeCount[$objectType['label']]."&nbsp;&nbsp;&nbsp;&nbsp;";
-        }
-      }
-
-      $result .= '</div>';
-    }
-
-    // Close list
-    $result .= '';
-
-    // Add scroll positioner
-    $result .= '<script type="text/javascript">';
-    $result .= '$("t_nscrollbody").scrollTop= '.$this->scrollPosition.';';
-    $result .= 'var box = $("t_nscrollbody").onscroll= function() {$ ("position_'.$this->pid.'").value= this.scrollTop;}';
-    $result .= '</script>';
-
-    $smarty = get_smarty();
-    $smarty->assign("usePrototype", "true");
-    $smarty->assign("FILTER", $this->filter->render());
-    $smarty->assign("SIZELIMIT", $ui->getSizeLimitHandler()->renderWarning());
-    $smarty->assign("LIST", $result);
-    $smarty->assign("MULTISELECT", $this->multiSelect);
-
-    // Assign navigation elements
-    $nav = $this->renderNavigation();
-    foreach ($nav as $key => $html) {
-      $smarty->assign($key, $html);
-    }
-
-    // Assign action menu / base
-    $smarty->assign("ACTIONS", $this->renderActionMenu());
-    $smarty->assign("BASE", $this->renderBase());
-
-    // Assign separator
-    $smarty->assign("SEPARATOR", "<img src='images/lists/seperator.png' alt='-' height='16' width='1' class='center'>");
-
-    // Assign summary
-    $smarty->assign("HEADLINE", $this->headline);
-
-    // Try to load template from plugin the folder first...
-    $file = get_template_path($this->xmlData['definition']['template'], TRUE);
-
-    // ... if this fails, try to load the file from the theme folder.
-    if (!file_exists($file)) {
-      $file = get_template_path($this->xmlData['definition']['template']);
-    }
-
-    return $smarty->fetch($file);
-  }
-
-  /*!
-   * \brief Update a listing
-   */
-  function update ()
-  {
-    $ui = get_userinfo();
-
-    // Take care of base selector
-    if ($this->baseMode) {
-      $this->baseSelector->update();
-      // Check if a wrong base was supplied
-      if (!$this->baseSelector->checkLastBaseUpdate()) {
-         msg_dialog::display(_("Error"), msgPool::check_base(), ERROR_DIALOG);
-      }
-    }
-
-    // Save base
-    $refresh = FALSE;
-    if ($this->baseMode) {
-      $this->base = $this->baseSelector->getBase();
-      session::set("CurrentMainBase", $this->base);
-      $refresh = TRUE;
-    }
-
-    // Reset object counter / DN mapping
-    $this->objectTypeCount = [];
-    $this->objectDnMapping = [];
-
-    // Do not do anything if this is not our PID
-    if ($refresh || !(isset($_REQUEST['PID']) && $_REQUEST['PID'] != $this->pid)) {
-
-      // Save position if set
-      if (isset($_POST['position_'.$this->pid]) && is_numeric($_POST['position_'.$this->pid])) {
-        $this->scrollPosition = $_POST['position_'.$this->pid];
-      }
-
-      // Override the base if we got a message from the browser navigation
-      if ($this->departmentBrowser && isset($_GET['act'])) {
-        if (preg_match('/^department_([0-9]+)$/', validate($_GET['act']), $match)) {
-          if (isset($this->departments[$match[1]])) {
-            $this->setBase($this->departments[$match[1]]['dn']);
-          }
-        }
-      }
-
-      // Filter POST with "act" attributes -> posted from action menu
-      if (isset($_POST['exec_act']) && $_POST['act'] != '') {
-        if (preg_match('/^export.*$/', $_POST['act']) && isset($this->exporter[$_POST['act']])) {
-          $exporter = $this->exporter[$_POST['act']];
-          $userinfo = ", "._("created by")." ".$ui->cn." - ".strftime('%A, %d. %B %Y, %H:%M:%S');
-          $entryIterator = new listingSortIterator($this->entries, $this->sortDirection[$this->sortColumn], "_sort".$this->sortColumn, $this->sortType);
-          $sortedEntries = [];
-          foreach ($entryIterator as $entry) {
-            $sortedEntries[] = $entry;
-          }
-          $instance = new $exporter['class']($this->headline.$userinfo, $this->plainHeader, $sortedEntries, $this->exportColumns);
-          $type = call_user_func([$exporter['class'], "getInfo"]);
-          $type = $type[$_POST['act']];
-          send_binary_content($instance->query(), $type['filename'], $type = $type['mime']);
-        }
-      }
-
-      // Filter GET with "act" attributes
-      if (isset($_GET['act'])) {
-        $key = validate($_GET['act']);
-        if (preg_match('/^SORT_([0-9]+)$/', $key, $match)) {
-          // Switch to new column or invert search order?
-          $column = $match[1];
-          if ($this->sortColumn != $column) {
-            $this->sortColumn = $column;
-          } else {
-            $this->sortDirection[$column] = !$this->sortDirection[$column];
-          }
-
-          // Allow header to update itself according to the new sort settings
-          $this->renderHeader();
-        }
-      }
-
-      if ($this->baseMode) {
-        // Override base if we got signals from the navigation elements
-        $action = '';
-        foreach (array_keys($_POST) as $key) {
-          if (preg_match('/^(ROOT|BACK|HOME)_x$/', $key, $match)) {
-            $action = $match[1];
-            break;
-          }
-        }
-
-        // Navigation handling
-        if ($action == 'ROOT') {
-          $deps = $ui->get_module_departments($this->categories);
-          $this->setBase($deps[0]);
-        } elseif ($action == 'BACK') {
-          $base = preg_replace('/^[^,]+,/', '', $this->base);
-          $this->tryAndSetBase($base);
-        } elseif ($action == 'HOME') {
-          $this->tryAndSetBase(get_base_from_people($ui->dn));
-        }
-      }
-    }
-
-    // Reload departments
-    if ($this->departmentBrowser) {
-      $this->departments = $this->getDepartments();
-    }
-
-    // Update filter and refresh entries
-    $this->filter->setBase($this->base);
-    $this->entries = $this->filter->query();
-
-    // Fix filter if querie returns NULL
-    if ($this->entries == NULL) {
-      $this->entries = [];
-    }
-
-    $this->dnToRow = [];
-    foreach ($this->entries as $row => $entry) {
-      $this->dnToRow[$entry['dn']] = $row;
-    }
-
-    // Init snapshot list for renderSnapshotActions
-    if (is_object($this->snapshotHandler)) {
-      $this->snapshotHandler->initSnapshotCache($this->base);
-    }
-  }
-
-  /*!
-   * \brief Set a new base valor
-   *
-   * \param string $base
-   */
-  function setBase ($base)
-  {
-    $this->base = $base;
-    if ($this->baseMode) {
-      $this->baseSelector->setBase($this->base);
-      session::set('CurrentMainBase', $this->base);
-    }
-  }
-
-  function tryAndSetBase ($base)
-  {
-    $ui   = get_userinfo();
-    $deps = $ui->get_module_departments($this->categories);
-    if (in_array_ics($base, $deps)) {
-      $this->setBase($base);
-    }
-  }
-
-  /*!
-   * \brief Accessor of the base
-   *
-   * \return the base
-   */
-  function getBase ()
-  {
-    return $this->base;
-  }
-
-  /*!
-   * \brief Parse a layout
-   *
-   * \param string $layout
-   */
-  function parseLayout ($layout)
-  {
-    $result = [];
-    $layout = preg_replace("/^\|/", "", $layout);
-    $layout = preg_replace("/\|$/", "", $layout);
-    $cols   = explode("|", $layout);
-
-    foreach ($cols as $index => $cfg) {
-      if ($cfg != "") {
-        $res      = "";
-        $classes  = "";
-        $components = explode(';', $cfg);
-        foreach ($components as $part) {
-          switch ($part) {
-            case 'r':
-              $res .= 'text-align:right;';
-              break;
-            case 'l':
-              $res .= 'text-align:left;';
-              break;
-            case 'c':
-              $res .= 'text-align:center;';
-              break;
-            case 'o':
-              $classes .= 'optional ';
-              break;
-            default:
-              if (preg_match('/^[0-9]+(|px|%)(-d)?$/', $part)) {
-                if (!preg_match('/-d$/', $part)) {
-                  /* d suffix means dynamic, ie no fixed width */
-                  $res .= "width:$part;";
-                } else {
-                  /* Remove the -d suffix */
-                  $part = preg_replace('/-d$/', '', $part);
-                }
-                $res .= "min-width:$part;";
-              }
-          }
-        }
-
-        $result[$index] = " style='$res'";
-        if ($classes != "") {
-          $result[$index] .= " class='$classes'";
-        }
-      } else {
-        $result[$index] = "";
-      }
-    }
-
-    // Save number of columns for later use
-    $this->numColumns = count($cols);
-
-    return $result;
-  }
-
-
-  function renderCell ($table, $index, $data, $cfg, $row)
-  {
-    // Replace flat attributes in data string
-    $offset = 0;
-    while (preg_match('/%{([^}:]+)}/', $data, $m, PREG_OFFSET_CAPTURE, $offset)) {
-      if (isset($cfg[$m[1][0]])) {
-        $replace = $cfg[$m[1][0]];
-        if (is_array($replace)) {
-          $replace = $replace[0];
-        }
-        $replace = htmlentities($replace, ENT_COMPAT, 'UTF-8');
-      } else {
-        $replace = '&nbsp;';
-      }
-      $data   = substr_replace($data, $replace, $m[0][1], strlen($m[0][0]));
-      $offset = $m[0][1] + strlen($replace);
-    }
-
-    // Watch out for filters and prepare to execute them
-    $data = $this->processElementFilter($table, $index, $data, $cfg, $row);
-
-    return $data;
-  }
-
-
-  function renderBase ()
-  {
-    if (!$this->baseMode) {
-      return;
-    }
-
-    return $this->baseSelector->render();
-  }
-
-
-  function processElementFilter ($type, $index, $data, $cfg, $row)
-  {
-    if (isset($this->filterCache[$type.$index])) {
-      $filters = $this->filterCache[$type.$index];
-    } else {
-      preg_match_all('/%{filter:([^(]+)\((.*)\)}/', $data, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
-
-      $filters = [];
-      foreach ($matches as $match) {
-        $cl     = '';
-        $method = '';
-        if (!preg_match('/^(.*)::(.*)$/', $match[1][0], $m)) {
-          if (!isset($this->filters[$match[1][0]]) || !preg_match('/^(.*)::(.*)$/', $this->filters[$match[1][0]], $m)) {
-            trigger_error('Unknown filter '.$match[1][0]);
-            continue;
-          }
-        }
-        $cl     = $m[1];
-        $method = $m[2];
-
-        // Prepare params for function call
-        preg_match_all('/"[^"]+"|[^,]+/', $match[2][0], $parts);
-
-        $filters[$match[0][0]] = [$cl, $method, $parts[0], $match[0][1]];
-      }
-
-      $this->filterCache[$type.$index] = $filters;
-    }
-
-    foreach ($filters as $filterstring => $filter) {
-      list($cl, $method, $parts, $offset) = $filter;
-      $params = [];
-      foreach ($parts as $param) {
-        switch ($param) {
-          case 'row':
-            $params[] = $row;
-            break;
-          case 'pid':
-            $params[] = $this->pid;
-            break;
-          case 'base':
-            $params[] = $this->getBase();
-            break;
-          case 'entry':
-            $params[] = $cfg;
-            break;
-          case 'objectType':
-            $params[] = $this->getObjectType($cfg['dn'], $cfg);
-            break;
-          case 'dn':
-            $params[] = $cfg['dn'];
-            break;
-          default:
-            if (preg_match('/^"(.*)"$/', $param, $m)) {
-              // Fixie with "" is passed directly
-              $params[] = $m[1];
-            } elseif (isset($cfg[$param])) {
-              // LDAP variables get replaced by their objects
-              $values = $cfg[$param];
-              if (is_array($values)) {
-                unset($values['count']);
-              }
-              $params[] = $values;
-            } else {
-              $params[] = '';
-            }
-            break;
-        }
-      }
-
-      // Replace information
-      if ($cl == 'listing') {
-        // Non static call
-        $data = substr_replace($data, call_user_func_array([$this, $method], $params), $offset, strlen($filterstring));
-      } else {
-        // Static call
-        $data = substr_replace($data, call_user_func_array([$cl, $method], $params), $offset, strlen($filterstring));
-      }
-    }
-
-    return $data;
-  }
-
-  /*!
-   * \brief Get the object type
-   *
-   * \param string $dn dn of the object
-   * \param string $attrs LDAP attributes of the object
-   */
-  function getObjectType ($dn, $attrs)
-  {
-    return $this->genericGetType($dn, $attrs, $this->objectTypes);
-  }
-
-  /*!
-   * \brief Get the department type
-   *
-   * \param string $dn dn of the object
-   * \param string $attrs LDAP attributes of the object
-   */
-  function getDepartmentType ($dn, $attrs)
-  {
-    return $this->genericGetType($dn, $attrs, $this->departmentTypes);
-  }
-
-  /*!
-   * \brief Get the object or department type
-   */
-  protected function genericGetType ($dn, $attrs, $types)
-  {
-    if (isset($this->objectDnMapping[$dn])) {
-      return $this->objectDnMapping[$dn];
-    }
-    $classes = $attrs['objectClass'];
-    // Walk thru types and see if there's something matching
-    foreach ($types as $type => $objectType) {
-      if (isset($objectType['filter'])) {
-        if ($objectType['filter']($attrs)) {
-          $this->objectDnMapping[$dn] = $type;
-          return $this->objectDnMapping[$dn];
-        } else {
-          continue;
-        }
-      }
-      $ocs = $objectType['objectClass'];
-      if (!is_array($ocs)) {
-        $ocs = [$ocs];
-      }
-
-      $found = TRUE;
-      foreach ($ocs as $oc) {
-        if (preg_match('/^!(.*)$/', $oc, $match)) {
-          $oc = $match[1];
-          if (in_array($oc, $classes)) {
-            $found = FALSE;
-          }
-        } else {
-          if (!in_array($oc, $classes)) {
-            $found = FALSE;
-          }
-        }
-      }
-
-      if ($found) {
-        $this->objectDnMapping[$dn] = $type;
-        return $this->objectDnMapping[$dn];
-      }
-    }
-
-    return NULL;
-  }
-
-  function getObjectTypeInfos ($dn, $attrs)
-  {
-    $type = $this->getObjectType($dn, $attrs);
-    if ($type === NULL) {
-      return NULL;
-    }
-    return $this->objectTypes[$type];
-  }
-
-  /*!
-   * \brief Icon of the object type
-   *
-   * \param string $row The row
-   *
-   * \param string $dn The DN
-   */
-  function filterObjectType ($row, $dn)
-  {
-    return $this->filterGenericType($dn, $this->objectTypes, $this->getObjectType($dn, $this->entries[$row]));
-  }
-
-  /*!
-   * \brief Generic method for department and objects once type is known
-   */
-  protected function filterGenericType ($dn, $types, $type)
-  {
-    $result = "&nbsp;";
-
-    if ($type) {
-      $result = '<img class="center" title="'.$dn.'" src="'.htmlentities($types[$type]['image'], ENT_COMPAT, 'UTF-8').'" alt="'.$type.'"/>';
-      if (!isset($this->objectTypeCount[$types[$type]['label']])) {
-        $this->objectTypeCount[$types[$type]['label']] = 0;
-      }
-      $this->objectTypeCount[$types[$type]['label']]++;
-    }
-
-    return $result;
-  }
-
-  /*!
-   * \brief Icon of the department type
-   *
-   * \param string $row The row
-   *
-   * \param string $dn The DN
-   */
-  function filterDepartmentType ($row, $dn)
-  {
-    return $this->filterGenericType($dn, $this->departmentTypes, $this->getDepartmentType($dn, $this->departments[$row]));
-  }
-
-  /*!
-   * \brief Filter actions
-   *
-   * \param string $dn The DN
-   *
-   * \param string $row
-   *
-   * \param string $classes
-   */
-  function filterActions ($dn, $row, $classes)
-  {
-    // Do nothing if there's no menu defined
-    if (!isset($this->xmlData['actiontriggers']['action'])) {
-      return '&nbsp;';
-    }
-
-    // Go thru all actions
-    $result   = '';
-    $emptyimg = '<img src="images/empty.png" alt=" " class="center optional"/>';
-    foreach ($this->xmlData['actiontriggers']['action'] as $action) {
-      // If there's an objectclass definition and we don't have it
-      // add an empty picture here.
-      if (isset($action['objectclass'])) {
-        $objectclass  = $action['objectclass'];
-        $skip         = FALSE;
-        if (preg_match('/^!(.*)$/', $objectclass, $m)) {
-          $objectclass = $m[1];
-          if (in_array($objectclass, $classes)) {
-            $skip = TRUE;
-          }
-        } elseif (is_string($objectclass)) {
-          if (!in_array($objectclass, $classes)) {
-            $skip = TRUE;
-          }
-        } elseif (is_array($objectclass)) {
-          if (count(array_intersect($objectclass, $classes)) != count($objectclass)) {
-            $skip = TRUE;
-          }
-        }
-        if ($skip) {
-          $result .= $emptyimg;
-          if ($action['type'] == 'snapshot') {
-            $result .= $emptyimg;
-          }
-          continue;
-        }
-      }
-
-      // Skip the entry completely if there's no permission to execute it
-      if (!$this->hasActionPermission($action, $dn, $row)) {
-        $result .= $emptyimg;
-        continue;
-      }
-
-      // Skip entry if the pseudo filter does not fit
-      if (isset($action['filter']) && preg_match('/^[a-z0-9_]+!?=[a-z0-9_]+$/i', $action['filter'])) {
-        list($fa, $fv) = explode('=', $action['filter']);
-        if (preg_match('/^(.*)!$/', $fa, $m)) {
-          $fa = $m[1];
-          if (isset($this->entries[$row][$fa]) && $this->entries[$row][$fa][0] == $fv) {
-            $result .= $emptyimg;
-            continue;
-          }
-        } else {
-          if (!isset($this->entries[$row][$fa]) && !$this->entries[$row][$fa][0] == $fv) {
-            $result .= $emptyimg;
-            continue;
-          }
-        }
-      }
-
-      if ($action['type'] == 'entry') {
-        // Render normal entries as usual
-        $label = $this->processElementFilter('label', $action['name'], $action['label'], $this->entries[$row], $row);
-        $image = $this->processElementFilter('image', $action['name'], $action['image'], $this->entries[$row], $row);
-        $result .= '<input class="center" type="image" src="'.htmlentities($image, ENT_COMPAT, 'UTF-8').'" title="'.$label.'" alt="'.$label.'" '.
-                 'name="listing_'.$action['name'].'_'.$row.'"/>';
-      } elseif (($action['type'] == 'copypaste') || ($action['type'] == 'snapshot')) {
-        // Handle special types
-        $objectType = $this->getObjectTypeInfos($dn, $this->entries[$row]);
-        $category   = $class = NULL;
-        if ($objectType) {
-          $category = $objectType['category'];
-          $class    = $objectType['class'];
-        }
-
-        if ($action['type'] == 'copypaste') {
-          $copy = (!isset($action['copy']) || ($action['copy'] == 'true'));
-          $cut  = (!isset($action['cut']) || ($action['cut'] == 'true'));
-          $result .= $this->renderCopyPasteActions($row, $this->entries[$row]['dn'], $category, $class, $copy, $cut);
-        } else {
-          $result .= $this->renderSnapshotActions($row, $this->entries[$row]['dn'], $category);
-        }
-      }
-    }
-
-    return $result;
-  }
-
-  /*!
-   * \brief Filter the department link
-   *
-   * \param string $row
-   *
-   * \param string $dn The DN
-   *
-   * \param array $description
-   */
-  function filterDepartmentLink ($row, $dn, $description)
-  {
-    $attr = $this->departments[$row]['sort-attribute'];
-    $name = $this->departments[$row][$attr];
-    if (is_array($name)) {
-      $name = $name[0];
-    }
-    $result = htmlentities(sprintf("%s [%s]", $name, $description[0]), ENT_COMPAT, 'UTF-8');
-    return "<a href='?plug=".$_GET['plug']."&amp;PID=$this->pid&amp;act=department_$row' title='$dn'>$result</a>";
-  }
-
-  /*!
-   * \brief Filter link with object name
-   */
-  function filterNameLink ($row, $dn)
-  {
-    $infos  = $this->getObjectTypeInfos($dn, $this->entries[$row]);
-    $value  = $this->entries[$row][$infos['nameAttr']];
-    if (is_array($value)) {
-      unset($value['count']);
-    }
-    return $this->filterLink($row, $dn, "%s", $value);
-  }
-
-  /*!
-   * \brief Filter link
-   */
-  function filterLink ()
-  {
-    $row    = func_get_arg(0);
-    $pid    = $this->pid;
-    $dn     = func_get_arg(1);
-    $params = [func_get_arg(2)];
-
-    // Collect sprintf params
-    for ($i = 3;$i < func_num_args();$i++) {
-      $val = func_get_arg($i);
-      if (empty($val)) {
-        continue;
-      }
-      if (!is_array($val)) {
-        $val = [$val];
-      }
-      $val = array_map(
-        function ($v)
-        {
-          return htmlentities($v, ENT_COMPAT, 'UTF-8');
-        },
-        $val
-      );
-      $params[] = implode("<br/>\n", $val);
-    }
-
-    $result = '&nbsp;';
-    if (count($params) > 1) {
-      $trans  = call_user_func_array('sprintf', $params);
-      if ($trans != '') {
-        return '<a href="?plug='.$_GET['plug'].'&amp;PID='.$pid.'&amp;act=listing_edit_'.$row.'" title="'.$dn.'">'.$trans.'</a>';
-      }
-    }
-
-    return $result;
-  }
-
-
-  function renderNavigation ()
-  {
-    $result = [];
-    $enableBack = TRUE;
-    $enableRoot = TRUE;
-    $enableHome = TRUE;
-
-    $ui = get_userinfo();
-
-    /* Check if base = first available base */
-    $deps = $ui->get_module_departments($this->categories);
-
-    if (!count($deps) || $deps[0] == $this->filter->base) {
-      $enableBack = FALSE;
-      $enableRoot = FALSE;
-    }
-
-    /* Check if we are in users home  department */
-    if (!count($deps) || ($this->filter->base == get_base_from_people($ui->dn)) || !in_array_ics(get_base_from_people($ui->dn), $deps)) {
-      $enableHome = FALSE;
-    }
-
-    /* Draw root button */
-    if ($enableRoot) {
-      $result["ROOT"] = "<input class='center' type='image' src='geticon.php?context=actions&amp;icon=go-first&amp;size=16' ".
-                       "title='"._("Go to root department")."' name='ROOT' alt='"._("Root")."'>";
-    } else {
-      $result["ROOT"] = "<img src='geticon.php?context=actions&amp;icon=go-first&amp;size=16&amp;disabled=1' class='center' alt='"._("Root")."'>";
-    }
-
-    /* Draw back button */
-    if ($enableBack) {
-      $result["BACK"] = "<input class='center' type='image' src='geticon.php?context=actions&amp;icon=go-up&amp;size=16' ".
-                       "title='"._("Go up one department")."' alt='"._("Up")."' name='BACK'>";
-    } else {
-      $result["BACK"] = "<img src='geticon.php?context=actions&amp;icon=go-up&amp;size=16&amp;disabled=1' class='center' alt='"._("Up")."'>";
-    }
-
-    /* Draw home button */
-    if ($enableHome) {
-      $result["HOME"] = '<input class="center" type="image" src="geticon.php?context=actions&amp;icon=go-home&amp;size=16"'.
-                        ' title="'._("Go to user's department").'" alt="'._('Home').'" name="HOME"/>';
-    } else {
-      $result["HOME"] = "<img src='geticon.php?context=actions&amp;icon=go-home&amp;size=16&amp;disabled=1' class='center' alt='"._("Home")."'>";
-    }
-
-    /* Draw reload button, this button is enabled everytime */
-    $result["RELOAD"] = "<input class='center optional' type='image' src='geticon.php?context=actions&amp;icon=view-refresh&amp;size=16' ".
-                       "title='"._("Reload list")."' name='REFRESH' alt='"._("Reload list")."'>";
-
-    return $result;
-  }
-
-  /*!
-   * \brief Get action
-   */
-  function getAction ()
-  {
-    global $config, $ui;
-
-    // Do not do anything if this is not our PID, or there's even no PID available...
-    if (!isset($_REQUEST['dn']) && (!isset($_REQUEST['PID']) || $_REQUEST['PID'] != $this->pid)) {
-      return;
-    }
-
-    // Save position if set
-    if (isset($_POST['position_'.$this->pid]) && is_numeric($_POST['position_'.$this->pid])) {
-      $this->scrollPosition = $_POST['position_'.$this->pid];
-    }
-
-    $result = ["targets" => [], "action" => ""];
-
-    // Filter GET with "act" attributes
-    if (isset($_GET['act'])) {
-      $key = validate($_GET['act']);
-      if (preg_match('/^listing_([a-zA-Z_]+)_([0-9]+)$/', $key, $m)) {
-        $action = $m[1];
-        $target = $m[2];
-        if (isset($this->entries[$target]['dn'])) {
-          $result['action']     = $action;
-          $result['targets'][]  = $this->entries[$target]['dn'];
-        }
-      } elseif (isset($_REQUEST['dn']) && preg_match('/^listing_([a-zA-Z_]+)$/', $key, $m)) {
-        /* Pre-render list to init things if a dn is gonna be opened on first load */
-        $dn         = urldecode($_REQUEST['dn']);
-        $action     = $m[1];
-        if ($this->baseMode) {
-          /* Detect the longer base valid for this dn */
-          $longerBase = '';
-          foreach (array_keys($this->bases) as $base) {
-            if (preg_match('/'.preg_quote($base, '/').'$/i', $dn)) {
-              if (strlen($base) > strlen($longerBase)) {
-                $longerBase = $base;
-              }
-            }
-          }
-          $this->setBase($longerBase);
-          /* Search for its main attr value */
-          if (isset($this->filter->elementValues['NAME']) && preg_match('/^[^=]+=([^,]+)/', $dn, $m)) {
-            $this->filter->elementValues['NAME'] = $m[1];
-          }
-          $this->filter->setCurrentScope('one');
-        }
-        /* Bypass size limit just to be sure */
-        $oldsizelimit = $ui->getSizeLimitHandler()->getSizeLimit();
-        $ui->getSizeLimitHandler()->setSizeLimit(0);
-        $this->update();
-        $this->render();
-        $ui->getSizeLimitHandler()->setSizeLimit($oldsizelimit);
-        $this->filter->elementValues['NAME'] = '';
-
-        $result['action']     = $action;
-        $result['targets'][]  = $dn;
-
-        // Make sure no other management class intercept the same dn
-        unset($_REQUEST['dn']);
-      }
-
-      // Drop targets if empty
-      if (count($result['targets']) == 0) {
-        unset($result['targets']);
-      }
-      if (preg_match('/^(edit)_([a-zA-Z_]+)$/', $result['action'], $m)) {
-        $result['action']     = $m[1];
-        $result['subaction']  = $m[2];
-      }
-      return $result;
-    }
-
-    // Filter POST with "listing_" attributes
-    foreach (array_keys($_POST) as $key) {
-
-      // Capture selections
-      if (preg_match('/^listing_selected_[0-9]+$/', $key)) {
-        $target = preg_replace('/^listing_selected_([0-9]+)$/', '$1', $key);
-        if (isset($this->entries[$target]['dn'])) {
-          $result['targets'][] = $this->entries[$target]['dn'];
-        }
-        continue;
-      }
-
-      // Capture action with target - this is a one shot
-      if (preg_match('/^listing_[a-zA-Z_]+_[0-9]+(|_x)$/', $key)) {
-        $target = preg_replace('/^listing_[a-zA-Z_]+_([0-9]+)(|_x)$/', '$1', $key);
-        if (isset($this->entries[$target]['dn'])) {
-          $result['action']   = preg_replace('/^listing_([a-zA-Z_]+)_[0-9]+(|_x)$/', '$1', $key);
-          $result['targets']  = [$this->entries[$target]['dn']];
-        }
-        break;
-      }
-
-      // Capture action without target
-      if (preg_match('/^listing_[a-zA-Z_]+(|_x)$/', $key)) {
-        $result['action'] = preg_replace('/^listing_([a-zA-Z_]+)(|_x)$/', '$1', $key);
-        continue;
-      }
-    }
-
-    // Filter POST with "act" attributes -> posted from action menu
-    if (isset($_POST['act']) && $_POST['act'] != '') {
-      if (!preg_match('/^export.*$/', $_POST['act'])) {
-        $result['action'] = validate($_POST['act']);
-      }
-    }
-
-    // Drop targets if empty
-    if (count($result['targets']) == 0) {
-      unset($result['targets']);
-    }
-    if (preg_match('/^(edit)_([a-zA-Z_]+)/', $result['action'], $m)) {
-      $result['action']     = $m[1];
-      $result['subaction']  = $m[2];
-    }
-    return $result;
-  }
-
-
-  function renderActionMenu ()
-  {
-    // Don't send anything if the menu is not defined
-    if (!isset($this->xmlData['actionmenu']['action'])) {
-      return "";
-    }
-
-    // Make sure we got an array of actions
-    if (isset($this->xmlData['actionmenu']['action']['type'])) {
-      $this->xmlData['actionmenu']['action'] = [$this->xmlData['actionmenu']['action']];
-    }
-
-    // Load shortcut
-    $result   = '<input type="hidden" name="act" id="actionmenu" value="">'.
-                '<div style="display:none"><input type="submit" name="exec_act" id="exec_act" value=""/></div>'.
-                '<ul class="level1" id="root"><li><a href="#">'._('Actions').
-                '&nbsp;<img class="center optional" src="images/down-arrow.png" alt=""/></a>';
-
-    // Build ul/li list
-    $result .= $this->recurseActions($this->xmlData['actionmenu']['action']);
-
-    return '<div id="pulldown">'.$result.'</li></ul></div>';
-  }
-
-  function renderActionMenuActionLink ($separator, $action, $name, $icon)
-  {
-    return '<li'.$separator.' id="actionmenu_'.$action.'">'
-                  .'<a href="#" onClick="'
-                    ."document.getElementById('actionmenu').value='$action';document.getElementById('exec_act').click();"
-                  .'">'
-                  .'<img src="'.htmlentities($icon, ENT_COMPAT, 'UTF-8').'" alt="" class="center"/>&nbsp;'.$name.'</a>'
-                  .'</li>';
-  }
-
-  function recurseActions (&$actions)
-  {
-    global $class_mapping;
-    static $level = 2;
-    $result       = "<ul class='level$level'>";
-    $separator    = "";
-
-    foreach ($actions as &$action) {
-
-      // Skip the entry completely if there's no permission to execute it
-      if (!$this->hasActionPermission($action, $this->filter->base)) {
-        continue;
-      }
-
-      // Skip entry if there're missing dependencies
-      if (isset($action['depends'])) {
-        $deps = is_array($action['depends']) ? $action['depends'] : [$action['depends']];
-        foreach ($deps as $clazz) {
-          if (!isset($class_mapping[$clazz])) {
-            continue 2;
-          }
-        }
-      }
-
-      if ($action['type'] == "separator") {
-        $separator = " style='border-top:1px solid #AAA' ";
-        continue;
-      }
-
-      // Dive into subs
-      if ($action['type'] == "sub" && isset($action['action'])) {
-        $level++;
-        if (isset($action['label'])) {
-          $img = "";
-          if (isset($action['image'])) {
-            $img = "<img class='center' src='".htmlentities($action['image'], ENT_COMPAT, 'UTF-8')."' alt=''/>&nbsp;";
-          }
-          $result .= "<li id='actionmenu_".strtolower($action['label'])."'$separator><a href='#'>$img"._($action['label'])."&nbsp;<img src='images/forward-arrow.png' alt='forward arrow'/></a>";
-        }
-
-        // Ensure we've an array of actions, this enables sub menus with only one action.
-        if (isset($action['action']['type'])) {
-          $action['action'] = [$action['action']];
-        }
-
-        $result .= $this->recurseActions($action['action'])."</li>";
-        $level--;
-        $separator = "";
-        continue;
-      }
-
-      // Render entry elseways
-      if (isset($action['label'])) {
-        $result .= $this->renderActionMenuActionLink($separator, $action['name'], _($action['label']), $action['image']);
-      }
-
-      // Check for special types
-      switch ($action['type']) {
-        case 'copypaste':
-          $cut    = !isset($action['cut']) || $action['cut'] != "false";
-          $copy   = !isset($action['copy']) || $action['copy'] != "false";
-          $result .= $this->renderCopyPasteMenu($separator, $copy, $cut);
-          break;
-
-        case 'snapshot':
-          $result .= $this->renderSnapshotMenu($separator);
-          break;
-
-        case 'exporter':
-          $result .= $this->renderExporterMenu($separator);
-          break;
-
-        case 'daemon':
-          $result .= $this->renderDaemonMenu($separator);
-          break;
-      }
-
-      $separator = "";
-    }
-    unset($action);
-
-    $result .= "</ul>";
-    return $result;
-  }
-
-  /*!
-   * \brief Check if user have action permission
-   *
-   * \param string $action
-   *
-   * \param string $dn The DN
-   *
-   * \param string $row
-   *
-   */
-  function hasActionPermission (&$action, $dn, $row = NULL)
-  {
-    global $ui;
-
-    if (isset($action['acl'])) {
-      if (isset ($action['aclInfos'])) {
-        $aclInfos = $action['aclInfos'];
-      } else {
-        /* First time we check permission for this action */
-        if ($row !== NULL) {
-          $otype = $this->getObjectTypeInfos($dn, $this->entries[$row]);
-        } else {
-          $otype = FALSE;
-        }
-        $acls = $action['acl'];
-        if (!is_array($acls)) {
-          $acls = [$acls];
-        }
-        $aclInfos = [];
-
-        // Every ACL has to pass
-        foreach ($acls as $acl) {
-          $module   = $this->categories;
-          $aclList  = [];
-
-          // Replace %acl if available
-          if ($otype) {
-            $acl = str_replace('%acl', $otype['category'].'/'.$otype['class'], $acl);
-          }
-
-          // Split for category and plugins if needed
-          if (preg_match('/^\[([rwcdm]+)\]$/', $acl, $match)) {
-            // match for "[rw]" style entries
-            $aclList = [$match[1]];
-          } elseif (preg_match('/^([a-zA-Z0-9]+\/?[a-zA-Z0-9]+)\[([rwcdm]+)\]$/', $acl, $match)) {
-            // match for "user[rw]" style entries
-            // match for "user/user[rw]" style entries
-            $module   = $match[1];
-            $aclList  = [$match[2]];
-          } elseif (preg_match('/^([a-zA-Z0-9]+\/[a-zA-Z0-9]+)\[([a-zA-Z0-9]+:[rwcdm]+(,[a-zA-Z0-9]+:[rwcdm]+)*)\]$/', $acl, $match)) {
-            // match "user/user[userPassword:rw(,...)*]" style entries
-            $module   = $match[1];
-            $aclList  = explode(',', $match[2]);
-          }
-
-          $modules = $module;
-          if (!is_array($modules)) {
-            $modules = [$modules];
-          }
-
-          $aclInfos[] = [$aclList, $modules];
-        }
-        $action['aclInfos'] = $aclInfos;
-      }
-
-      foreach ($aclInfos as $aclInfo) {
-        list($aclList, $modules) = $aclInfo;
-        // Walk thru prepared ACL by using $module
-        foreach ($aclList as $sAcl) {
-          $checkAcl = '';
-
-          // Category or detailed permission?
-          foreach ($modules as $module) {
-            if (strpos($module, '/') !== FALSE) {
-              if (preg_match('/([a-zA-Z0-9]+):([rwcdm]+)/', $sAcl, $m)) {
-                $checkAcl .= $ui->get_permissions($dn, $module, $m[1]);
-                $sAcl = $m[2];
-              } else {
-                $checkAcl .= $ui->get_permissions($dn, $module, '0');
-              }
-            } else {
-              $checkAcl .= $ui->get_category_permissions($dn, $module);
-            }
-          }
-
-          // Split up remaining part of the acl and check if it we're
-          // allowed to do something...
-          $parts = str_split($sAcl);
-          foreach ($parts as $part) {
-            if (strpos($checkAcl, $part) === FALSE) {
-              return FALSE;
-            }
-          }
-        }
-      }
-    }
-
-    return TRUE;
-  }
-
-  /*!
-   * \brief Refresh the bases list
-   */
-  function refreshBasesList ()
-  {
-    global $config;
-    $ui = get_userinfo();
-
-    // Fill internal bases list
-    $this->bases = [];
-    $deps = $ui->get_module_departments($this->categories);
-    foreach ($config->idepartments as $key => $dep) {
-      if (in_array_ics($key, $deps)) {
-        $this->bases[$key] = $dep;
-      }
-    }
-
-    if (!empty($this->bases) && !isset($this->bases[$this->base])) {
-      $this->base = key($this->bases);
-    }
-
-    // Populate base selector if already present
-    if ($this->baseSelector && $this->baseMode) {
-      $this->baseSelector->setBases($this->bases);
-      $this->baseSelector->setBase($this->base);
-      $this->baseSelector->update(TRUE);
-    }
-  }
-
-  /*! \brief Get the departments */
-  function getDepartments ()
-  {
-    $departments = [];
-    $ui = get_userinfo();
-
-    // Get list of supported department types
-    $types = departmentManagement::getDepartmentTypes();
-
-    // Load departments allowed by ACL
-    $validDepartments = $ui->get_module_departments($this->categories);
-
-    /* Fetch departments andtheir informations */
-    foreach ($types as $type) {
-      $i    = objects::infos($type);
-      $deps = objects::ls(
-        $type,
-        [
-          'dn'            => 'raw',
-          'objectClass'   => 'raw',
-          'description'   => 'raw',
-          $i['mainAttr']  => 'raw'
-        ],
-        $this->base,
-        '',
-        FALSE,
-        'one'
-      );
-
-      // Analyze list of departments
-      foreach ($deps as $department) {
-        if (!in_array($department['dn'], $validDepartments)) {
-          continue;
-        }
-
-        /* php-ldap like indexes are needed for renderCell */
-        $count = 0;
-        foreach ($department as $key => $values) {
-          if ($key != 'dn') {
-            $department[$count++] = $key;
-          }
-        }
-        $department['count'] = $count;
-
-        // Add the attribute where we use for sorting
-        $department['sort-attribute'] = $i['mainAttr'];
-
-        // Move to the result list
-        $departments[] = $department;
-      }
-    }
-
-    return $departments;
-  }
-
-
-  function renderCopyPasteMenu ($separator, $copy = TRUE, $cut = TRUE)
-  {
-    // We can only provide information if we've got a copypaste handler
-    // instance
-    if (!is_object($this->copyPasteHandler)) {
-      return '';
-    }
-
-    // Presets
-    $result = "";
-    $read   = FALSE;
-    $paste  = FALSE;
-    $ui     = get_userinfo();
-
-    // Switch flags to on if there's at least one category which allows read/paste
-    foreach ($this->categories as $category) {
-      $read   = $read || (strpos($ui->get_category_permissions($this->base, $category), 'r') !== FALSE);
-      $paste  = $paste || ($ui->is_pasteable($this->base, $category) == 1);
-    }
-
-    // Draw entries that allow copy and cut
-    if ($read) {
-      // Copy entry
-      if ($copy) {
-        $result .= $this->renderActionMenuActionLink($separator, 'copy', _('Copy'), 'geticon.php?context=actions&icon=edit-copy&size=16');
-        $separator = '';
-      }
-
-      // Cut entry
-      if ($cut) {
-        $result .= $this->renderActionMenuActionLink($separator, 'cut', _('Cut'), 'geticon.php?context=actions&icon=edit-cut&size=16');
-        $separator = '';
-      }
-    }
-
-    // Draw entries that allow pasting entries
-    if ($paste) {
-      if ($this->copyPasteHandler->entries_queued()) {
-        $result .= $this->renderActionMenuActionLink($separator, 'paste', _('Paste'), 'geticon.php?context=actions&icon=edit-paste&size=16');
-      } else {
-        $result .= "<li$separator>".'<a href="#"><img src="geticon.php?context=actions&amp;icon=edit-paste&amp;size=16&amp;disabled=1" alt="" class="center"/>&nbsp;'._('Paste').'</a></li>';
-      }
-    }
-
-    return $result;
-  }
-
-
-  function renderCopyPasteActions ($row, $dn, $category, $class, $copy = TRUE, $cut = TRUE)
-  {
-    // We can only provide information if we've got a copypaste handler
-    // instance
-    if (!is_object($this->copyPasteHandler)) {
-      return '';
-    }
-
-    // Presets
-    $ui = get_userinfo();
-    $result = "";
-
-    // Render cut entries
-    if ($cut) {
-      if ($ui->is_cutable($dn, $category, $class)) {
-        $result .= '<input class="center" type="image"'.
-                    ' src="geticon.php?context=actions&amp;icon=edit-cut&amp;size=16"'.
-                    ' alt="'._('Cut').'" name="listing_cut_'.$row.'" title="'._('Cut this entry').'"'.
-                    '/>';
-      } else {
-        $result .= '<img src="images/empty.png" alt=" " class="center optional"/>';
-      }
-    }
-
-    // Render copy entries
-    if ($copy) {
-      if ($ui->is_copyable($dn, $category)) {
-        $result .= '<input class="center" type="image"'.
-                    ' src="geticon.php?context=actions&amp;icon=edit-copy&amp;size=16"'.
-                    ' alt="'._('Copy').'" name="listing_copy_'.$row.'" title="'._('Copy this entry').'"'.
-                    '/>';
-      } else {
-        $result .= '<img src="images/empty.png" alt=" " class="center optional"/>';
-      }
-    }
-
-    return $result;
-  }
-
-
-  function renderSnapshotMenu ($separator)
-  {
-    // We can only provide information if we've got a snapshot handler instance
-    if (!is_object($this->snapshotHandler)) {
-      return '';
-    }
-
-    // Presets
-    $result = "";
-    $ui     = get_userinfo();
-
-    if ($ui->allow_snapshot_restore($this->base, $this->categories, TRUE)) {
-      // Draw icons according to the restore flag
-      if ($this->snapshotHandler->hasDeletedSnapshots()) {
-        $result .= $this->renderActionMenuActionLink($separator, 'restore', _('Restore snapshots'), 'geticon.php?context=actions&icon=document-restore&size=16');
-      } else {
-        $result .= "<li$separator><a href='#'><img src='geticon.php?context=actions&amp;icon=document-restore&amp;size=16&amp;disabled=1' alt='' class='center'>&nbsp;"._("Restore snapshots")."</a></li>";
-      }
-    }
-
-    return $result;
-  }
-
-
-  function renderExporterMenu ($separator)
-  {
-    // Presets
-    $result = "";
-
-    // Draw entries
-    $result .= "<li$separator id='actionmenu_exportList'><a href='#'><img class='center' src='geticon.php?context=actions&amp;icon=document-export&amp;size=16' alt=''>&nbsp;"._("Export list")."&nbsp;<img src='images/forward-arrow.png' alt='arrow'></a><ul class='level3'>";
-
-    // Export CVS as build in exporter
-    foreach ($this->exporter as $action => $exporter) {
-      $result .= $this->renderActionMenuActionLink('', $action, $exporter['label'], $exporter['image']);
-    }
-
-    // Finalize list
-    $result .= "</ul></li>";
-
-    return $result;
-  }
-
-
-  function renderSnapshotActions ($row, $dn, $category)
-  {
-    /* We can only provide information if we've got a snapshot handler instance */
-    if (!is_object($this->snapshotHandler)) {
-      return '';
-    }
-
-    // Presets
-    $result = '';
-    $ui = get_userinfo();
-
-    if ($ui->allow_snapshot_restore($dn, $category, FALSE)) {
-      /* Draw restore button */
-
-      if ($this->snapshotHandler->hasSnapshots($dn)) {
-        /* We have snapshots for this dn */
-        $result .= '<input class="center" type="image"'.
-                    ' src="geticon.php?context=actions&amp;icon=document-restore&amp;size=16"'.
-                    ' alt="'._('Restore snapshot').'" name="listing_restore_'.$row.'"'.
-                    ' title="'._('Restore snapshot').'"/>';
-      } else {
-        $result .= '<img class="center"'.
-                    ' src="geticon.php?context=actions&amp;icon=document-restore&amp;size=16&amp;disabled=1"'.
-                    ' alt="'._('Restore snapshot').'"/>';
-      }
-    }
-
-    if ($ui->allow_snapshot_create($dn, $category)) {
-      /* Draw snapshot button */
-      $result .= '<input class="center" type="image"'.
-                  ' src="geticon.php?context=actions&amp;icon=snapshot&amp;size=16"'.
-                  ' alt="'._('Create snapshot').'" name="listing_snapshot_'.$row.'"'.
-                  ' title="'._('Create a new snapshot from this object').'"/>';
-    } else {
-      $result .= '<img src="images/empty.png" alt=" " class="center optional"/>';
-    }
-
-    return $result;
-  }
-
-
-  function renderDaemonMenu ($separator)
-  {
-    $result = "";
-
-    // If there is a daemon registered, draw the menu entries
-    if (class_available("DaemonEvent")) {
-      $events = DaemonEvent::get_event_types_by_category($this->categories);
-      if (isset($events['BY_CLASS']) && count($events['BY_CLASS'])) {
-        foreach ($events['BY_CLASS'] as $name => $event) {
-          $result .= "<li$separator><a href='#' onClick='document.getElementById(\"actionmenu\").value=\"$name\";document.getElementById(\"exec_act\").click();'>".$event['MenuImage']."&nbsp;".$event['s_Menu_Name']."</a></li>";
-          $separator = "";
-        }
-      }
-    }
-
-    return $result;
-  }
-
-
-  function getEntry ($dn)
-  {
-    if (isset($this->dnToRow[$dn])) {
-      return $this->entries[$this->dnToRow[$dn]];
-    }
-    return NULL;
-  }
-
-  /*!
-   * \brief Get listing entries
-   */
-  function getEntries ()
-  {
-    return $this->entries;
-  }
-
-  /*!
-   * \brief Get type
-   *
-   * \param string $dn The DN
-   */
-  function getType ($dn)
-  {
-    if (isset($this->objectDnMapping[$dn])) {
-      return $this->objectDnMapping[$dn];
-    }
-    return NULL;
-  }
-
-}
-
-?>
diff --git a/include/class_listingSortIterator.inc b/include/class_listingSortIterator.inc
deleted file mode 100644
index f011ebaf04f907fb08d828dfd06d1d36bb780ccd..0000000000000000000000000000000000000000
--- a/include/class_listingSortIterator.inc
+++ /dev/null
@@ -1,175 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \file class_listingSortIterator.inc
- * Source code for class listingSortIterator
- */
-
-/*!
- * \brief This class contains all the function needed to sort list
- * go up, go down , back , next. etc...
- */
-class listingSortIterator implements Iterator {
-  protected $data;
-
-  /*!
-   * \brief listingSortIterator constructor
-   *
-   * \param array $data listingSortIterator data
-   *
-   * \param $direction Direction
-   *
-   * \param $attribute Attribute
-   *
-   * \param string $type
-   */
-  public function __construct ($data, $direction, $attribute, $type = 'string')
-  {
-    // Sort for attribute
-    if ($attribute != '') {
-      uasort(
-        $data,
-        function ($ao, $bo) use ($attribute, $type)
-        {
-          if ($attribute == 'sort-attribute') {
-            // Override sort attribute from data if needed
-            $attribute_a = $ao['sort-attribute'];
-            $attribute_b = $bo['sort-attribute'];
-          } else {
-            $attribute_a = $attribute;
-            $attribute_b = $attribute;
-          }
-
-          // Extract values from ao and bo
-          $a = $b = '';
-          if (isset($ao[$attribute_a])) {
-            $a = $ao[$attribute_a];
-            if (is_array($a)) {
-              $a = $a[0];
-            }
-          }
-          if (isset($bo[$attribute_b])) {
-            $b = $bo[$attribute_b];
-            if (is_array($b)) {
-              $b = $b[0];
-            }
-          }
-
-          // Take a look at the several types
-          switch ($type) {
-            // Sort for string by default
-            default:
-            case 'string':
-              return strcoll($a, $b);
-
-            case 'department':
-              return strnatcmp($a, $b);
-
-            case 'integer':
-              return $b - $a;
-
-            case 'date':
-              if ($a == '') {
-                $a = '31.12.0000';
-              }
-              if ($b == '') {
-                $b = '31.12.0000';
-              }
-              list($d, $m, $y) = explode('.', $a);
-              $a = (int)sprintf('%04d%02d%02d', $y, $m, $d);
-              list($d, $m, $y) = explode('.', $b);
-              $b = (int)sprintf('%04d%02d%02d', $y, $m, $d);
-              return $b - $a;
-
-            case 'ip':
-              $parts_a = explode('.', $a, 4);
-              $parts_b = explode('.', $b, 4);
-              for ($i = 0; $i < 4; $i++) {
-                if ((int)($parts_a[$i]) != (int)($parts_b[$i])) {
-                  return (int)($parts_a[$i]) - (int)($parts_b[$i]);
-                }
-              }
-              return 0;
-          }
-        }
-      );
-    }
-
-    // Invert if direction is set
-    if ($direction) {
-      $this->data = array_reverse($data, TRUE);
-    } else {
-      $this->data = $data;
-    }
-  }
-
-  /*!
-   * \brief Put the array pointer to the first element
-   *
-   * \return the first element of the array
-   */
-  function rewind ()
-  {
-    return reset($this->data);
-  }
-
-  /*!
-   * \brief Get the current data element
-   *
-   * \return The current element pointed by array pointer
-   */
-  function current ()
-  {
-    return current($this->data);
-  }
-
-  /*!
-   * \brief Get the key element
-   *
-   * \return the key element of the array
-   */
-  function key ()
-  {
-    return key($this->data);
-  }
-
-  /*!
-   * \brief Get the next data element
-   *
-   * \return The next element pointed by array pointer
-   */
-  function next ()
-  {
-    return next($this->data);
-  }
-
-  /*!
-   * \brief Check if the data array is valid
-   *
-   * \return TRUE if the array is valid, return FALSE otherwise
-   */
-  function valid ()
-  {
-    return (key($this->data) !== NULL);
-  }
-}
-?>
diff --git a/include/class_logging.inc b/include/class_logging.inc
index ec244038e1de7d76f4c558c2ca05a61bc5a3497a..153ea921af4fa7af8d08bbcbe7901ac9a970bb9a 100644
--- a/include/class_logging.inc
+++ b/include/class_logging.inc
@@ -3,7 +3,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2007  Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -33,42 +33,40 @@
  * \version 2.6
  * \date    11.04.2007
  */
-class logging {
-  static $validActions = ['modify','create','remove','copy','snapshot','view','security','debug'];
+class logging
+{
+  static $validActions = ['modify','create','remove','copy','snapshot','security','error'];
 
   /*!
    * \brief logging method
    *
-   * \param $action         One of these values (modify|create|remove|snapshot|copy|view|security|debug)
+   * \param string $action      One of these values (modify|create|remove|copy|snapshot|security|error)
    *
-   * \param $objecttype     represents the current edited objecttype, like user/user
+   * \param string $objecttype  represents the current edited objecttype, like user/user, or the event, like logout
    *
-   * \param $object         represents the current edited object dn
+   * \param string $object      represents the current edited object dn, or the target of the operation
    *
-   * \param $changes_array  An array containing names of all touched attributes
+   * \param array $changes      An array containing names of all touched attributes
    *
-   * \param $result         A status message, containing errors or success messages
+   * \param string $result      A status message, containing errors or success messages
    */
-  static function log ($action, $objecttype, $object, array $changes_array = [], $result = '')
+  static function log (string $action, string $objecttype, string $object, array $changes = [], string $result = '')
   {
     global $config, $ui;
 
-    if ($result === NULL) {
-      trigger_error('"Result" parameter should not be NULL');
-      $result = '';
-    }
-
     /* Create data object */
     $entry = [
       'timestamp'   => microtime(TRUE),
       'action'      => $action,
       'objecttype'  => $objecttype,
       'object'      => $object,
-      'changes'     => $changes_array,
+      'changes'     => $changes,
       'result'      => $result
     ];
     if (isset($ui->dn) && !empty($ui->dn)) {
       $entry['user']  = $ui->dn;
+    } elseif (isset($_SERVER['REMOTE_ADDR'])) {
+      $entry['user'] = $_SERVER['REMOTE_ADDR'];
     } else {
       $entry['user'] = 'unknown';
     }
@@ -78,7 +76,8 @@ class logging {
     if (count($msgs)) {
       foreach ($msgs as $msg) {
         trigger_error('Logging failed, reason was: '.$msg);
-        msg_dialog::display(_('Internal error'), sprintf(_('Logging failed: %s'), $msg), ERROR_DIALOG);
+        $error = new FusionDirectoryError(htmlescape(sprintf(_('Logging failed: %s'), $msg)));
+        $error->display();
       }
     } else {
       if (is_object($config) && preg_match('/true/i', $config->get_cfg_value('logging', ''))) {
@@ -90,6 +89,69 @@ class logging {
     }
   }
 
+  /*!
+   * \brief Debug output method
+   *
+   * Print a DEBUG level if specified debug level of the level matches the
+   * the configured debug level.
+   *
+   * \param int $level        The log level of the message (one of the DEBUG_* constants)
+   *
+   * \param int $line         Line of origin (using __LINE__ is common)
+   *
+   * \param string $function  Function of origin (using __FUNCTION__ is common)
+   *
+   * \param string $file      File of origin (using __FILE__ is common)
+   *
+   * \param mixed $data       Operation result. Can be a message or an array, which is printed with print_a.
+   *
+   * \param string $info      Operation description
+   */
+  static function debug (int $level, int $line, string $function, string $file, $data, string $info = '')
+  {
+    global $config;
+
+    static $first = TRUE;
+
+    if (session::get('DEBUGLEVEL') & $level) {
+      $output = '';
+      if ($first) {
+        $output .= '<div id="debug-handling" class="notice">'.
+              '<img src="geticon.php?context=status&amp;icon=dialog-information&amp;size=22" alt="Information" style="vertical-align:middle;margin-right:.2em;"/>'.
+              'There is some debug output '.
+              '<button onClick="javascript:$$(\'div.debug_div\').each(function (a) { a.toggle(); });">Toggle</button>'.
+            '</div>';
+        $first = FALSE;
+      }
+      $logline = "DEBUG[$level] ";
+      if ($function != '') {
+        $logline .= "($file:$function():$line) - $info: ";
+      } else {
+        $logline .= "($file:$line) - $info: ";
+      }
+      $output .= '<div class="debug_div">';
+      $output .= $logline;
+      if (is_array($data)) {
+        $output .= print_a($data, TRUE);
+        $logline .= print_r($data, TRUE);
+      } else {
+        $output   .= "'$data'";
+        $logline  .= "'$data'";
+      }
+      $output .= "</div>\n";
+
+      if (is_object($config) && preg_match('/true/i', $config->get_cfg_value('debugLogging', ''))) {
+        fusiondirectory_log($logline);
+      }
+
+      if (($_SERVER['REQUEST_METHOD'] == 'POST') && preg_match('/index.php$/', $_SERVER['REQUEST_URI'])) {
+        return;
+      }
+
+      echo $output;
+    }
+  }
+
   /*!
    * \brief Check the options
    *
@@ -141,20 +203,33 @@ class logging {
     if (empty($entry['object'])) {
       $entry['object'] = 'none';
     }
-    $tabObject = objects::create('auditEvent');
-    $baseObject = $tabObject->getBaseObject();
-    $baseObject->fdAuditDateTime    = DateTime::createFromFormat('U.u', number_format($entry['timestamp'], 6, '.', ''));
-    $baseObject->fdAuditAction      = $entry['action'];
-    $baseObject->fdAuditAuthorDN    = $entry['user'];
-    $baseObject->fdAuditObjectType  = $entry['objecttype'];
-    $baseObject->fdAuditObject      = $entry['object'];
-    $baseObject->fdAuditAttributes  = $entry['changes'];
-    $baseObject->fdAuditResult      = $entry['result'];
-    $baseObject->base               = $config->current['BASE'];
-    $message = $tabObject->save();
-    if (!empty($message)) {
-      msg_dialog::displayChecks($message);
+    try {
+      $tabObject = objects::create('auditEvent');
+      $baseObject = $tabObject->getBaseObject();
+      $baseObject->fdAuditDateTime    = DateTime::createFromFormat('U.u', number_format($entry['timestamp'], 6, '.', ''));
+      $baseObject->fdAuditAction      = $entry['action'];
+      $baseObject->fdAuditAuthorDN    = $entry['user'];
+      $baseObject->fdAuditObjectType  = $entry['objecttype'];
+      $baseObject->fdAuditObject      = $entry['object'];
+      $baseObject->fdAuditAttributes  = $entry['changes'];
+      $baseObject->fdAuditResult      = $entry['result'];
+      $baseObject->base               = $config->current['BASE'];
+      $errors = $tabObject->save();
+      if (!empty($errors)) {
+        msg_dialog::displayChecks($errors);
+      }
+    } catch (FusionDirectoryException $e) {
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('Failed to log event (%s - %s): %s'),
+          $entry['action'],
+          $entry['objecttype'],
+          $e->getMessage()
+        )),
+        0,
+        $e
+      );
+      $error->display();
     }
   }
 }
-?>
diff --git a/include/class_msgPool.inc b/include/class_msgPool.inc
index a4ca1009649e76705b68e6b16dd57fbfb16a57ba..bdf52f47b7c34c2822443c3d51af1444ec5cf9a0 100644
--- a/include/class_msgPool.inc
+++ b/include/class_msgPool.inc
@@ -1,9 +1,8 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -25,91 +24,31 @@
  * Source code for class msgPool
  */
 
-define("LDAP_READ",   1);
-define("LDAP_ADD",    2);
-define("LDAP_MOD",    3);
-define("LDAP_DEL",    4);
-define("LDAP_SEARCH", 5);
-define("LDAP_AUTH",   6);
-
 /*!
  * \brief This class contains all the messages for the various actions
  */
-class msgPool {
-
-  public static function selectToView ($type, $o_type = "")
-  {
-    if ($o_type == "") {
-      return sprintf(_("Select to list objects of type '%s'."), $type);
-    } elseif ($o_type == "contains") {
-      return sprintf(_("Select to list objects containig '%s'."), $type);
-    } elseif ($o_type == "enabled") {
-      return sprintf(_("Select to list objects that have '%s' enabled"), $type);
-    } elseif ($o_type == "subsearch") {
-      return _("Select to search within subtrees");
-    } elseif ($o_type == "subsearch_small") {
-      return _("Search in subtrees");
-    }
-
-  }
-
-  /*!
-   * \brief Display the deleted informations
-   *
-   * \param string $name Name of the object which will be deleted
-   *
-   * \param string $type Type of the object which will be deleted
-   */
-  public static function deleteInfo ($name = "", $type = "")
-  {
-    if ($name == "") {
-      if ($type == "") {
-        return _("This object will be deleted!");
-      } else {
-        return sprintf(_("This '%s' object will be deleted!"), $type);
-      }
-    }
-    if (!is_array($name)) {
-      if ($type == "") {
-        return sprintf(_("This object will be deleted: %s"), "<br><br><i>$name</i>");
-      } else {
-        return sprintf(_("This '%s' object will be deleted: %s"), $type, "<br><br><i>$name</i>");
-      }
-    }
-    if (count($name) == 1) {
-      if ($type == "") {
-        return _("This object will be deleted:")."<br>".msgPool::buildList($name);
-      } else {
-        return sprintf(_("This '%s' object will be deleted:"), $type). "<br>".msgPool::buildList($name);
-      }
-    }
-    if ($type == "") {
-      return sprintf(_("These objects will be deleted: %s"), "<br>".msgPool::buildList($name));
-    } else {
-      return sprintf(_("These '%s' objects will be deleted: %s"), $type, "<br>".msgPool::buildList($name));
-    }
-  }
-
+class msgPool
+{
   /*!
    * \brief Display that we have no permission to delete an object
    *
    * \param string $name Name of the object which will be deleted
    */
-  public static function permDelete ($name = "")
+  public static function permDelete ($name = '')
   {
-    if ($name == "") {
-      return _("You have no permission to delete this object!");
+    if ($name == '') {
+      return htmlescape(_('You have no permission to delete this object!'));
     }
 
     if (!is_array($name)) {
-      return _("You have no permission to delete the object:")."<br><br><i>$name</i>";
+      return htmlescape(_('You have no permission to delete the object:'))."<br/><br/><i>$name</i>";
     }
 
     if (count($name) == 1) {
-      return _("You have no permission to delete the object:")."<br>".msgPool::buildList($name);
+      return htmlescape(_('You have no permission to delete the object:')).'<br/>'.msgPool::buildList($name);
     }
 
-    return _("You have no permission to delete these objects:")."<br>".msgPool::buildList($name);
+    return htmlescape(_('You have no permission to delete these objects:')).'<br/>'.msgPool::buildList($name);
   }
 
   /*!
@@ -117,21 +56,21 @@ class msgPool {
    *
    * \param string $name Name of the object which will be created
    */
-  public static function permCreate ($name = "")
+  public static function permCreate ($name = '')
   {
-    if ($name == "") {
-      return _("You have no permission to create this object!");
+    if ($name == '') {
+      return htmlescape(_('You have no permission to create this object!'));
     }
 
     if (!is_array($name)) {
-      return _("You have no permission to create the object:")."<br><br><i>$name</i>";
+      return htmlescape(_('You have no permission to create the object:')).'<br/><br/><i>'.htmlescape($name).'</i>';
     }
 
     if (count($name) == 1) {
-      return _("You have no permission to create the object:")."<br>".msgPool::buildList($name);
+      return htmlescape(_('You have no permission to create the object:')).'<br/>'.msgPool::buildList($name);
     }
 
-    return _("You have no permission to create these objects:")."<br>".msgPool::buildList($name);
+    return htmlescape(_('You have no permission to create these objects:')).'<br/>'.msgPool::buildList($name);
   }
 
   /*!
@@ -143,22 +82,22 @@ class msgPool {
   public static function permModify ($name = '', $field = '')
   {
     if ($name == '') {
-      return _('You have no permission to modify this object!');
+      return htmlescape(_('You have no permission to modify this object!'));
     }
 
     if (!is_array($name)) {
       if ($field != '') {
-        return sprintf(_('You have no permission to modify the field "%s" of object "%s"'), $field, $name);
+        return htmlescape(sprintf(_('You have no permission to modify the field "%s" of object "%s"'), $field, $name));
       } else {
-        return sprintf(_('You have no permission to modify the object:<br/>%s'), '<br/><i>'.$name.'</i>');
+        return sprintf(htmlescape(_('You have no permission to modify the object:%s')), '<br/><br/><i>'.htmlescape($name).'</i>');
       }
     }
 
     if (count($name) == 1) {
-      return sprintf(_('You have no permission to modify the object:<br/>%s'), msgPool::buildList($name));
+      return sprintf(htmlescape(_('You have no permission to modify the object:%s')), '<br/>'.msgPool::buildList($name));
     }
 
-    return sprintf(_('You have no permission to modify these objects:<br/>%s'), msgPool::buildList($name));
+    return sprintf(htmlescape(_('You have no permission to modify these objects:%s')), '<br/>'.msgPool::buildList($name));
   }
 
   /*!
@@ -166,21 +105,21 @@ class msgPool {
    *
    * \param string $name Name of the object which will be viewed
    */
-  public static function permView ($name = "")
+  public static function permView ($name = '')
   {
-    if ($name == "") {
-      return _("You have no permission to view this object!");
+    if ($name == '') {
+      return htmlescape(_('You have no permission to view this object!'));
     }
 
     if (!is_array($name)) {
-      return _("You have no permission to view the object:")."<br><br><i>$name</i>";
+      return htmlescape(_('You have no permission to view the object:'))."<br/><br/><i>".htmlescape($name)."</i>";
     }
 
     if (count($name) == 1) {
-      return _("You have no permission to view the object:")."<br>".msgPool::buildList($name);
+      return htmlescape(_('You have no permission to view the object:')).'<br/>'.msgPool::buildList($name);
     }
 
-    return _("You have no permission to view these objects:")."<br>".msgPool::buildList($name);
+    return htmlescape(_('You have no permission to view these objects:')).'<br/>'.msgPool::buildList($name);
   }
 
   /*!
@@ -188,91 +127,21 @@ class msgPool {
    *
    * \param string $name Name of the object which will be moved
    */
-  public static function permMove ($name = "")
+  public static function permMove ($name = '')
   {
-    if ($name == "") {
-      return _("You have no permission to move this object!");
+    if ($name == '') {
+      return htmlescape(_('You have no permission to move this object!'));
     }
 
     if (!is_array($name)) {
-      return _("You have no permission to move the object:")."<br><br><i>$name</i>";
+      return htmlescape(_('You have no permission to move the object:'))."<br/><br/><i>".htmlescape($name)."</i>";
     }
 
     if (count($name) == 1) {
-      return _("You have no permission to move the object:")."<br>".msgPool::buildList($name);
+      return htmlescape(_('You have no permission to move the object:')).'<br/>'.msgPool::buildList($name);
     }
 
-    return _("You have no permission to move these objects:")."<br>".msgPool::buildList($name);
-  }
-
-  /*!
-   * \brief Display informations about database connection
-   *
-   * \param string $name Name of the database
-   *
-   * \param string $error Error messsage to display
-   *
-   * \param string $dbinfo Database information
-   */
-  public static function dbconnect ($name, $error = "", $dbinfo = "")
-  {
-    if ($error != "") {
-      $error = "<br><br><i>"._("Error").":</i> ".$error;
-    }
-    if ($dbinfo != "") {
-      $error .= "<br><br><i>"._("Connection information").":</i> ".$dbinfo;
-    }
-    return sprintf(_("Cannot connect to %s database!"), $name).$error;
-  }
-
-   /*!
-   * \brief Display informations about database select
-   *
-   * \param string $name Name of the database
-   *
-   * \param string $error Error messsage to display
-   *
-   * \param string $dbinfo Database information
-   */
-  public static function dbselect ($name, $error = "", $dbinfo = "")
-  {
-    if ($error != "") {
-      $error = "<br><br><i>"._("Error").":</i> ".$error;
-    }
-    if ($dbinfo != "") {
-      $error .= "<br><br><i>"._("Connection information").":</i> ".$dbinfo;
-    }
-    return sprintf(_("Cannot select %s database!"), $name).$error;
-  }
-
-  /*!
-   * \brief Display error about no server found
-   *
-   * \param string $name Name of the server
-   */
-  public static function noserver ($name)
-  {
-    return sprintf(_("No %s server defined!"), $name);
-  }
-
-   /*!
-   * \brief Display informations about database query
-   *
-   * \param string $name Name of the database
-   *
-   * \param string $error Error messsage to display
-   *
-   * \param string $dbinfo Database information
-   */
-  public static function dbquery ($name, $error = "", $dbinfo = "")
-  {
-    if ($error != "") {
-      $error = "<br><br><i>"._("Error").":</i> ".$error;
-    }
-    if ($dbinfo != "") {
-      $error .= "<br><br><i>"._("Connection information").":</i> ".$dbinfo;
-    }
-    return sprintf(_("Cannot query %s database!"), $name).$error;
+    return htmlescape(_('You have no permission to move these objects:')).'<br/>'.msgPool::buildList($name);
   }
 
   /*!
@@ -282,45 +151,7 @@ class msgPool {
    */
   public static function reserved ($name)
   {
-    return sprintf(_("The field '%s' contains a reserved keyword!"), $name);
-  }
-
-  /*!
-   * \brief Display that a command doesn't exist in this plugin
-   *
-   * \param string $type Command type
-   *
-   * \param string $plugin Name of the plugin
-   */
-  public static function cmdnotfound ($type, $plugin)
-  {
-    return sprintf(_("Command specified as %s hook for plugin '%s' does not exist!"), $type, $plugin);
-  }
-
-  /*!
-   * \brief Display that a command doesn't valid in this plugin
-   *
-   * \param string $type Command type
-   *
-   * \param string $command Command name
-   *
-   * \param string $plugin Name of the plugin
-   */
-  public static function cmdinvalid ($type, $command = "", $plugin = "")
-  {
-    if ($command == "") {
-      if ($plugin == "") {
-        return sprintf(_("'%s' command is invalid!"), $type);
-      } else {
-        return sprintf(_("'%s' command for plugin %s is invalid!"), $type, $plugin);
-      }
-    } else {
-      if ($plugin == "") {
-        return sprintf(_("'%s' command (%s) is invalid!"), $type, $command);
-      } else {
-        return sprintf(_("'%s' command (%s) for plugin %s is invalid!"), $type, $command, $plugin);
-      }
-    }
+    return htmlescape(sprintf(_('The field "%s" contains a reserved keyword!'), $name));
   }
 
   /*!
@@ -332,19 +163,19 @@ class msgPool {
    *
    * \param string $plugin Name of the plugin
    */
-  public static function cmdexecfailed ($type, $command = "", $plugin = "")
+  public static function cmdexecfailed ($type, $command = '', $plugin = '')
   {
-    if ($command == "") {
-      if ($plugin == "") {
-        return sprintf(_("Cannot execute '%s' command!"), $type);
+    if ($command == '') {
+      if ($plugin == '') {
+        return htmlescape(sprintf(_('Cannot execute "%s" command!'), $type));
       } else {
-        return sprintf(_("Cannot execute '%s' command for plugin %s!"), $type, $plugin);
+        return htmlescape(sprintf(_('Cannot execute "%s" command for plugin %s!'), $type, $plugin));
       }
     } else {
-      if ($plugin == "") {
-        return sprintf(_("Cannot execute '%s' command (%s)!"), $type, $command);
+      if ($plugin == '') {
+        return htmlescape(sprintf(_('Cannot execute "%s" command (%s)!'), $type, $command));
       } else {
-        return sprintf(_("Cannot execute '%s' command (%s) for plugin %s!"), $type, $command, $plugin);
+        return htmlescape(sprintf(_('Cannot execute "%s" command (%s) for plugin %s!'), $type, $command, $plugin));
       }
     }
   }
@@ -356,12 +187,12 @@ class msgPool {
    *
    * \param string $min The largest value
    */
-  public static function toobig ($name, $min = "")
+  public static function toobig ($name, $min = '')
   {
-    if ($min == "") {
-      return sprintf(_("Value for '%s' is too large!"), $name);
+    if ($min == '') {
+      return htmlescape(sprintf(_('Value for "%s" is too large!'), $name));
     } else {
-      return sprintf(_("'%s' must be smaller than %s!"), $name, $min);
+      return htmlescape(sprintf(_('"%s" must be smaller than %s!'), $name, $min));
     }
   }
 
@@ -372,12 +203,12 @@ class msgPool {
    *
    * \param string $min The smallest value
    */
-  public static function toosmall ($name, $min = "")
+  public static function toosmall ($name, $min = '')
   {
-    if ($min == "") {
-      return sprintf(_("Value for '%s' is too small!"), $name);
+    if ($min == '') {
+      return htmlescape(sprintf(_('Value for "%s" is too small!'), $name));
     } else {
-      return sprintf(_("'%s' must be %d or above!"), $name, $min);
+      return htmlescape(sprintf(_('"%s" must be %d or above!'), $name, $min));
     }
   }
 
@@ -390,7 +221,7 @@ class msgPool {
    */
   public static function depends ($name1, $name2)
   {
-    return sprintf(_("'%s' depends on '%s' - please provide both values!"), $name1, $name2);
+    return htmlescape(sprintf(_('"%s" depends on "%s" - please provide both values!'), $name1, $name2));
   }
 
   /*!
@@ -402,9 +233,9 @@ class msgPool {
   public static function duplicated ($name, $dn = NULL)
   {
     if ($dn == NULL) {
-      return sprintf(_("There is already an entry with this '%s' attribute in the system!"), $name);
+      return htmlescape(sprintf(_('There is already an entry with this "%s" attribute in the system!'), $name));
     } else {
-      return sprintf(_("The entry '%s' already use this '%s' attribute!"), $dn, $name);
+      return htmlescape(sprintf(_('The entry "%s" already uses this "%s" attribute!'), $dn, $name));
     }
   }
 
@@ -415,50 +246,32 @@ class msgPool {
    */
   public static function required ($name)
   {
-    return sprintf(_("The required field '%s' is empty!"), $name);
+    return htmlescape(sprintf(_('The required field "%s" is empty!'), $name));
   }
 
   /*!
-   * \brief Display error about invalid characters
+   * \brief Return error about invalid value
    *
    * \param string $name The field name
    *
    * \param string $data The submited data
    *
-   * \param string $regex
-   *
    * \param string $example Example of a right submited data
    */
-  public static function invalid ($name, $data = "", $regex = "", $example = "")
+  public static function invalid (string $name, $data = '', string $example = ''): string
   {
-    /* Stylize example */
-    if ($example != "") {
-      $example = "<br><br><i>"._("Example:")."</i> ".$example;
-    }
-
-    /* If validChars are posted, take data and paint all invalid
-       characters... */
-    if ($regex) {
-      $result   = "";
-      $mismatch = "";
-
-      mb_internal_encoding('UTF-8');
-      for ($i = 0; $i <= mb_strlen($data); $i++) {
-        $currentChar = mb_substr($data, $i, 1);
-        if (preg_match("$regex", $currentChar)) {
-          $result .= $currentChar;
-        } else {
-          $result   .= '<span style="color:red;text-decoration:underline;">'.($currentChar).'</span>';
-          $mismatch .= $currentChar;
-        }
-      }
+    if (!is_string($data)) {
+      $data = var_export($data, TRUE);
+    }
+    $error = htmlescape(sprintf(_('The field "%s" contains an invalid value.'), $name));
+    $error .= '<br/><br/> "'.htmlescape($data).'"';
 
-      return sprintf(_("The field '%s' contains invalid characters"), $name).". ".
-        ((strlen($mismatch) == 1) ? sprintf(_("'%s' is not allowed:"), $mismatch) : sprintf(_("'%s' are not allowed!"), $mismatch)).
-        "<br><br> \"$result\"$example";
-    } else {
-      return sprintf(_("The field '%s' contains invalid characters"), $name)."!$example";
+    /* Stylize example */
+    if ($example !== '') {
+      $error .= '<br/><br/><i>'.htmlescape(sprintf(_('Example: %s'), $example)).'</i> ';
     }
+
+    return $error;
   }
 
   /*!
@@ -468,77 +281,119 @@ class msgPool {
    */
   public static function missingext ($name)
   {
-    return sprintf(_("Missing %s PHP extension!"), $name);
+    return htmlescape(sprintf(_('Missing %s PHP extension!'), $name));
   }
 
   /*!
    * \brief Text for a cancel button
+   *
+   * \param bool $escape Whether to escape the result
    */
-  public static function cancelButton ()
+  public static function cancelButton ($escape = TRUE)
   {
-    return _("Cancel");
+    if ($escape) {
+      return htmlescape(_('Cancel'));
+    } else {
+      return _('Cancel');
+    }
   }
 
   /*!
    * \brief Text for a ok button
+   *
+   * \param bool $escape Whether to escape the result
    */
-  public static function okButton ()
+  public static function okButton ($escape = TRUE)
   {
-    return _("Ok");
+    if ($escape) {
+      return htmlescape(_('Ok'));
+    } else {
+      return _('Ok');
+    }
   }
 
   /*!
    * \brief Text for an apply button
+   *
+   * \param bool $escape Whether to escape the result
    */
-  public static function applyButton ()
+  public static function applyButton ($escape = TRUE)
   {
-    return _("Apply");
+    if ($escape) {
+      return htmlescape(_('Apply'));
+    } else {
+      return _('Apply');
+    }
   }
 
   /*!
    * \brief Text for a save button
+   *
+   * \param bool $escape Whether to escape the result
    */
-  public static function saveButton ()
+  public static function saveButton ($escape = TRUE)
   {
-    return _("Save");
+    if ($escape) {
+      return htmlescape(_('Save'));
+    } else {
+      return _('Save');
+    }
   }
 
   /*!
    * \brief Text for an add button
    *
-   * \param string $what Text for the button
+   * \param bool $escape Whether to escape the result
    */
-  public static function addButton ($what = '')
+  public static function addButton ($escape = TRUE)
   {
-    return (($what == '') ? sprintf(_('Add')) : sprintf(_('Add %s'), $what));
+    if ($escape) {
+      return htmlescape(_('Add'));
+    } else {
+      return _('Add');
+    }
   }
 
   /*!
    * \brief Text for an delete button
    *
-   * \param string $what Text for the button
+   * \param bool $escape Whether to escape the result
    */
-  public static function delButton ($what = '')
+  public static function delButton ($escape = TRUE)
   {
-    return (($what == '') ? sprintf(_('Delete')) : sprintf(_('Delete %s'), $what));
+    if ($escape) {
+      return htmlescape(_('Delete'));
+    } else {
+      return _('Delete');
+    }
   }
 
   /*!
    * \brief Text for an edit button
    *
-   * \param string $what Text for the button
+   * \param bool $escape Whether to escape the result
    */
-  public static function editButton ($what = '')
+  public static function editButton ($escape = TRUE)
   {
-    return (($what == '') ? sprintf(_('Edit...')) : sprintf(_('Edit %s...'), $what));
+    if ($escape) {
+      return htmlescape(_('Edit...'));
+    } else {
+      return _('Edit...');
+    }
   }
 
   /*!
    * \brief Text for a back button
+   *
+   * \param bool $escape Whether to escape the result
    */
-  public static function backButton ()
+  public static function backButton ($escape = TRUE)
   {
-    return _('Back');
+    if ($escape) {
+      return htmlescape(_('Back'));
+    } else {
+      return _('Back');
+    }
   }
 
   /*!
@@ -548,15 +403,15 @@ class msgPool {
    */
   public static function buildList ($data)
   {
-    $objects = "<ul>";
+    $objects = '<ul>';
     foreach ($data as $key => $value) {
       if (is_numeric($key)) {
-        $objects .= "<li>\n<i>$value</i></li>";
+        $objects .= "<li>\n<i>".htmlescape($value)."</i></li>";
       } else {
-        $objects .= "<li>\n$value (<i>$key</i>)</li>";
+        $objects .= "<li>\n".htmlescape($value)." (<i>".htmlescape($key)."</i>)</li>";
       }
     }
-    $objects .= "</ul>";
+    $objects .= '</ul>';
     return $objects;
   }
 
@@ -567,7 +422,7 @@ class msgPool {
    */
   public static function noValidExtension ($name)
   {
-    return sprintf(_("This account has no valid %s extensions!"), $name);
+    return htmlescape(sprintf(_('This account has no valid %s extensions!'), $name));
   }
 
   /*!
@@ -579,13 +434,13 @@ class msgPool {
    */
   public static function featuresEnabled ($name, $depends = '')
   {
-    if (($depends == "") || (is_array($depends) && (count($depends) == 0))) {
-      return sprintf(_("This account has %s settings enabled. You can disable them by clicking below."), $name);
+    if (($depends == '') || (is_array($depends) && (count($depends) == 0))) {
+      return htmlescape(sprintf(_('This account has %s settings enabled. You can disable them by clicking below.'), $name));
     } else {
       if (is_array($depends)) {
         $depends = implode(' / ', $depends);
       }
-      return sprintf(_("This account has %s settings enabled. To disable them, you'll need to remove the %s settings first!"), $name, $depends);
+      return htmlescape(sprintf(_('This account has %s settings enabled. To disable them, you\'ll need to remove the %s settings first!'), $name, $depends));
     }
   }
 
@@ -601,11 +456,11 @@ class msgPool {
   public static function featuresDisabled ($name, array $depends = [], array $conflicts = [])
   {
     if (empty($depends) && empty($conflicts)) {
-      return sprintf(_('This account has %s settings disabled. You can enable them by clicking below.'), $name);
+      return htmlescape(sprintf(_('This account has %s settings disabled. You can enable them by clicking below.'), $name));
     } elseif (!empty($depends)) {
-      return sprintf(_('This account has %s settings disabled. To enable them, you\'ll need to add the %s settings first!'), $name, implode(' / ', $depends));
+      return htmlescape(sprintf(_('This account has %s settings disabled. To enable them, you\'ll need to add the %s settings first!'), $name, implode(' / ', $depends)));
     } else {
-      return sprintf(_('This account has %s settings disabled. To enable them, you\'ll need to disable the %s settings first!'), $name, implode(' / ', $conflicts));
+      return htmlescape(sprintf(_('This account has %s settings disabled. To enable them, you\'ll need to disable the %s settings first!'), $name, implode(' / ', $conflicts)));
     }
   }
 
@@ -616,7 +471,7 @@ class msgPool {
    */
   public static function addFeaturesButton ($name)
   {
-    return sprintf(_("Add %s settings"), $name);
+    return htmlescape(sprintf(_('Add %s settings'), $name));
   }
 
   /*!
@@ -627,7 +482,7 @@ class msgPool {
 
   public static function removeFeaturesButton ($name)
   {
-    return sprintf(_("Remove %s settings"), $name);
+    return htmlescape(sprintf(_('Remove %s settings'), $name));
   }
 
   /*!
@@ -635,7 +490,7 @@ class msgPool {
    */
   public static function clickEditToChange ()
   {
-    return _('Click the "Edit" button on the bottom right corner of the page to edit the fields');
+    return htmlescape(_('Click the "Edit" button on the bottom right corner of the page to edit the fields'));
   }
 
   /*!
@@ -643,9 +498,9 @@ class msgPool {
    */
   public static function months ()
   {
-    return [_("January"), _("February"), _("March"), _("April"),
-        _("May"), _("June"), _("July"), _("August"), _("September"),
-        _("October"), _("November"), _("December")];
+    return [_('January'), _('February'), _('March'), _('April'),
+        _('May'), _('June'), _('July'), _('August'), _('September'),
+        _('October'), _('November'), _('December')];
   }
 
   /*!
@@ -654,7 +509,7 @@ class msgPool {
    */
   public static function weekdays ()
   {
-    return [ _("Sunday"), _("Monday"), _("Tuesday"), _("Wednesday"), _("Thursday"), _("Friday"), _("Saturday")];
+    return [ _('Sunday'), _('Monday'), _('Tuesday'), _('Wednesday'), _('Thursday'), _('Friday'), _('Saturday')];
   }
 
   /*!
@@ -675,17 +530,17 @@ class msgPool {
         _('delete operation'), _('search operation'), _('authentication')];
 
     if (isset($typemap[$type])) {
-      $msg = sprintf(_('LDAP %s failed!'), $typemap[$type]);
+      $msg = htmlescape(sprintf(_('LDAP %s failed!'), $typemap[$type]));
     } else {
-      $msg = _('LDAP operation failed!');
+      $msg = htmlescape(_('LDAP operation failed!'));
     }
 
     /* Fill DN information */
     if ($dn != '') {
-      $msg .= '<br/><br/><i>'._('Object').':</i> '.$dn;
+      $msg .= '<br/><br/><i>'.htmlescape(_('Object')).':</i> '.htmlescape($dn);
     }
 
-    $msg .= '<br/><br/><i>'._('Error').':</i> '.$error;
+    $msg .= '<br/><br/><i>'.htmlescape(_('Error')).':</i> '.htmlescape($error);
 
     return $msg;
   }
@@ -695,13 +550,13 @@ class msgPool {
    *
    * \param string $reason The reason of the upload failed
    */
-  public static function incorrectUpload ($reason = "")
+  public static function incorrectUpload ($reason = '')
   {
-    if ($reason == "") {
-      return _("Upload failed!");
+    if ($reason == '') {
+      return htmlescape(_('Upload failed!'));
     }
 
-    return sprintf(_("Upload failed: %s"), "<br><br><i>$reason</i>");
+    return sprintf(htmlescape(_('Upload failed: %s')), '<br/><br/><i>'.htmlescape($reason).'</i>');
   }
 
   /*!
@@ -709,103 +564,12 @@ class msgPool {
    *
    * \param string $error The error of the communication failure
    */
-  public static function siError ($error = "")
+  public static function siError ($error = '')
   {
-    if ($error == "") {
-      return _("Communication failure with the infrastructure service!");
+    if ($error == '') {
+      return htmlescape(_('Communication failure with the infrastructure service!'));
     }
-    return sprintf(_("Communication failure with the infrastructure service: %s"), "<br><br>"._("Error").": ".$error);
-  }
-
-  /*!
-   * \brief Display which it still in use
-   *
-   * \param $type Type
-   *
-   * \param array $objects
-   */
-  public static function stillInUse ($type, $objects = [])
-  {
-    if (!is_array($objects)) {
-      return sprintf(_("This '%s' is still in use by this object: %s"), $type, "<br><br>".$objects);
-    }
-    if (count($objects) == 1) {
-      return sprintf(_("This '%s' is still in use by this object: %s"), $type, "<br>".msgPool::buildList($objects));
-    }
-    if (count($objects) == 0) {
-      return sprintf(_("This '%s' is still in use."), $type);
-    }
-    return sprintf(_("This '%s' is still in use by these objects: %s"), $type, "<br>".msgPool::buildList($objects));
-  }
-
-  /*!
-   * \brief Display file doesn't exist
-   *
-   * \param string $file Name of the file not found
-   */
-  public static function fileDoesNotExist ($file)
-  {
-    return sprintf(_("File '%s' does not exist!"), $file);
-  }
-
-  /*!
-   * \brief Display file isn't readable
-   *
-   * \param string $file Name of the file not readable
-   */
-  public static function cannotReadFile ($file)
-  {
-    return sprintf(_("Cannot open file '%s' for reading!"), $file);
-  }
-
-  /*!
-   * \brief Display file isn't writable
-   *
-   * \param string $file Name of the file not writable
-   */
-  public static function cannotWriteFile ($file)
-  {
-    return sprintf(_("Cannot open file '%s' for writing!"), $file);
-  }
-
-  /*!
-   * \brief Display error in the configuration
-   *
-   * \param string $attr Name of the invalide attribute
-   */
-  public static function invalidConfigurationAttribute ($attr)
-  {
-    return sprintf(_("The value for '%s' is currently unconfigured or invalid, please check your configuration file!"), $attr);
-  }
-
-  /*!
-   * \brief Display error when cannot delete a file
-   *
-   * \param string $file Filename which can't be deleted
-   */
-  public static function cannotDeleteFile ($file)
-  {
-    return sprintf(_("Cannot delete file '%s'!"), $file);
-  }
-
-  /*!
-   * \brief Display error when cannot create a folder
-   *
-   * \param string $path Name of folder which can't be created
-   */
-  public static function cannotCreateFolder ($path)
-  {
-    return sprintf(_("Cannot create folder '%s'!"), $path);
-  }
-
-  /*!
-   * \brief Display error when cannot delete a folder
-   *
-   * \param string $path Name of folder which can't be deleted
-   */
-  public static function cannotDeleteFolder ($path)
-  {
-    return sprintf(_("Cannot delete folder '%s'!"), $path);
+    return nl2br(htmlescape(sprintf(_("Communication failure with the infrastructure service:\n\nError: %s"), $error)));
   }
 
   /*!
@@ -815,7 +579,7 @@ class msgPool {
    */
   public static function checkingFor ($what)
   {
-    return sprintf(_("Checking for %s support"), $what);
+    return htmlescape(sprintf(_('Checking for %s support'), $what));
   }
 
   /*!
@@ -825,27 +589,7 @@ class msgPool {
    */
   public static function installPhpModule ($what)
   {
-    return sprintf(_("Install and activate the %s PHP module."), $what);
-  }
-
-  /*!
-   * \brief Display install or activate a PEAR module
-   *
-   * \param string $what Name of the module
-   */
-  public static function installPearModule ($what)
-  {
-    return sprintf(_("Install and activate the %s Pear module."), $what);
-  }
-
-  /*!
-   * \brief Display error when a class is not found
-   *
-   * \param string $plugin Name of the class which can'b be initialized
-   */
-  public static function class_not_found ($plugin)
-  {
-    return sprintf(_("Cannot initialize class '%s'! Maybe there is a plugin missing in your FusionDirectory setup?"), $plugin);
+    return htmlescape(sprintf(_('Install and activate the %s PHP module.'), $what));
   }
 
   /*!
@@ -853,7 +597,6 @@ class msgPool {
    */
   public static function check_base ()
   {
-    return _("The supplied base is not valid and has been reset to the previous value!");
+    return htmlescape(_('The supplied base is not valid and has been reset to the previous value!'));
   }
 }
-?>
diff --git a/include/class_msg_dialog.inc b/include/class_msg_dialog.inc
index 35f9d70543a8f6abf8ae3764d3fa1d8571c73826..65c13f64c2195f622d2bfbefe5597bd4a0b223f8 100644
--- a/include/class_msg_dialog.inc
+++ b/include/class_msg_dialog.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -37,32 +37,35 @@ define('FATAL_ERROR_DIALOG',  10006);
  */
 class msg_dialog
 {
-  private $s_Title    = 'Undefined';
-  private $s_Message  = 'Undefined';
-  private $i_Type     = INFO_DIALOG;
-  private $i_ID       = 0;
-  private $a_Trace    = [];
+  private $s_Title;
+  private $s_Message;
+  private $i_Type;
+  private $i_ID;
+  private $a_Trace;
 
   /*!
    * \brief Message dialog constructor
    *
-   * \param string $s_title The title of the message dialog
+   * \param string $title The title of the message dialog (plain string)
    *
-   * \param string $s_message The message of the message dialog
+   * \param string $message The message of the message dialog (HTML)
    *
-   * \param string $i_type The type of the message dialog, by default = INFO_DIALOG
+   * \param int $type The type of the message dialog, by default = INFO_DIALOG
+   *
+   * \param array $trace The trace from where the message was built
    */
-  public function __construct ($s_title, $s_message, $i_type)
+  public function __construct (string $title, string $message, int $type = INFO_DIALOG, array $trace = [])
   {
-    if (!in_array($i_type, [INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG,FATAL_ERROR_DIALOG])) {
+    if (!in_array($type, [INFO_DIALOG,WARNING_DIALOG,ERROR_DIALOG,CONFIRM_DIALOG,FATAL_ERROR_DIALOG])) {
       trigger_error('Invalid msg_dialog type.');
-      $i_type = INFO_DIALOG;
+      $type = INFO_DIALOG;
     }
 
-    $this->i_ID       = preg_replace('/[^0-9]*/', '', microtime());
-    $this->s_Title    = $s_title;
-    $this->s_Message  = $s_message;
-    $this->i_Type     = $i_type;
+    $this->i_ID       = (int)preg_replace('/[^0-9]*/', '', microtime());
+    $this->s_Title    = $title;
+    $this->s_Message  = $message;
+    $this->i_Type     = $type;
+    $this->a_Trace    = $trace;
   }
 
   protected function show ()
@@ -93,35 +96,43 @@ class msg_dialog
     /* Append trace information, only if error messages are enabled */
     if (isset($config) && is_object($config) &&
       $config->get_cfg_value('displayerrors') == 'TRUE') {
-      $this->a_Trace = debug_backtrace();
+      if (empty($this->a_Trace)) {
+        $this->a_Trace = debug_backtrace();
+      }
+    } else {
+      $this->a_Trace = [];
     }
-    if ($this->i_Type == FATAL_ERROR_DIALOG) {
-      restore_error_handler();
-      error_reporting(E_ALL);
-      echo $this->execute();
+    if (session::is_set('msg_dialogs')) {
+      $msg_dialogs = session::get('msg_dialogs');
     } else {
-      if (session::is_set('msg_dialogs')) {
-        $msg_dialogs = session::get('msg_dialogs');
-      } else {
-        $msg_dialogs = [];
-      }
-      $msg_dialogs[] = $this;
-      session::set('msg_dialogs', $msg_dialogs);
+      $msg_dialogs = [];
     }
+    $msg_dialogs[] = $this;
+    session::set('msg_dialogs', $msg_dialogs);
   }
 
   /*!
    * \brief Display a message dialog
    *
-   * \param string $s_title The title of the message dialog
+   * \param string|object $title The title of the message dialog, or the error object
+   *
+   * \param string $message The message of the message dialog (HTML)
    *
-   * \param string $s_message The message of the message dialog
+   * \param int $type The type of the message dialog, by default = INFO_DIALOG
    *
-   * \param string $i_type The type of the message dialog, by default = INFO_DIALOG
+   * \param array $trace The trace from where the message was built
    */
-  public static function display ($s_title, $s_message, $i_type = INFO_DIALOG)
+  public static function display ($title, string $message, int $type = INFO_DIALOG, array $trace = [])
   {
-    $dialog = new msg_dialog($s_title, $s_message, $i_type);
+    if ($type === FATAL_ERROR_DIALOG) {
+      /* Deprecated */
+      throw new FatalError($message);
+    }
+    if ($title instanceof FusionDirectoryError) {
+      static::display(...$title->computeMsgDialogParameters());
+      return;
+    }
+    $dialog = new msg_dialog($title, $message, $type, $trace);
     $dialog->show();
   }
 
@@ -133,7 +144,11 @@ class msg_dialog
   public static function displayChecks ($messages)
   {
     foreach ($messages as $error) {
-      static::display(_('Error'), $error, ERROR_DIALOG);
+      if ($error instanceof FusionDirectoryError) {
+        static::display(...$error->computeMsgDialogParameters());
+      } else {
+        static::display(_('Error'), $error, ERROR_DIALOG);
+      }
     }
   }
 
@@ -142,102 +157,60 @@ class msg_dialog
    *
    * \return The identifier of the message dialog
    */
-  public function get_ID ()
+  public function getId (): int
   {
     return $this->i_ID;
   }
 
-  /*!
-   * \brief Run the message dialog
-   */
-  public function execute ()
-  {
-    global $config;
-    if ($this->i_Type == FATAL_ERROR_DIALOG) {
-      $display =
-        '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/transitional.dtd">
-        <html><head>
-        <title>FusionDirectory startup failed</title>
-        </head><body>';
-      if (isset($config) && is_object($config) &&
-        $config->get_cfg_value('displayerrors') == 'TRUE') {
-        list($trace,) = html_trace();
-        $display .= $trace;
-      }
-      $display .=
-        '<table style="width:100%; border:2px solid red;">
-          <tr>
-            <td style="vertical-align:top;padding:10px">
-              <img src="geticon.php?context=status&amp;icon=dialog-error&amp;size=32" alt="'.htmlentities(_('Error'), ENT_COMPAT, 'UTF-8').'"/>
-            </td>
-            <td style="width:100%">
-              <b>'.htmlentities($this->s_Title, ENT_COMPAT, 'UTF-8').'</b><br/>
-              '.htmlentities($this->s_Message, ENT_COMPAT, 'UTF-8').'<br><br/>
-              '.htmlentities(_('Please fix the above error and reload the page.'), ENT_COMPAT, 'UTF-8').'
-            </td>
-          </tr>
-        </table></body></html>';
-      return $display;
-    } else {
-
-      $smarty = get_smarty();
-      $smarty->assign('s_Trace',    print_a($this->a_Trace, TRUE));
-      $smarty->assign('i_TraceCnt', count($this->a_Trace));
-      $smarty->assign('i_Type',     $this->i_Type);
-      $smarty->assign('s_Message',  $this->s_Message);
-      $smarty->assign('s_Title',    $this->s_Title);
-      $smarty->assign('i_ID',       $this->i_ID);
-      $smarty->assign('frame',      FALSE);
-      $smarty->assign('JS',         TRUE);
-      return $smarty->fetch(get_template_path('msg_dialog.tpl'));
-    }
-  }
-
   /*!
    * \brief Check if the message is confirmed by user
    *
    * \return True if is confirmed, else return false
    */
-  public function is_confirmed ()
+  public function is_confirmed (): bool
   {
     return isset($_POST['MSG_OK'.$this->i_ID]);
   }
 
   /*!
-   * \brief Accessor of the message dialog
+   * \brief Return an array with infos for the template
    */
-  public static function get_dialogs ()
+  protected function getDialogInfos (): array
   {
-    $return     = "";
-    $dialog_ids = "";
+    return [
+      'id'          => $this->i_ID,
+      'type'        => $this->i_Type,
+      'title'       => $this->s_Title,
+      'message'     => $this->s_Message,
+      'trace'       => ((count($this->a_Trace) > 0) ? print_a($this->a_Trace, TRUE) : ''),
+    ];
+  }
 
+  /*!
+   * \brief Accessor of the message dialog rendered HTML
+   */
+  public static function get_dialogs (): string
+  {
     if (session::is_set('msg_dialogs') &&
         is_array(session::get('msg_dialogs')) &&
         count(session::get('msg_dialogs'))) {
-      /* Get frame one */
       $smarty = get_smarty();
-      $smarty->assign('frame', TRUE);
-      $return = $smarty->fetch(get_template_path('msg_dialog.tpl'));
 
-      $msg_dialogs = session::get('msg_dialogs');
-      foreach ($msg_dialogs as $key => $dialog) {
-        if (!preg_match('/'.$dialog->get_ID().'/', '')) {
-          $return     .= $dialog->execute();
-          $dialog_ids = $dialog->get_ID().','.$dialog_ids;
-        }
-        unset($msg_dialogs[$key]);
+      $msg_dialogs  = session::get('msg_dialogs');
+      $dialogInfos  = [];
+      $dialogIds    = [];
+      foreach ($msg_dialogs as $dialog) {
+        $dialogInfos[]  = $dialog->getDialogInfos();
+        $dialogIds[]    = $dialog->getId();
       }
-      session::set('msg_dialogs', $msg_dialogs);
-      $dialog_ids = preg_replace('/,$/', '', $dialog_ids);
-
-      $return .= '</div>'."\n";
-      $return .= '<input type="hidden" style="width:400px;" name="pending_msg_dialogs"  id="pending_msg_dialogs" value="'.$dialog_ids.'"/>'."\n";
-      $return .= '<input type="hidden" style="width:400px;" name="closed_msg_dialogs"   id="closed_msg_dialogs" value=""/>'."\n";
-      $return .= '<input type="hidden" style="width:400px;" name="current_msg_dialogs"  id="current_msg_dialogs" value=""/>'."\n";
-      $return .= '<input type="hidden" style="width:700px;" name="js_debug"             id="js_debug">'."\n";
+      session::set('msg_dialogs', []);
+
+      $smarty->assign('dialogInfos',  $dialogInfos);
+      $smarty->assign('dialogIds',    $dialogIds);
+
+      return $smarty->fetch(get_template_path('msg_dialog.tpl'));
+    } else {
+      return '';
     }
-    return $return;
   }
 }
-?>
diff --git a/include/class_objects.inc b/include/class_objects.inc
index e00d15fa64621a1681a2d8f1e33f9073c7b14563..42358dce9fac0b47d7c57a8e92ac02dc8efd0e0d 100644
--- a/include/class_objects.inc
+++ b/include/class_objects.inc
@@ -2,7 +2,7 @@
 
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2016  FusionDirectory
 
   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
@@ -32,17 +32,18 @@ class objects
    * \param array   $types the objectTypes to list
    * \param mixed   $attrs The attributes to fetch.
    * If this is a single value, the resulting associative array will have for each dn the value of this attribute.
-   * If this is an array, the keys must be the wanted attributes, and the values can be either 1, '*' or 'raw'
+   * If this is an array, the keys must be the wanted attributes, and the values can be either 1, '*', 'b64' or 'raw'
    *  depending if you want a single value or an array of values. 'raw' means untouched LDAP value and is only useful for dns.
-   *  Other values are considered to be 1.
+   *  Other values are considered to be 1. 'b64' means an array of base64 encoded values and is mainly useful through webservice for binary attributes.
    * \param string  $ou the LDAP branch to search in, base will be used if it is NULL
-   * \param string  $filter an additional filter to use in the LDAP search.
+   * \param string  $filter an additional filter to use in the LDAP search. (Might use special _template_cn field to search in template cn).
    * \param boolean $checkAcl should ACL be ignored or checked? Defaults to FALSE.
    * \param string  $scope scope, defaults to subtree. When using one, be careful what you put in $ou.
+   * \param boolean $templateSearch Whether to search for templates or normal objects.
    *
    * \return The list of objects as an associative array (keys are dns)
    */
-  static function ls ($types, $attrs = NULL, $ou = NULL, $filter = '', $checkAcl = FALSE, $scope = 'subtree')
+  static function ls ($types, $attrs = NULL, string $ou = NULL, string $filter = '', bool $checkAcl = FALSE, string $scope = 'subtree', bool $templateSearch = FALSE, bool $sizeLimit = FALSE): array
   {
     global $ui, $config;
 
@@ -58,24 +59,29 @@ class objects
       if (count($types) > 1) {
         throw new FusionDirectoryException('Cannot evaluate ACL for several types');
       }
-      $infos = static::infos(reset($types));
-      $acl = $infos['aclCategory'].'/'.$infos['mainTab'];
+      $infos  = static::infos(reset($types));
+      $acl    = $infos['aclCategory'].'/'.$infos['mainTab'];
+      $tplAcl = $infos['aclCategory'].'/template';
     }
 
     $attrsAcls = [];
     if ($attrs === NULL) {
-      $attrs = [];
-      foreach ($types as $type) {
-        $infos = static::infos($type);
-        if ($infos['mainAttr']) {
-          $attrs[] = $infos['mainAttr'];
+      if ($templateSearch) {
+        $attrs = 'cn';
+      } else {
+        $attrs = [];
+        foreach ($types as $type) {
+          $infos = static::infos($type);
+          if ($infos['mainAttr']) {
+            $attrs[] = $infos['mainAttr'];
+          }
+        }
+        $attrs = array_unique($attrs);
+        if (count($attrs) == 1) {
+          $attrs = $attrs[0];
+        } elseif (count($attrs) == 0) {
+          $attrs = ['dn' => 'raw'];
         }
-      }
-      $attrs = array_unique($attrs);
-      if (count($attrs) == 1) {
-        $attrs = $attrs[0];
-      } elseif (count($attrs) == 0) {
-        $attrs = ['dn' => 'raw'];
       }
     } elseif ($checkAcl) {
       if (is_array($attrs)) {
@@ -84,9 +90,11 @@ class objects
         $search_attrs = [$attrs];
       }
       foreach ($search_attrs as $search_attr) {
+        //Below str_replace allows us to remove the options, resulting in proper ACL inspection. (ACLs do not take options).
+        $search_attr = preg_replace('/;x-.*/', '', $search_attr);
         $category = $ui->getAttributeCategory($types[0], $search_attr);
         if ($category === FALSE) {
-          throw new FusionDirectoryException('Could not find ACL for attribute "'.$search_attr.'"');
+          throw new FusionDirectoryException('Could not find ACL for attribute "'.$search_attr.'" for type "'.$types[0].'"');
         }
         if ($category === TRUE) {
           continue;
@@ -102,9 +110,13 @@ class objects
     } else {
       $search_attrs = [$attrs];
     }
+    if ($templateSearch) {
+      $search_attrs[] = 'fdTemplateField';
+      $search_attrs[] = 'cn';
+    }
 
     try {
-      $ldap = static::search($types, $search_attrs, $ou, $filter, $checkAcl, $scope, FALSE, $partialFilterAcls);
+      $ldap = static::search($types, $search_attrs, $ou, $filter, $checkAcl, $scope, $templateSearch, $partialFilterAcls, $sizeLimit);
     } catch (NonExistingBranchException $e) {
       return [];
     }
@@ -135,15 +147,62 @@ class objects
               case 'raw':
                 $result[$key][$attr] = $fetched_attrs[$attr];
                 break;
+              case 'b64':
+                unset($fetched_attrs[$attr]['count']);
+                $result[$key][$attr] = array_map('base64_encode', $fetched_attrs[$attr]);
+                break;
               case 1:
               default:
                 $result[$key][$attr] = $fetched_attrs[$attr][0];
             }
           }
         }
+        if ($templateSearch) {
+          if (
+              isset($fetched_attrs['cn']) &&
+              (!$checkAcl || (strpos($ui->get_permissions($key, $tplAcl, 'template_cn'), 'r') !== FALSE))
+            ) {
+            $result[$key]['cn'] = $fetched_attrs['cn'][0];
+          }
+          $result[$key]['fdTemplateField'] = [];
+          foreach ($fetched_attrs['fdTemplateField'] as $templateField) {
+            $attr = explode(':', $templateField, 2)[0];
+            if (isset($attrs[$attr])) {
+              if (isset($attrsAcls[$attr]) &&
+                  (strpos($ui->get_permissions($key, $attrsAcls[$attr][0], $attrsAcls[$attr][1]), 'r') === FALSE)) {
+                continue;
+              }
+              $result[$key]['fdTemplateField'][] = $templateField;
+            }
+          }
+          if (empty($result[$key]['fdTemplateField'])) {
+            unset($result[$key]['fdTemplateField']);
+          }
+        }
         if (count($result[$key]) === 0) {
           unset($result[$key]);
         }
+      } elseif ($templateSearch) {
+        if ($attrs == 'cn') {
+          if (
+              isset($fetched_attrs['cn']) &&
+              (!$checkAcl || (strpos($ui->get_permissions($key, $tplAcl, 'template_cn'), 'r') !== FALSE))
+            ) {
+            $result[$key] = $fetched_attrs['cn'][0];
+          }
+        } else {
+          if (isset($attrsAcls[$attrs]) &&
+              (strpos($ui->get_permissions($key, $attrsAcls[$attrs][0], $attrsAcls[$attrs][1]), 'r') === FALSE)) {
+            continue;
+          }
+          foreach ($fetched_attrs['fdTemplateField'] as $templateField) {
+            list($attr, $value) = explode(':', $templateField, 2);
+            if ($attrs == $attr) {
+              $result[$key] = $value;
+              break;
+            }
+          }
+        }
       } elseif (isset($fetched_attrs[$attrs])) {
         if (isset($attrsAcls[$attrs]) &&
             (strpos($ui->get_permissions($key, $attrsAcls[$attrs][0], $attrsAcls[$attrs][1]), 'r') === FALSE)) {
@@ -165,10 +224,10 @@ class objects
    *
    * \return The number of objects of type $type in $ou
    */
-  static function count ($types, $ou = NULL, $filter = '', $checkAcl = FALSE)
+  static function count ($types, string $ou = NULL, string $filter = '', bool $checkAcl = FALSE, bool $templateSearch = FALSE): int
   {
     try {
-      $ldap = static::search($types, ['dn'], $ou, $filter, $checkAcl, 'subtree', FALSE, $partialFilterAcls);
+      $ldap = static::search($types, ['dn'], $ou, $filter, $checkAcl, 'subtree', $templateSearch, $partialFilterAcls);
       if (!empty($partialFilterAcls)) {
         throw new FusionDirectoryException('Not enough rights to use "'.$partialFilterAcls[0][1].'" in filter');
       }
@@ -180,7 +239,7 @@ class objects
     return $ldap->count();
   }
 
-  private static function search ($types, $search_attrs, $ou = NULL, $filter = '', $checkAcl = FALSE, $scope = 'subtree', $templateSearch = FALSE, &$partialFilterAcls = [])
+  private static function search ($types, $search_attrs, string $ou = NULL, string $filter = '', bool $checkAcl = FALSE, string $scope = 'subtree', bool $templateSearch = FALSE, &$partialFilterAcls = [], bool $sizeLimit = FALSE): ldapMultiplexer
   {
     global $config, $ui;
 
@@ -214,9 +273,9 @@ class objects
       throw new EmptyFilterException();
     }
 
-    $ldap = $config->get_ldap_link();
+    $ldap = $config->get_ldap_link($sizeLimit);
     if (!$ldap->dn_exists($ou)) {
-      throw new NonExistingBranchException();
+      throw new NonExistingBranchException($ou);
     }
     if (empty($filter)) {
       $filter = '(|'.implode($typeFilters).')';
@@ -227,10 +286,11 @@ class objects
         }
         $filterObject     = ldapFilter::parse($filter);
         $filterAttributes = $filterObject->listUsedAttributes();
+        unset($filterAttributes['_template_cn']);
         foreach ($filterAttributes as $acl) {
           $category = $ui->getAttributeCategory($types[0], $acl);
           if ($category === FALSE) {
-            throw new FusionDirectoryException('Could not find ACL for attribute "'.$acl.'"');
+            throw new FusionDirectoryException('Could not find ACL for attribute "'.$acl.'" for type "'.$types[0].'"');
           }
           if ($category === TRUE) {
             continue;
@@ -254,11 +314,19 @@ class objects
         ]
       );
       $filter = "$templateFilterObject";
+    } else {
+      $filterObject = fdNoTemplateFilter(ldapFilter::parse($filter));
+      $filter       = "$filterObject";
     }
     $ldap->cd($ou);
     $ldap->search($filter, $search_attrs, $scope);
     if (!$ldap->success()) {
-      throw new LDAPFailureException($ldap->get_error());
+      if ($sizeLimit && $ldap->hitSizeLimit()) {
+        // Check for size limit exceeded messages for GUI feedback
+        $ui->getSizeLimitHandler()->setLimitExceeded();
+      } else {
+        throw new LDAPFailureException($ldap->get_error());
+      }
     }
     return $ldap;
   }
@@ -271,33 +339,37 @@ class objects
    *
    * \return The created tab object
    */
-  static function open ($dn, $type)
+  static function open (string $dn, string $type): simpleTabs
   {
     $infos    = static::infos($type);
     $tabClass = $infos['tabClass'];
 
     $tabObject = new $tabClass($type, $dn);
-    $tabObject->set_acl_base();
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, "Openned as $type object");
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, "Openned as $type object");
 
     return $tabObject;
   }
 
-  static function link ($dn, $type, $subaction = '', $text = NULL, $icon = TRUE)
+  /**
+   * @param string|array|null $text
+   */
+  static function link (string $dn, string $type, string $subaction = '', $text = NULL, bool $icon = TRUE, bool $link = TRUE): string
   {
     global $config;
 
     $infos = static::infos($type);
-    if (!isset($infos['management'])) {
-      throw new NoManagementClassException('Asked for link for type "'.$type.'" but it does not have a management class');
-    }
-    $pInfos = pluglist::pluginInfos($infos['management']);
-    $index  = $pInfos['INDEX'];
-    $action = 'edit';
-    if ($subaction != '') {
-      $action .= '_'.$subaction;
+    if ($link) {
+      if (!isset($infos['management'])) {
+        throw new NoManagementClassException('Asked for link for type "'.$type.'" but it does not have a management class');
+      }
+      $pInfos = pluglist::pluginInfos($infos['management']);
+      $index  = $pInfos['INDEX'];
+      $action = 'edit';
+      if ($subaction != '') {
+        $action .= '_'.$subaction;
+      }
+      $href = "main.php?plug=$index&amp;reset=1&amp;act=listing_$action&amp;dn=".urlencode($dn);
     }
-    $href   = "main.php?plug=$index&amp;reset=1&amp;act=listing_$action&amp;dn=".urlencode($dn);
 
     if ($text === NULL) {
       $ldap = $config->get_ldap_link();
@@ -309,30 +381,58 @@ class objects
           $text = $dn;
         }
       } else {
-        throw new NonExistingLdapNodeException('Dn '.$dn.' not found in LDAP');
+        throw new NonExistingLdapNodeException($dn);
       }
     } elseif (is_array($text)) {
       $text = $text[$infos['nameAttr']][0];
     }
 
+    $text = htmlescape($text);
+
     if ($icon && isset($infos['icon'])) {
-      $text = '<img alt="'.$infos['name'].'" title="'.$dn.'" src="'.htmlentities($infos['icon'], ENT_COMPAT, 'UTF-8').'" class="center"/>&nbsp;'.$text;
+      $text = '<img alt="'.htmlescape($infos['name']).'" title="'.htmlescape($dn).'" src="'.htmlescape($infos['icon']).'" class="center"/>&nbsp;'.$text;
+    }
+
+    if ($link) {
+      $text = '<a href="'.$href.'">'.$text.'</a>';
     }
 
-    return '<a href="'.$href.'">'.$text.'</a>';
+    return $text;
   }
 
-  static function create ($type)
+  static function create (string $type): simpleTabs
   {
     return static::open('new', $type);
   }
 
-  static function infos ($type)
+  static function delete (string $dn, string $type, bool $checkAcl = TRUE): array
+  {
+    $tabObject = static::open($dn, $type);
+    return $tabObject->delete($checkAcl);
+  }
+
+  static function createTemplate (string $type): simpleTabs
+  {
+    $infos    = static::infos($type);
+    $tabClass = $infos['tabClass'];
+
+    /* Pass fake attrs object to force template mode */
+    $attrsObject  = new stdClass();
+    $attrsObject->attrs = [];
+    $attrsObject->is_template = TRUE;
+
+    $tabObject = new $tabClass($type, 'new', $attrsObject);
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $type, 'Create template of type');
+
+    return $tabObject;
+  }
+
+  static function &infos (string $type): array
   {
     global $config;
 
     if (!isset($config->data['OBJECTS'][strtoupper($type)])) {
-      throw new NonExistingObjectTypeException('Non-existing type "'.$type.'"');
+      throw new NonExistingObjectTypeException($type);
     }
 
     $infos =& $config->data['OBJECTS'][strtoupper($type)];
@@ -342,16 +442,18 @@ class objects
         $infos['filterRDN'] = '';
       } else {
         $parts = ldap_explode_dn(preg_replace('/,$/', '', $infos['ou']), 0);
-        unset($parts['count']);
-        $dnFilter = [];
-        foreach ($parts as $part) {
-          preg_match('/([^=]+)=(.*)$/', $part, $m);
-          $dnFilter[] = '('.$m[1].':dn:='.$m[2].')';
-        }
-        if (count($dnFilter) > 1) {
-          $infos['filterRDN'] = '(&'.implode('', $dnFilter).')';
-        } else {
-          $infos['filterRDN'] = $dnFilter[0];
+        if ($parts !== FALSE) {
+          unset($parts['count']);
+          $dnFilter = [];
+          foreach ($parts as $part) {
+            preg_match('/([^=]+)=(.*)$/', $part, $m);
+            $dnFilter[] = '('.$m[1].':dn:='.$m[2].')';
+          }
+          if (count($dnFilter) > 1) {
+            $infos['filterRDN'] = '(&'.implode('', $dnFilter).')';
+          } else {
+            $infos['filterRDN'] = $dnFilter[0];
+          }
         }
       }
     }
@@ -359,22 +461,18 @@ class objects
     return $infos;
   }
 
-  static function isOfType ($attrs, $type)
+  static function isOfType ($attrs, string $type): bool
   {
     $filter = static::getFilterObject($type);
     return $filter($attrs);
   }
 
   /* This method allows to cache parsed filter in filterObject key in objectTypes */
-  static function getFilterObject ($type)
+  static function getFilterObject (string $type): ldapFilter
   {
     global $config;
 
-    if (!isset($config->data['OBJECTS'][strtoupper($type)])) {
-      throw new NonExistingObjectTypeException('Non-existing type "'.$type.'"');
-    }
-
-    $infos =& $config->data['OBJECTS'][strtoupper($type)];
+    $infos =& static::infos($type);
 
     if (!isset($infos['filterObject'])) {
       $infos['filterObject'] = ldapFilter::parse($infos['filter']);
@@ -382,7 +480,39 @@ class objects
     return $infos['filterObject'];
   }
 
-  static function types ()
+  /* This method allows to cache searched attributes list in objectTypes */
+  static function getSearchedAttributes (string $type): array
+  {
+    global $config;
+
+    $infos =& static::infos($type);
+
+    if (!isset($infos['searchAttributes'])) {
+      $searchAttrs = [];
+      if (!empty($infos['mainAttr'])) {
+        $searchAttrs[$infos['mainAttr']] = $infos['aclCategory'].'/'.$infos['mainTab'];
+      }
+      if (!empty($infos['nameAttr'])) {
+        $searchAttrs[$infos['nameAttr']] = $infos['aclCategory'].'/'.$infos['mainTab'];
+      }
+      foreach ($config->data['TABS'][$infos['tabGroup']] as $tab) {
+        if (!plugin_available($tab['CLASS'])) {
+          continue;
+        }
+        $plInfos = pluglist::pluginInfos($tab['CLASS']);
+        if (isset($plInfos['plSearchAttrs'])) {
+          foreach ($plInfos['plSearchAttrs'] as $attr) {
+            $searchAttrs[$attr] = $infos['aclCategory'].'/'.$tab['CLASS'];
+          }
+        }
+      }
+      $infos['searchAttributes'] = $searchAttrs;
+    }
+
+    return $infos['searchAttributes'];
+  }
+
+  static function types (): array
   {
     global $config;
     return array_keys($config->data['OBJECTS']);
@@ -390,14 +520,15 @@ class objects
 
   /* !\brief  This method returns a list of all available templates for the given type
    */
-  static function getTemplates ($type, $requiredPermissions = 'r', $filter = '')
+  static function getTemplates (string $type, string $requiredPermissions = 'r', string $filter = ''): array
   {
     global $config, $ui;
 
     $infos = static::infos($type);
 
-    $templates = [];
-    foreach ($config->departments as $key => $value) {
+    $templates    = [];
+    $departments  = $config->getDepartmentList();
+    foreach ($departments as $key => $value) {
       // Search all templates from the current dn.
       try {
         $ldap = static::search($type, ['cn'], $infos['ou'].$value, $filter, FALSE, 'subtree', TRUE);
@@ -407,10 +538,9 @@ class objects
       if ($ldap->count() != 0) {
         while ($attrs = $ldap->fetch()) {
           $dn = $attrs['dn'];
-          if ($requiredPermissions != '') {
-            if (!preg_match('/'.$requiredPermissions.'/', $ui->get_permissions($dn, $infos['aclCategory'].'/'.'template'))) {
-              continue;
-            }
+          if (($requiredPermissions != '')
+            && !preg_match('/'.$requiredPermissions.'/', $ui->get_permissions($dn, $infos['aclCategory'].'/'.'template'))) {
+            continue;
           }
           $templates[$dn] = $attrs['cn'][0].' - '.$key;
         }
@@ -421,5 +551,3 @@ class objects
     return $templates;
   }
 }
-
-?>
diff --git a/html/class_passwordRecovery.inc b/include/class_passwordRecovery.inc
similarity index 54%
rename from html/class_passwordRecovery.inc
rename to include/class_passwordRecovery.inc
index 8673e63e8266ca7f6a2c82d1de4aad3d32aecad1..1876a13431cf12596042f412272161bd967fea45 100644
--- a/html/class_passwordRecovery.inc
+++ b/include/class_passwordRecovery.inc
@@ -1,5 +1,4 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
@@ -20,261 +19,41 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-require_once("../include/php_setup.inc");
-require_once("functions.inc");
-require_once("variables.inc");
-
-/* base class for passwordRecovery and such classes handling requests on their own */
-class standAlonePage {
-  var $directory;
-  var $activated;
-  protected $interactive;
-
-  /* Constructor */
-  function __construct ($interactive = TRUE)
-  {
-    global $config, $ssl, $ui;
-
-    $this->interactive = $interactive;
-
-    if ($this->interactive) {
-      /* Destroy old session if exists.
-          Else you will get your old session back, if you not logged out correctly. */
-      session::destroy();
-      session::start();
-
-      /* Reset errors */
-      reset_errors();
-
-      $config = $this->loadConfig();
-
-      /* If SSL is forced, just forward to the SSL enabled site */
-      if (($config->get_cfg_value("forcessl") == "TRUE") && ($ssl != '')) {
-        header("Location: $ssl");
-        exit;
-      }
-
-      $this->setupSmarty();
-
-      $smarty = get_smarty();
-
-      /* Generate server list */
-      $servers = [];
-      foreach ($config->data['LOCATIONS'] as $key => $ignored) {
-        $servers[$key] = $key;
-      }
-
-      $smarty->assign("show_directory_chooser", FALSE);
-
-      if (isset($_POST['server'])) {
-        $this->directory = validate($_POST['server']);
-      } elseif (isset($_GET['directory']) && isset($servers[$_GET['directory']])) {
-        $this->directory = validate($_GET['directory']);
-      } else {
-        $this->directory = $config->data['MAIN']['DEFAULT'];
-
-        if (!isset($servers[$this->directory])) {
-          $this->directory = key($servers);
-        }
-
-        if (count($servers) > 1) {
-          $smarty->assign("show_directory_chooser", TRUE);
-          $smarty->assign("server_options", $servers);
-          $smarty->assign("server_id", $this->directory);
-        }
-      }
-
-      /* Set config to selected one */
-      $config->set_current($this->directory);
-      session::set('config', $config);
-    }
-
-    $this->activated = $this->readLdapConfig();
-    if (!$this->activated) { /* Password recovery has been disabled */
-      return;
-    }
-
-    if ($this->interactive) {
-      Language::init();
-
-      if (session::is_set('plist')) {
-        session::un_set('plist');
-      }
-      $ui = new fake_userinfo();
-      load_plist();
-
-      $ssl = $this->checkForSSL();
-
-      static::securityHeaders();
-    }
-  }
-
-  function loadConfig ()
-  {
-    global $BASE_DIR;
-
-    /* Check if CONFIG_FILE is accessible */
-    if (!is_readable(CONFIG_DIR."/".CONFIG_FILE)) {
-      msg_dialog::display(_("Fatal error"),
-                          sprintf(_("FusionDirectory configuration %s/%s is not readable. Aborted."),
-                                  CONFIG_DIR, CONFIG_FILE), FATAL_ERROR_DIALOG);
-      exit();
-    }
-
-    /* Parse configuration file */
-    $config = new config(CONFIG_DIR."/".CONFIG_FILE, $BASE_DIR);
-    session::set('DEBUGLEVEL', $config->get_cfg_value("debuglevel"));
-    @DEBUG(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, "config");
-    return $config;
-  }
-
-  function setupSmarty ()
-  {
-    global $config;
-    $smarty = get_smarty();
-
-    /* Set template compile directory */
-    $smarty->compile_dir = $config->get_cfg_value("templateCompileDirectory", SPOOL_DIR);
-
-    /* Check for compile directory */
-    if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))) {
-      msg_dialog::display(_("Configuration error"),
-                          sprintf(_("Directory '%s' specified as compile directory is not accessible!"),
-                                  $smarty->compile_dir),
-                          FATAL_ERROR_DIALOG);
-      exit();
-    }
-
-    /* Check for old files in compile directory */
-    clean_smarty_compile_dir($smarty->compile_dir);
-
-    $smarty->assign('date',     gmdate('D, d M Y H:i:s'));
-    $smarty->assign('params',   '');
-    $smarty->assign('message',  '');
-    $smarty->assign('changed',  FALSE);
-    $smarty->assign('revision', FD_VERSION);
-    $smarty->assign('year',     date('Y'));
-  }
-
-  function checkForSSL ()
-  {
-    global $config;
-    $smarty = get_smarty();
-
-    /* Check for SSL connection */
-    $ssl = '';
-    $smarty->assign('ssl', '');
-    if (!sslOn()) {
-      $ssl = sslUrl();
-
-      /* If SSL is forced, just forward to the SSL enabled site */
-      if ($config->get_cfg_value('forcessl') == 'TRUE') {
-        header("Location: $ssl");
-        exit;
-      } elseif ($config->get_cfg_value('warnssl') == 'TRUE') {
-        /* Display SSL mode warning? */
-        $smarty->assign('ssl', sprintf(_('Warning: <a href="%s">Session is not encrypted!</a>'), $ssl));
-      }
-    }
-
-    return $ssl;
-  }
-
-  function getPageURL ()
-  {
-    $protocol = 'http';
-    if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on')) {
-      $protocol .= 's';
-    }
-    $port = '80';
-    if (!empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
-      $host = $_SERVER['HTTP_X_FORWARDED_HOST'];
-      if (isset($_SERVER['HTTP_X_FORWARDED_PORT'])) {
-        $port = $_SERVER['HTTP_X_FORWARDED_PORT'];
-      }
-      if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
-        $protocol = $_SERVER['HTTP_X_FORWARDED_PROTO'];
-      }
-    } else {
-      $host = $_SERVER['SERVER_NAME'];
-      $port = $_SERVER['SERVER_PORT'];
-    }
-
-    $pageURL = $protocol.'://';
-    $pageURL .= $host;
-    if ($port != '80') {
-      $pageURL .= ':'.$port;
-    }
-    if (empty($_SERVER['PATH_INFO'])) {
-      $pageURL .= $_SERVER['PHP_SELF'];
-    } else {
-      $pageURL .= $_SERVER['PATH_INFO'];
-    }
-
-    return $pageURL;
-  }
-
-  function encodeParams ($keys)
-  {
-    $params = '';
-    foreach ($keys as $key) {
-      $params .= "&amp;$key=".urlencode($this->$key);
-    }
-    $params = preg_replace('/^&amp;/', '?', $params);
-    return $params;
-  }
-
-  static function securityHeaders ()
-  {
-    header('X-XSS-Protection: 1; mode=block');
-    header('X-Content-Type-Options: nosniff');
-    header('X-Frame-Options: deny');
-  }
-
-  static function generateRandomHash ()
-  {
-    /* Generate a very long random value */
-    $len        = 56;
-    $base       = 'ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz123456789';
-    $max        = strlen($base) - 1;
-    $randomhash = '';
-    while (strlen($randomhash) < $len + 1) {
-      $randomhash .= $base[random_int(0, $max)];
-    }
-    return $randomhash;
-  }
-}
-
-class passwordRecovery extends standAlonePage {
+class passwordRecovery extends standAlonePage
+{
   protected $loginAttribute;
   protected $login;
-  var $message = [];
-  var $email_address;
+  protected $email_address;
 
-  var $step = 1;
-
-  /* Some Configuration variable */
+  protected $message;
+  protected $step;
 
   /* Salt needed to mask the uniq id in the ldap */
-  var $salt;
+  protected $salt;
+
+  /* Uniq ID recovered from email */
+  protected $uniq;
+
   /* Delay allowed for the user to change his password (minutes) */
-  var $delay_allowed;
+  protected $delay_allowed;
 
   /* Sender */
-  var $from_mail;
+  protected $from_mail;
 
-  var $mail_body;
-  var $mail_subject;
+  protected $mail_body;
+  protected $mail_subject;
 
-  var $mail2_body;
-  var $mail2_subject;
+  protected $mail2_body;
+  protected $mail2_subject;
 
-  var $usealternates;
+  protected $usealternates;
 
-  /* Constructor */
-  function __construct ($interactive = TRUE)
+  function init ()
   {
-    parent::__construct($interactive);
+    parent::init();
+
+    $this->step     = 1;
+    $this->message  = [];
 
     if (isset($_GET['email_address']) && ($_GET['email_address'] != '')) {
       $this->email_address = validate($_GET['email_address']);
@@ -292,7 +71,7 @@ class passwordRecovery extends standAlonePage {
     }
   }
 
-  function execute ()
+  function readPost ()
   {
     if (!$this->activated) {
       return;
@@ -308,7 +87,7 @@ class passwordRecovery extends standAlonePage {
         $this->step4();
       } elseif (isset($_POST['apply'])) {
         if ($_POST['email_address'] == '') {
-          $this->message[] = msgPool::required(_('Email address'));
+          $this->message[] = new FusionDirectoryError(msgPool::required(_('Email address')));
           return;
         }
         $this->email_address = $_POST['email_address'];
@@ -324,40 +103,27 @@ class passwordRecovery extends standAlonePage {
     }
   }
 
-  function displayPWchanger ()
+  function execute ()
   {
-    global $error_collector, $error_collector_mailto;
+    $this->readPost();
+
     /* Do we need to show error messages? */
     if (count($this->message) != 0) {
       /* Show error message and continue editing */
       msg_dialog::displayChecks($this->message);
     }
 
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->step, "Step");
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->step, "Step");
 
     $smarty = get_smarty();
 
-    $smarty->assign("PHPSESSID", session_id());
-    if (session::is_set('errors')) {
-      $smarty->assign("errors", session::get('errors'));
-    }
-    if ($error_collector != "") {
-      $smarty->assign("php_errors", preg_replace("/%BUGBODY%/", $error_collector_mailto, $error_collector)."</div>");
-    } else {
-      $smarty->assign("php_errors", "");
-    }
+    $this->assignSmartyVars();
 
-    $smarty->assign('msg_dialogs',  msg_dialog::get_dialogs());
-    $smarty->assign('usePrototype', 'FALSE');
     $smarty->append('js_files',     'include/pwdStrength.js');
     $smarty->append('css_files',    get_template_path('login.css'));
-    $lang = session::get('lang');
-    $smarty->assign('lang', preg_replace('/_.*$/', '', $lang));
-    $smarty->assign('rtl', Language::isRTL($lang));
     $smarty->assign('title',        _('Password recovery'));
     $smarty->display(get_template_path('headers.tpl'));
 
-    $smarty->assign('version',        FD_VERSION);
     $smarty->assign('step',           $this->step);
     $smarty->assign('delay_allowed',  $this->delay_allowed);
     $smarty->assign('activated',      $this->activated);
@@ -369,7 +135,7 @@ class passwordRecovery extends standAlonePage {
   /* Check that password recovery is activated, read config in ldap
    * Returns a boolean saying if password recovery is activated
    */
-  function readLdapConfig ()
+  protected function readLdapConfig (): bool
   {
     global $config;
     $this->salt           = $config->get_cfg_value('passwordRecoverySalt');
@@ -386,7 +152,7 @@ class passwordRecovery extends standAlonePage {
 
     $this->loginAttribute = $config->get_cfg_value('passwordRecoveryLoginAttribute', 'uid');
 
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $config->get_cfg_value('passwordRecoveryActivated'), "passwordRecoveryActivated");
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $config->get_cfg_value('passwordRecoveryActivated'), "passwordRecoveryActivated");
     return ($config->get_cfg_value('passwordRecoveryActivated') == "TRUE");
   }
 
@@ -405,10 +171,10 @@ class passwordRecovery extends standAlonePage {
     if (!$ldap->count()) {
       /* It's not, let's create it */
       $ldap->cd($config->current['BASE']);
-      $ldap->create_missing_trees($token);
-      if (!$ldap->success()) {
-        return msgPool::ldaperror($ldap->get_error(),
-                                  $token, LDAP_MOD, get_class());
+      try {
+        $ldap->create_missing_trees($token);
+      } catch (FusionDirectoryError $error) {
+        return $error;
       }
       fusiondirectory_log("Created token branch ".$token);
     }
@@ -431,11 +197,17 @@ class passwordRecovery extends standAlonePage {
     }
 
     if (!$ldap->success()) {
-      return msgPool::ldaperror($ldap->get_error(),
-                                $dn, LDAP_ADD, get_class());
+      return new SimplePluginLdapError(
+        NULL,
+        $dn,
+        ($add ? LDAP_ADD : LDAP_MOD),
+        $ldap->get_error(),
+        $ldap->get_errno()
+      );
     }
 
-    return ""; /* Everything went well */
+    /* Everything went well */
+    return NULL;
   }
 
   function checkToken ($token)
@@ -478,10 +250,10 @@ class passwordRecovery extends standAlonePage {
     $ldap->search($filter, ['dn']);
 
     if ($ldap->count() < 1) {
-      $this->message[] = sprintf(_('Did not find an account with login "%s"'), htmlentities($this->login, ENT_COMPAT, 'UTF-8'));
+      $this->message[] = new FusionDirectoryError(htmlescape(sprintf(_('Did not find an account with login "%s"'), $this->login)));
       return;
     } elseif ($ldap->count() > 1) {
-      $this->message[] = sprintf(_('Found multiple accounts with login "%s"'), htmlentities($this->login, ENT_COMPAT, 'UTF-8'));
+      $this->message[] = new FusionDirectoryError(htmlescape(sprintf(_('Found multiple accounts with login "%s"'), $this->login)));
       return;
     }
 
@@ -491,10 +263,15 @@ class passwordRecovery extends standAlonePage {
   }
 
   /* Find the login of for the given email address */
-  function step2 ()
+  function step2 ($email = NULL)
   {
     global $config;
 
+    if ($email !== NULL) {
+      /* Special case when recovery is called from webservice */
+      $this->email_address = $email;
+    }
+
     /* Search login corresponding to the mail */
     $address_escaped = ldap_escape_f($this->email_address);
     if ($this->usealternates) {
@@ -514,19 +291,19 @@ class passwordRecovery extends standAlonePage {
 
     /* Only one ldap node should be found */
     if ($ldap->count() < 1) {
-      $this->message[] = sprintf(_('There is no account using email "%s"'), htmlentities($this->email_address, ENT_COMPAT, 'UTF-8'));
-      return;
+      $this->message[] = new FusionDirectoryError(htmlescape(sprintf(_('There is no account using email "%s"'), $this->email_address)));
+      return FALSE;
     } elseif ($ldap->count() > 1) {
-      $this->message[] = sprintf(_('There are several accounts using email "%s"'), htmlentities($this->email_address, ENT_COMPAT, 'UTF-8'));
-      return;
+      $this->message[] = new FusionDirectoryError(htmlescape(sprintf(_('There are several accounts using email "%s"'), $this->email_address)));
+      return FALSE;
     }
 
     $attrs = $ldap->fetch();
 
     $method = passwordMethod::get_method($attrs['userPassword'][0], $attrs['dn']);
     if (is_object($method) && $method->is_locked($attrs['dn'])) {
-      $this->message[] = sprintf(_('The user using email "%s" is locked. Please contact your administrator.'), htmlentities($this->email_address, ENT_COMPAT, 'UTF-8'));
-      return;
+      $this->message[] = new FusionDirectoryError(htmlescape(sprintf(_('The user using email "%s" is locked. Please contact your administrator.'), $this->email_address)));
+      return FALSE;
     }
     $this->login  = $attrs[$this->loginAttribute][0];
     $this->step   = 2;
@@ -567,20 +344,20 @@ class passwordRecovery extends standAlonePage {
       return;
     }
 
-    $reinit_link = $this->getPageURL();
+    $reinit_link = URL::getPageURL();
     $reinit_link .= '?uniq='.urlencode($token);
     $reinit_link .= '&login='.urlencode($this->login);
     $reinit_link .= '&email_address='.urlencode($this->email_address);
 
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $reinit_link, 'Setting link to');
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $reinit_link, 'Setting link to');
 
     /* Send the mail */
-    $mail_body = sprintf($this->mail_body, $this->login, $reinit_link);
+    $body = sprintf($this->mail_body, $this->login, $reinit_link);
 
-    if (mail_utf8($this->email_address, FALSE, $this->from_mail, $this->mail_subject, $mail_body)) {
+    if (mail_utf8($this->email_address, FALSE, $this->from_mail, $this->mail_subject, $body)) {
       $this->step = 3;
     } else {
-      $this->message[] = _('Contact your administrator, there was a problem with mail server');
+      $this->message[] = new FusionDirectoryError(htmlescape(_('Contact your administrator, there was a problem with the mail server')));
     }
     $smarty = get_smarty();
 
@@ -593,7 +370,7 @@ class passwordRecovery extends standAlonePage {
     $uniq_id_from_mail = validate($_GET['uniq']);
 
     if (!$this->checkToken($uniq_id_from_mail)) {
-      $this->message[] = _("This token is invalid");
+      $this->message[] = new FusionDirectoryError(htmlescape(_('This token is invalid')));
       return;
     }
 
@@ -629,7 +406,7 @@ class passwordRecovery extends standAlonePage {
     ];
 
     /* Is there any problem with entered passwords? */
-    $userTabs->save_object();
+    $userTabs->update();
     $errors = $userTabs->save();
     if (!empty($errors)) {
       $this->message = $errors;
@@ -650,16 +427,29 @@ class passwordRecovery extends standAlonePage {
     }
 
     /* Send the mail */
-    $mail_body = sprintf($this->mail2_body, $this->login);
+    $body = sprintf($this->mail2_body, $this->login);
 
-    if (mail_utf8($this->email_address, FALSE, $this->from_mail, $this->mail2_subject, $mail_body)) {
+    if (mail_utf8($this->email_address, FALSE, $this->from_mail, $this->mail2_subject, $body)) {
       $smarty = get_smarty();
       $this->step = 5;
       $smarty->assign('changed', TRUE);
     } else {
-      $this->message[] = _('There was a problem with mail server, confirmation email not sent');
+      $this->message[] = new FusionDirectoryError(htmlescape(_('There was a problem with the mail server, confirmation email not sent')));
     }
   }
-}
 
-?>
+  function getErrorMessages (): array
+  {
+    return $this->message;
+  }
+
+  function setLogin (string $login)
+  {
+    $this->login = $login;
+  }
+
+  function getLogin ()
+  {
+    return $this->login;
+  }
+}
diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc
index a725ea4d6f05a4b732ea6cc210f2c787d85522f6..78d652011fa213284b7255f06e3d6480f3273fb2 100644
--- a/include/class_pluglist.inc
+++ b/include/class_pluglist.inc
@@ -1,9 +1,8 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -31,10 +30,10 @@
  *
  * \see class_plugin
  */
-class pluglist {
-  var $menu             = "";
-  var $iconmenu         = "";
-  var $current          = "";
+class pluglist
+{
+  var $menu           = '';
+  protected $iconmenu = '';
 
   /*!
    * \brief The plInfo result for all plugin, using class as key.
@@ -55,8 +54,8 @@ class pluglist {
   /*!
    * \brief List plugin indexes of all plugin that the user have acl for
    */
-  var $allowed_plugins  = [];
-  var $silly_cache      = [];
+  protected $allowed_plugins  = [];
+  protected $silly_cache      = [];
 
   /*!
    * \brief List the plugins
@@ -150,6 +149,20 @@ class pluglist {
         if (!isset($infos['plTitle']) && isset($infos['plShortName'])) {
           $infos['plTitle'] = $infos['plShortName'];
         }
+        if (!empty($infos['plObjectClass']) && !isset($infos['plFilter'])) {
+          if (count($infos['plObjectClass']) == 1) {
+            $infos['plFilter'] = '(objectClass='.$infos['plObjectClass'][0].')';
+          } else {
+            $infos['plFilter'] = '(&(objectClass='.implode(')(objectClass=', $infos['plObjectClass']).'))';
+          }
+        }
+        if (isset($infos['plFilter'])) {
+          $infos['plFilterObject'] = ldapFilter::parse($infos['plFilter']);
+        }
+        if (isset($infos['plObjectType']) && !isset($infos['plPriority']) && !is_numeric(key($infos['plObjectType']))) {
+          /* Set main tab priority to 0 */
+          $infos['plPriority'] = 0;
+        }
         $infos['plForeignRefs']         = [];
         $infos['INDEX']                 = $index;
         $this->info[$cname]             = $infos;
@@ -352,7 +365,7 @@ class pluglist {
           if (isset($info['CLASS']) && plugin_available($info['CLASS'])) {
             $index  = $this->get_index($info['CLASS']);
             $this->allowed_plugins[$index] = $index;
-            list($plHeadline, $plDescription, $href, ) = $this->get_infos($info['CLASS']);
+            list ($plHeadline, $plDescription, $href, ) = $this->get_infos($info['CLASS']);
             $id             = $info['CLASS'];
           } elseif (!isset($info['CLASS'])) {
             $plHeadline     = $info['TITLE'];
@@ -364,12 +377,12 @@ class pluglist {
           }
 
           $entries .= '<li class="menuitem" id="menuitem_'.$id.'">';
-          $entries .= '<a href="'.$href.'" title="'.$plDescription.'">'.$plHeadline.'</a></li>'."\n";
+          $entries .= '<a href="'.$href.'" title="'.htmlescape($plDescription).'">'.htmlescape($plHeadline).'</a></li>'."\n";
         }
 
         /* Append to menu */
         if ($entries != "") {
-          $this->menu .= '<li><a>'.$section_infos['NAME']."</a>\n<ul>\n".$entries."\n</ul></li>\n";
+          $this->menu .= '<li><a>'.htmlescape($section_infos['NAME'])."</a>\n<ul>\n".$entries."\n</ul></li>\n";
         }
       }
       $this->menu .= '</ul>'."\n";
@@ -405,10 +418,9 @@ class pluglist {
 
       /* Parse headlines */
       foreach ($config->data['SECTIONS'] as $section => $section_infos) {
-        $entries  = '';
-        $menu     = '';
-        $menu     = '<div class="iconmenu-section"><h1 class="menuheader">';
-        $menu     .= $section_infos['NAME']."</h1>\n";
+        $entries      = '';
+        $sectionMenu  = '<div class="iconmenu-section"><h1 class="menuheader">';
+        $sectionMenu  .= htmlescape($section_infos['NAME'])."</h1>\n";
 
         foreach ($config->data['MENU'][$section] as $info) {
           if (!$this->check_access($info)) {
@@ -416,7 +428,7 @@ class pluglist {
           }
           if (isset($info['CLASS']) && plugin_available($info['CLASS'])) {
             /* Read information from class variable */
-            list($plHeadline, $plDescription, $href, $plIcon) = $this->get_infos($info['CLASS']);
+            list ($plHeadline, $plDescription, $href, $plIcon) = $this->get_infos($info['CLASS']);
             $id             = $info['CLASS'];
           } elseif (!isset($info['CLASS'])) {
             $plHeadline     = $info['TITLE'];
@@ -430,19 +442,19 @@ class pluglist {
 
           /* Load icon */
           if (isset($info['CLASS']) && !preg_match("/\//", $plIcon) && !preg_match("/^geticon/", $plIcon)) {
-            $image = get_template_path("plugins/".preg_replace('%^.*/([^/]+)/[^/]+$%', '\1', $class_mapping[$info['CLASS']])."/images/$plIcon");
+            $image = get_template_path('plugins/'.preg_replace('%^.*/([^/]+)/[^/]+$%', '\1', $class_mapping[$info['CLASS']]).'/images/'.$plIcon);
           } else {
-            $image = htmlentities($plIcon, ENT_COMPAT, 'UTF-8');
+            $image = $plIcon;
           }
 
-          $entries  .= '<div class="iconmenu" id="menuitem_icon_'.$id.'" onClick=\'location.href="'.$href.'"\' title="'.$plDescription.'">';
-          $item     = '<div class="imgcontainer"><img src="'.$image.'" alt=""/></div><span>&nbsp;'.$plHeadline.'</span>';
+          $entries  .= '<div class="iconmenu" id="menuitem_icon_'.$id.'" onClick=\'location.href="'.$href.'"\' title="'.htmlescape($plDescription).'">';
+          $item     = '<div class="imgcontainer"><img src="'.htmlescape($image).'" alt=""/></div><span>&nbsp;'.htmlescape($plHeadline).'</span>';
           $entries  .= $item."</div>\n";
         }
 
         /* Append to menu */
         if ($entries != "") {
-          $this->iconmenu .= $menu.$entries."</div>\n";
+          $this->iconmenu .= $sectionMenu.$entries."</div>\n";
         }
       }
     }
@@ -492,13 +504,98 @@ class pluglist {
     return isset($this->allowed_plugins[$plug_id]);
   }
 
+  /*!
+   * \brief Resets menu and ACL cache
+   *
+   * Called when user ACL rights may have changed
+   */
+  public function resetCache ()
+  {
+    $this->menu             = '';
+    $this->iconmenu         = '';
+    $this->silly_cache      = [];
+    $this->allowed_plugins  = [];
+  }
+
   static function pluginInfos ($cname)
   {
     $plist = session::get('plist');
     if ($plist) {
+      if (!isset($plist->info[$cname])) {
+        throw new UnknownClassException($cname);
+      }
       return $plist->info[$cname];
     } else {
       trigger_error('plist not loaded yet');
     }
   }
+
+  /*!
+   * \brief Loads plist and load it in config object
+   */
+  static function load ()
+  {
+    global $config, $plist;
+    if (!session::is_set('plist')) {
+      /* Initially load all classes */
+      load_all_classes();
+
+      $plist = new pluglist();
+      session::set('plist', $plist);
+      $config->loadPlist($plist);
+      $config->resetDepartmentCache();
+    } else {
+      $plist = session::get('plist');
+    }
+
+    return $plist;
+  }
+
+  static function runMainInc ($index, $forceCleanup = FALSE)
+  {
+    global $BASE_DIR, $config, $plist, $ui, $smarty, $display, $remove_lock, $cleanup, $plug;
+
+    if ($index == 'welcome') {
+      $plugin_dir = "$BASE_DIR/plugins/generic/welcome";
+      $plugin     = $index;
+    } else {
+      $plugin_dir = $plist->get_path($index);
+      $plugin     = $plist->dirlist[$index];
+    }
+    /* Used by get_template_path */
+    session::set('plugin_dir', $plugin_dir);
+
+    try {
+      if ($forceCleanup) {
+        $cleanup = $remove_lock = TRUE;
+      }
+      if (is_file("$plugin_dir/main.inc")) {
+        $display = '';
+        require("$plugin_dir/main.inc");
+      } elseif (is_callable([$plugin, 'mainInc'])) {
+        $plugin::mainInc();
+      } else {
+        throw new FatalError(
+          htmlescape(sprintf(
+            _('Fatal error: Cannot find any plugin definitions for plugin "%s" ("%s" is not a file)!'),
+            $plugin,
+            "$plugin_dir/main.inc"
+          ))
+        );
+      }
+      if ($forceCleanup) {
+        $cleanup = $remove_lock = FALSE;
+      }
+    } catch (Exception $e) {
+      $smarty->assign('headline',       _('Fatal error!'));
+      $smarty->assign('headline_image', 'geticon.php?context=status&icon=dialog-error&size=32');
+      $display = '<h1>'.htmlescape(_('An unrecoverable error occurred. Please contact your administator.')).'</h1><p>';
+      if (ini_get('display_errors') == 1) {
+        $display .= nl2br(htmlescape((string)$e));
+      } else {
+        $display .= 'Error detail display is turned off.';
+      }
+      $display .= '</p>'."\n";
+    }
+  }
 }
diff --git a/include/class_session.inc b/include/class_session.inc
index d04becdfb0124c8886874e91e4232b22bd6c2175..f87466c96c0c6d3c594d563f0171b7f98c7e0d71 100644
--- a/include/class_session.inc
+++ b/include/class_session.inc
@@ -27,7 +27,8 @@
 /*!
  * \brief This class contains all the function needed to manage sessions
  */
-class session {
+class session
+{
   /*!
    * \brief Check if the name of the session is set
    *
@@ -95,8 +96,7 @@ class session {
    */
   public static function &get_ref ($name)
   {
-    $ret = &$_SESSION[$name];
-    return $ret;
+    return $_SESSION[$name];
   }
 
   /*!
@@ -184,18 +184,35 @@ class session {
   /*!
    * \brief Destroy a session
    */
-  public static function destroy ()
+  public static function destroy (string $reason = '')
   {
-    @session_destroy();
-  }
+    global $ui;
 
-  /*!
-   * \brief Get all sessions
-   */
-  public static function &get_all ()
-  {
-    $ret = &$_SESSION;
-    return $ret;
+    if (!isset($ui)) {
+      $ui = static::get('ui');
+    }
+
+    try {
+      if (isset($ui)) {
+        logging::log(
+          'security',
+          'logout',
+          $ui->uid,
+          [],
+          sprintf('Logged out (%s)', $reason)
+        );
+      } elseif (!empty($reason)) {
+        logging::log(
+          'security',
+          'session',
+          '',
+          [],
+          sprintf('Session destroyed (%s)', $reason)
+        );
+      }
+    } catch (Exception $e) {
+      /* Ignore exceptions here */
+    }
+    @session_destroy();
   }
 }
-?>
diff --git a/include/class_standAlonePage.inc b/include/class_standAlonePage.inc
new file mode 100644
index 0000000000000000000000000000000000000000..91ac1aab6429f6821d6a55014713e0982ad538b3
--- /dev/null
+++ b/include/class_standAlonePage.inc
@@ -0,0 +1,272 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/* base class for passwordRecovery and such classes handling requests on their own */
+abstract class standAlonePage
+{
+  protected $directories;
+  protected $directory;
+  protected $activated;
+  protected $interactive;
+
+  /* Constructor */
+  function __construct ($interactive = TRUE)
+  {
+    global $config, $ssl, $ui;
+
+    $this->interactive = $interactive;
+
+    if ($this->interactive) {
+      /* Destroy old session if exists.
+          Else you will get your old session back, if you not logged out correctly. */
+      session::destroy();
+      session::start();
+
+      $config = $this->loadConfig();
+      session::set('config', $config);
+
+      /* Generate server list */
+      $this->directories = [];
+      foreach ($config->data['LOCATIONS'] as $key => $ignored) {
+        $this->directories[$key] = $key;
+      }
+
+      $ui = new userinfoNoAuth(get_class($this));
+      session::set('ui', $ui);
+    }
+
+    static::init();
+  }
+
+  abstract protected function readLdapConfig (): bool;
+
+  function checkDirectoryChooser ()
+  {
+    global $config;
+
+    $olddirectory = $this->directory;
+
+    if (isset($_POST['server']) && isset($this->directories[$_POST['server']])) {
+      $this->directory = validate($_POST['server']);
+    } elseif (isset($_GET['directory']) && isset($this->directories[$_GET['directory']])) {
+      $this->directory = validate($_GET['directory']);
+    } elseif (empty($this->directory)) {
+      $this->directory = $config->data['MAIN']['DEFAULT'];
+
+      if (!isset($this->directories[$this->directory])) {
+        $this->directory = key($this->directories);
+      }
+    }
+
+    if ($this->directory != $olddirectory) {
+      /* Set config to selected one */
+      $config->set_current($this->directory);
+
+      $this->activated = $this->readLdapConfig();
+    }
+  }
+
+  function init ()
+  {
+    global $config, $ssl, $ui;
+
+    if (!$this->interactive) {
+      $this->activated = $this->readLdapConfig();
+      return;
+    }
+
+    static::checkDirectoryChooser();
+
+    reset_errors();
+
+    static::securityHeaders();
+
+    CSRFProtection::check();
+
+    $ui     = session::get('ui');
+    $config = session::get('config');
+
+    timezone::setDefaultTimezoneFromConfig();
+
+    Language::init();
+
+    $this->setupSmarty();
+
+    $ssl = $this->checkForSSL();
+
+    /* Prepare plugin list */
+    pluglist::load();
+  }
+
+  function loadConfig ()
+  {
+    global $BASE_DIR;
+
+    /* Check if CONFIG_FILE is accessible */
+    if (!is_readable(CONFIG_DIR.'/'.CONFIG_FILE)) {
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('FusionDirectory configuration %s/%s is not readable. Aborted.'),
+          CONFIG_DIR,
+          CONFIG_FILE
+        ))
+      );
+    }
+
+    /* Parse configuration file */
+    $config = new config(CONFIG_DIR.'/'.CONFIG_FILE, $BASE_DIR);
+    session::set('DEBUGLEVEL', $config->get_cfg_value('debuglevel'));
+    logging::debug(DEBUG_CONFIG, __LINE__, __FUNCTION__, __FILE__, $config->data, 'config');
+    return $config;
+  }
+
+  function setupSmarty ()
+  {
+    global $config;
+
+    $smarty = get_smarty();
+
+    /* Set template compile directory */
+    $smarty->compile_dir = $config->get_cfg_value('templateCompileDirectory', SPOOL_DIR);
+
+    /* Check for compile directory */
+    if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))) {
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('Directory "%s" specified as compile directory is not accessible!'),
+          $smarty->compile_dir
+        ))
+      );
+    }
+
+    /* Check for old files in compile directory */
+    clean_smarty_compile_dir($smarty->compile_dir);
+
+    $smarty->assign('date',       gmdate('D, d M Y H:i:s'));
+    $smarty->assign('params',     '');
+    $smarty->assign('message',    '');
+    $smarty->assign('changed',    FALSE);
+    $smarty->assign('copynotice', copynotice());
+
+    $lang = session::get('lang');
+    $smarty->assign('lang',         preg_replace('/_.*$/', '', $lang));
+    $smarty->assign('rtl',          Language::isRTL($lang));
+    $smarty->assign('usePrototype', 'FALSE');
+    $smarty->assign('CSRFtoken',    CSRFProtection::getToken());
+
+    if (count($this->directories) > 1) {
+      $smarty->assign('show_directory_chooser', TRUE);
+      $smarty->assign('server_options',         $this->directories);
+      $smarty->assign('server_id',              $this->directory);
+    } else {
+      $smarty->assign('show_directory_chooser', FALSE);
+    }
+  }
+
+  function assignSmartyVars ()
+  {
+    global $error_collector, $error_collector_mailto;
+    $smarty = get_smarty();
+
+    $smarty->assign('PHPSESSID', session_id());
+    if ($error_collector != '') {
+      $smarty->assign('php_errors', preg_replace('/%BUGBODY%/', $error_collector_mailto, $error_collector).'</div>');
+    } else {
+      $smarty->assign('php_errors', '');
+    }
+
+    $smarty->assign('msg_dialogs',  msg_dialog::get_dialogs());
+  }
+
+  function checkForSSL ()
+  {
+    global $config;
+    $smarty = get_smarty();
+
+    /* Check for SSL connection */
+    $ssl = '';
+    $smarty->assign('ssl', '');
+    if (!URL::sslOn()) {
+      $ssl = URL::getSslUrl();
+
+      /* If SSL is forced, just forward to the SSL enabled site */
+      if ($config->get_cfg_value('forcessl') == 'TRUE') {
+        header("Location: $ssl");
+        exit;
+      } elseif ($config->get_cfg_value('warnssl') == 'TRUE') {
+        /* Display SSL mode warning? */
+        $smarty->assign('ssl', sprintf(htmlescape(_('Warning: %sSession is not encrypted!%s')), '<a href="'.$ssl.'">', '</a>'));
+      }
+    }
+
+    return $ssl;
+  }
+
+  function encodeParams ($keys)
+  {
+    $params = '';
+    foreach ($keys as $key) {
+      $params .= "&amp;$key=".urlencode($this->$key);
+    }
+    return preg_replace('/^&amp;/', '?', $params);
+  }
+
+  public function isActivated ()
+  {
+    return $this->activated;
+  }
+
+  static function run ()
+  {
+    session::start();
+
+    $class = get_called_class();
+    if (session::is_set('standAlonePage_'.$class)) {
+      $page = session::get('standAlonePage_'.$class);
+      $page->init();
+    } else {
+      $page = new $class();
+    }
+    session::set('standAlonePage_'.$class, $page);
+
+    $page->execute();
+  }
+
+  static function securityHeaders ()
+  {
+    header('X-XSS-Protection: 1; mode=block');
+    header('X-Content-Type-Options: nosniff');
+    header('X-Frame-Options: deny');
+  }
+
+  static function generateRandomHash ()
+  {
+    /* Generate a very long random value */
+    $len        = 56;
+    $base       = 'ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz123456789';
+    $max        = strlen($base) - 1;
+    $randomhash = '';
+    while (strlen($randomhash) < $len + 1) {
+      $randomhash .= $base[random_int(0, $max)];
+    }
+    return $randomhash;
+  }
+}
diff --git a/include/class_template.inc b/include/class_template.inc
index b923f86f0e6c31581d7dfe13d9923330d38746b7..f971eb40ea9105be31b350ca16cd7e0c50f20e22 100644
--- a/include/class_template.inc
+++ b/include/class_template.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2014-2018  FusionDirectory
+  Copyright (C) 2014-2020  FusionDirectory
 
   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
@@ -24,7 +24,7 @@
  */
 
 /*! \brief Class for applying a template */
-class template
+class template implements FusionDirectoryDialog
 {
   protected $type;
   protected $dn;
@@ -68,24 +68,20 @@ class template
     return $result;
   }
 
-  function __construct ($type, $dn, $targetdn = NULL)
+  function __construct ($type, $dn)
   {
     $this->type = $type;
     $this->dn   = $dn;
     list($this->attrs, $depends) = templateHandling::fetch($this->dn);
     $this->needed     = templateHandling::neededAttrs($this->attrs, $depends);
     $this->needed[]   = 'base';
-    if ($targetdn === NULL) {
-      $this->tabObject  = objects::create($this->type);
-    } else {
-      trigger_error("This should not be used for now");
-      $this->tabObject  = objects::open($this->dn, $this->type);
-    }
-    $tempTabObject    = objects::open($this->dn, $this->type); /* Used to know which tab is activated */
-    $this->attributes = [];
+    $this->tabObject  = objects::create($this->type);
+    /* Used to know which tab is activated */
+    $tempTabObject    = objects::open($this->dn, $this->type);
     $tempTabObject->setActiveTabs($this->tabObject);
+    $this->attributes = [];
     foreach ($this->tabObject->by_object as $class => $tab) {
-      if ($tab->is_account || $tab->ignore_account) {
+      if ($tab->isActive()) {
         $this->attributes[$class] = [];
         $attrs = array_unique(array_merge($tab->getRequiredAttributes(), $this->needed));
         foreach (array_keys($tab->attributesAccess) as $attr) {
@@ -96,6 +92,10 @@ class template
             $this->attributes[$class][] = $attr;
           }
         }
+        if (empty($this->attributes[$class])) {
+          /* Do not show empty sections */
+          unset($this->attributes[$class]);
+        }
       }
     }
   }
@@ -110,11 +110,7 @@ class template
     $this->tabObject  = objects::create($this->type);
     /* Used to know which tab is activated */
     $tempTabObject    = objects::open($this->dn, $this->type);
-    foreach ($tempTabObject->by_object as $class => $plugin) {
-      if ($plugin->is_account || $plugin->ignore_account) {
-        $this->tabObject->by_object[$class]->is_account = $plugin->is_account;
-      }
-    }
+    $tempTabObject->setActiveTabs($this->tabObject);
     $this->applied = FALSE;
   }
 
@@ -133,28 +129,75 @@ class template
     }
   }
 
-  function getNeeded ()
+  function getNeeded (): array
   {
     return $this->attributes;
   }
 
+  function alterAttributes ($mandatories, $readonly, $hidden)
+  {
+    foreach ($mandatories as $class => $attrs) {
+      foreach ($attrs as $attr) {
+        if (!in_array($attr, $this->attributes[$class])) {
+          $this->attributes[$class][] = $attr;
+        }
+        $this->tabObject->by_object[$class]->attributesAccess[$attr]->setRequired(TRUE);
+      }
+    }
+    foreach ($readonly as $class => $attrs) {
+      foreach ($attrs as $attr) {
+        if (!in_array($attr, $this->attributes[$class])) {
+          $this->attributes[$class][] = $attr;
+        }
+        $this->tabObject->by_object[$class]->attributesAccess[$attr]->setDisabled(TRUE);
+      }
+    }
+    foreach ($hidden as $class => $attrs) {
+      foreach ($attrs as $attr) {
+        if (!in_array($attr, $this->attributes[$class])) {
+          $this->attributes[$class][] = $attr;
+        }
+        $this->tabObject->by_object[$class]->attributesAccess[$attr]->setDisabled(TRUE);
+        $this->tabObject->by_object[$class]->attributesAccess[$attr]->setVisible(FALSE);
+      }
+    }
+  }
+
+  function getAttribute ($tab, $attr)
+  {
+    return $this->tabObject->by_object[$tab]->attributesAccess[$attr];
+  }
+
+  function getAttributeTab ($attr)
+  {
+    foreach ($this->tabObject->by_object as $tab => $tabObject) {
+      if (isset($tabObject->attributesAccess[$attr])) {
+        return $tab;
+      }
+    }
+  }
+
+  /*! \brief Serialize this template for webservice
+   */
   function serialize ()
   {
-    $attributes = [];
+    $ret = [];
     foreach ($this->tabObject->by_object as $class => $plugin) {
       if (!isset($this->attributes[$class])) {
         continue;
       }
-      $attributes[$class] = ['name' => $this->tabObject->by_name[$class], 'attrs' => []];
+      $ret[$class] = ['name' => $this->tabObject->by_name[$class], 'attrs' => []];
       foreach ($this->attributes[$class] as $attr) {
-        $plugin->attributesAccess[$attr]->serializeAttribute($attributes[$class]['attrs'], FALSE);
+        $plugin->attributesAccess[$attr]->serializeAttribute($ret[$class]['attrs'], FALSE);
       }
-      $attributes[$class]['attrs_order'] = array_keys($attributes[$class]['attrs']);
+      $ret[$class]['attrs_order'] = array_keys($ret[$class]['attrs']);
     }
 
-    return $attributes;
+    return $ret;
   }
 
+  /*! \brief Deserialize values into the template
+   */
   function deserialize ($values)
   {
     foreach ($values as $class => $class_values) {
@@ -166,19 +209,58 @@ class template
     return TRUE;
   }
 
-  function save_object ()
+  /*! \brief Get all attribute values
+   *
+   *  this produces a format that you can send to setValues later (after a reset for instance)
+   */
+  function getValues ()
+  {
+    $ret = [];
+    foreach ($this->tabObject->by_object as $class => $plugin) {
+      $ret[$class] = [];
+      foreach ($plugin->attributesAccess as $name => $attr) {
+        $ret[$class][$name] = $attr->getValue();
+      }
+    }
+
+    return $ret;
+  }
+
+  /*! \brief Set values
+   */
+  function setValues ($values, $ldapFormat = FALSE)
+  {
+    foreach ($values as $class => $class_values) {
+      foreach ($class_values as $name => $value) {
+        if ($ldapFormat) {
+          $value = $this->tabObject->by_object[$class]->attributesAccess[$name]->inputValue($value);
+        }
+        $this->tabObject->by_object[$class]->attributesAccess[$name]->setValue($value);
+      }
+    }
+  }
+
+  public function readPost ()
   {
     foreach ($this->tabObject->by_object as $plugin) {
-      $plugin->save_object();
+      $plugin->readPost();
     }
   }
 
+  public function update (): bool
+  {
+    foreach ($this->tabObject->by_object as $plugin) {
+      $plugin->update();
+    }
+    return TRUE;
+  }
+
   public function dialogOpened ()
   {
     return $this->tabObject->dialogOpened();
   }
 
-  function execute ()
+  public function render (): string
   {
     $smarty   = get_smarty();
     $sections = [];
@@ -189,27 +271,24 @@ class template
         continue;
       }
       if ($plugin->is_modal_dialog()) {
-        $dialogResult = $plugin->dialog->execute();
-        if ($dialogResult === FALSE) {
-          $plugin->closeDialog();
-        } else {
-          $this->tabObject->current = $class;
-          return $dialogResult;
-        }
+        $this->tabObject->current = $class;
+        return $plugin->render();
       }
-      $attributes = [];
+      $attributesRendered = [];
       foreach ($this->attributes[$class] as $attr) {
         if ($plugin->attributesAccess[$attr]->getAclInfo() !== FALSE) {
           // We assign ACLs so that attributes can use them in their template code
           $smarty->assign($plugin->attributesAccess[$attr]->getAcl().'ACL', $plugin->aclGetPermissions($plugin->attributesAccess[$attr]->getAcl()));
         }
-        $plugin->attributesAccess[$attr]->renderAttribute($attributes, FALSE);
+        $readable = $plugin->attrIsReadable($attr);
+        $writable = $plugin->attrIsWriteable($attr);
+        $plugin->attributesAccess[$attr]->renderAttribute($attributesRendered, FALSE, $readable, $writable);
       }
 
-      $smarty->assign('section', $class);
+      $smarty->assign('section', $this->tabObject->by_name[$class]);
       $smarty->assign('sectionId', $class);
       $smarty->assign('sectionClasses', ' fullwidth');
-      $smarty->assign('attributes', $attributes);
+      $smarty->assign('attributes', $attributesRendered);
 
       $posted[]   = $class.'_posted';
       $sections[] = $smarty->fetch(get_template_path('simpleplugin_section.tpl'));
@@ -236,7 +315,7 @@ class template
       $this->tabObject = objects::open($targetdn, $this->type);
       unset($this->attrs['objectClass']['count']);
       foreach ($this->tabObject->by_object as $class => $plugin) {
-        if ($plugin->is_account || $plugin->ignore_account) {
+        if ($plugin->isActive()) {
           $this->attrs['objectClass'] = $plugin->mergeObjectClasses($this->attrs['objectClass']);
         }
       }
@@ -275,8 +354,8 @@ class template
     foreach (static::$uiSpecialAttributes as $attr) {
       $specialAttrs['caller'.strtoupper($attr)] = $ui->$attr;
     }
-    $this->attrs = templateHandling::parseArray($this->attrs, $specialAttrs);
-    $this->tabObject->adapt_from_template($this->attrs, call_user_func_array('array_merge', $this->attributes));
+    $this->attrs = templateHandling::parseArray($this->attrs, $specialAttrs, $targetdn);
+    $this->tabObject->adapt_from_template($this->attrs, array_merge([], ...array_values($this->attributes)));
 
     $this->applied = TRUE;
     return $this->tabObject;
diff --git a/include/class_templateHandling.inc b/include/class_templateHandling.inc
index ef058d6740ad1d29338d44e9ee078846170669a0..3e30a4251dc2d3664a8118f79823863e8d6b3d5f 100644
--- a/include/class_templateHandling.inc
+++ b/include/class_templateHandling.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -34,7 +34,7 @@ class templateHandling
 
     $ldap = $config->get_ldap_link();
     $ldap->cat($dn);
-    $attrs    = $ldap->fetch();
+    $attrs    = $ldap->fetch(TRUE);
     $attrs    = static::fieldsFromLDAP($attrs);
     list($depends, $errors) = static::attributesDependencies($attrs);
     msg_dialog::displayChecks($errors);
@@ -45,17 +45,21 @@ class templateHandling
   /*! \brief Translate template attrs into $attrs as if taken from LDAP */
   public static function fieldsFromLDAP (array $template_attrs)
   {
-    unset($template_attrs['fdTemplateField']['count']);
-    sort($template_attrs['fdTemplateField']);
     $attrs = [];
-    foreach ($template_attrs['fdTemplateField'] as $field) {
-      preg_match('/^([^:]+):(.*)$/s', $field, $m);
-      if (isset($attrs[$m[1]])) {
-        $attrs[$m[1]][] = $m[2];
-        $attrs[$m[1]]['count']++;
-      } else {
-        $attrs[$m[1]]           = [$m[2]];
-        $attrs[$m[1]]['count']  = 1;
+    if (isset($template_attrs['fdTemplateField'])) {
+      unset($template_attrs['fdTemplateField']['count']);
+      sort($template_attrs['fdTemplateField']);
+      foreach ($template_attrs['fdTemplateField'] as $field) {
+        if (!preg_match('/^([^:]+):(.*)$/s', $field, $m)) {
+          throw new FusionDirectoryException('Template field does not match format');
+        }
+        if (isset($attrs[$m[1]])) {
+          $attrs[$m[1]][] = $m[2];
+          $attrs[$m[1]]['count']++;
+        } else {
+          $attrs[$m[1]]           = [$m[2]];
+          $attrs[$m[1]]['count']  = 1;
+        }
       }
     }
     return $attrs;
@@ -115,8 +119,11 @@ class templateHandling
     return $errors;
   }
 
-  /*! \brief Parse a mask (without surrounding %) using $attrs attributes, apply modifiers and returns an array containing possible results */
-  public static function parseMask ($mask, array $attrs)
+  /*! \brief Parse a mask (without surrounding %) using $attrs attributes and apply modifiers
+   *
+   * \return iterable an array or iterable object of possible results
+   */
+  public static function parseMask (string $mask, array $attrs)
   {
     if ($mask == '|') {
       return ['%'];
@@ -126,14 +133,20 @@ class templateHandling
       $modifiers = $m[1];
       $mask = substr($mask, strlen($m[0]));
     }
-    $result = [''];
+    $result = [];
     if (isset($attrs[$mask])) {
-      $result = [$attrs[$mask]];
-      if (is_array($result[0])) {
-        unset($result[0]['count']);
+      $result = $attrs[$mask];
+      if (is_array($result)) {
+        unset($result['count']);
+        if (empty($result)) {
+          /* No value and empty value is the same in LDAP so we have to treat them the same */
+          $result = [''];
+        }
+      } else {
+        $result = [$result];
       }
     } elseif (($mask != '') && !preg_match('/c/', $modifiers)) {
-      trigger_error("'$mask' was not found in attributes");
+      throw new FusionDirectoryException(sprintf(_('"%s" was not found in attributes'), $mask));
     }
     $len    = strlen($modifiers);
     for ($i = 0; $i < $len; ++$i) {
@@ -144,19 +157,8 @@ class templateHandling
         $args = explode(',', $m[1]);
         $i += strlen($m[1]) + 2;
       }
-      $result_tmp = [];
-      foreach ($result as $r) {
-        $result_tmp = array_merge($result_tmp, static::applyModifier($modifier, $args, $r));
-      }
-      $result = $result_tmp;
-    }
-    foreach ($result as &$r) {
-      /* Array that were not converted by a modifier into a string are now converted to strings */
-      if (is_array($r)) {
-        $r = reset($r);
-      }
+      $result = static::applyModifier($modifier, $args, $result);
     }
-    unset($r);
     return $result;
   }
 
@@ -174,7 +176,7 @@ class templateHandling
         unset($attrs[$attr]);
       }
     }
-    $dependencies = array_unique(call_user_func_array('array_merge', $flatdepends));
+    $dependencies = array_unique(array_merge(...array_values($flatdepends)));
     foreach ($dependencies as $attr) {
       if (empty($flatdepends[$attr])) {
         $needed[] = $attr;
@@ -184,18 +186,22 @@ class templateHandling
   }
 
   /*! \brief Parse template masks in an array
+   *
+   * \param array $attrs        The attributes in LDAP format
+   * \param array $specialAttrs Some additional fake attributes which can be used in masks
+   * \param string $target      Dn of an object to ignore in the unicity check
    *
    * \return array An array with the final values of attributes
    */
-  public static function parseArray (array $attrs, array $specialAttrs)
+  public static function parseArray (array $attrs, array $specialAttrs, $target = NULL)
   {
-    foreach ($attrs as &$attr) {
+    foreach ($attrs as $name => &$attr) {
       if (is_array($attr)) {
         foreach ($attr as $key => &$string) {
           if (!is_numeric($key)) {
             continue;
           }
-          $string = static::parseString($string, array_merge($attrs, $specialAttrs));
+          $string = static::parseString($string, array_merge($attrs, $specialAttrs), NULL, $name, $target);
         }
         unset($string);
       }
@@ -205,28 +211,94 @@ class templateHandling
   }
 
   /*! \brief Parse template masks in a single string
+   *
+   * \param string $string          The mask
+   * \param array $attrs            The attributes in LDAP format
+   * \param callable $escapeMethod  Method to call to escape mask result
+   * \param string $unique          Name of the LDAP attribute to check unicity on, if any
+   * \param string $target          Dn of an object to ignore in the unicity check
    *
    * \return string the string with patterns replaced by their values
    */
-  public static function parseString ($string, array $attrs, $escapeMethod = NULL)
+  public static function parseString (string $string, array $attrs, $escapeMethod = NULL, string $unique = NULL, string $target = NULL): string
   {
+    global $config;
+
     if (preg_match('/^%%/', $string)) {
       /* Special case: %% at beginning of string means do not touch it. Used by binary attributes. */
       return preg_replace('/^%%/', '', $string);
     }
+
     $offset = 0;
+    $vars   = [];
     while (preg_match('/%([^%]+)%/', $string, $m, PREG_OFFSET_CAPTURE, $offset)) {
       $replace  = static::parseMask($m[1][0], $attrs);
-      $replace  = $replace[0];
-      if ($escapeMethod !== NULL) {
-        $replace = $escapeMethod($replace);
+      $vars[]   = [$m[0][1], strlen($m[0][0]), $replace];
+      $offset   = $m[0][1] + strlen($m[0][0]);
+    }
+
+    $generator = static::iteratePossibleValues($string, $vars, $escapeMethod);
+
+    $string = $generator->current();
+
+    if (($unique !== NULL) && !empty($vars)) {
+      $ldap = $config->get_ldap_link();
+      $ldap->cd($config->current['BASE']);
+      /* Return the first found unique value */
+      foreach ($generator as $value) {
+        if (class_available('archivedObject')) {
+          $filter = archivedObject::buildUniqueSearchFilter($unique, $value);
+          $ldap->search($filter, ['dn']);
+          if ($ldap->count() > 0) {
+            continue;
+          }
+        }
+        $filter = '('.ldap_escape_f($unique).'='.ldap_escape_f($value).')';
+        $ldap->search($filter, ['dn']);
+        if ($ldap->count() == 0) {
+          return $value;
+        }
+        if (($target !== NULL) && ($ldap->count() == 1)) {
+          $attrs = $ldap->fetch();
+          if ($attrs['dn'] == $target) {
+            return $value;
+          }
+        }
       }
-      $string   = substr_replace($string, $replace, $m[0][1], strlen($m[0][0]));
-      $offset   = $m[0][1] + strlen($replace);
     }
+
     return $string;
   }
 
+
+  /*! \brief Generator that yields possible template mask values
+   *
+   * \param string $rule            The mask
+   * \param array $variables        The possible values for each mask with its position and length
+   * \param callable $escapeMethod  Method to call to escape mask result
+   */
+  protected static function iteratePossibleValues (string $rule, array $variables, $escapeMethod = NULL)
+  {
+    if (!count($variables)) {
+      yield $rule;
+      return;
+    }
+
+    /* Start from the end to avoid messing the positions, and to avoid ids at the end if not needed (common usecase) */
+    list($pos, $length, $val) = array_pop($variables);
+
+    /* $val may be an iterator or an array */
+    foreach ($val as $possibility) {
+      if ($escapeMethod !== NULL) {
+        $possibility = $escapeMethod($possibility);
+      }
+      $nrule = mb_substr_replace($rule, $possibility, $pos, $length);
+      foreach (static::iteratePossibleValues($nrule, $variables, $escapeMethod) as $result) {
+        yield $result;
+      }
+    }
+  }
+
   /*! \brief Parse template masks in a single string and list the fields it needs
    *
    * \return array An array with the names of the fields used in the string pattern
@@ -249,15 +321,33 @@ class templateHandling
     return $fields;
   }
 
-  private static function modifierRemoveAccents ($str)
+  private static function modifierRemoveAccents (array $args, $str)
   {
+    $mode = 'ascii';
+    if (count($args) >= 1) {
+      $mode = $args[0];
+    }
+
     $str = htmlentities($str, ENT_NOQUOTES, 'UTF-8');
 
     $str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str);
     // handle ligatures
     $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str);
     // delete unhandled characters
-    return [preg_replace('#&[^;]+;#', '', $str)];
+    $str = preg_replace('#&[^;]+;#', '', $str);
+
+    if ($mode === 'ascii') {
+      return [$str];
+    } elseif ($mode === 'uid') {
+      if (strict_uid_mode()) {
+        $str = preg_replace('/[^a-z0-9_-]/', '', mb_strtolower($str, 'UTF-8'));
+      } else {
+        $str = preg_replace('/[^a-zA-Z0-9 _.-]/', '', $str);
+      }
+      return [$str];
+    } else {
+      throw new FusionDirectoryException(_('Invalid mode for "a" modifier, supported modes are "uid" and "ascii"'));
+    }
   }
 
   private static function modifierTranslit (array $args, $str)
@@ -296,7 +386,7 @@ class templateHandling
     }
     if (preg_match('/^(\d+)-(\d+)$/', $args[1], $m)) {
       $res = [];
-      for ($i = $m[1];$i < $m[2]; ++$i) {
+      for ($i = $m[1];$i <= $m[2]; ++$i) {
         $res[] = mb_substr($str, $args[0], $i);
       }
       return array_unique($res);
@@ -352,7 +442,7 @@ class templateHandling
       }
     }
 
-    return $res;
+    return [$res];
   }
 
   private static function modifierDate (array $args)
@@ -361,7 +451,7 @@ class templateHandling
       $args[] = 'now';
     }
     if (count($args) < 2) {
-      $args[] = 'd.m.Y';
+      $args[] = 'Y-m-d';
     }
     $dateObject = new DateTime($args[0], new DateTimeZone('UTC'));
     if ($args[1] == 'epoch') {
@@ -371,23 +461,109 @@ class templateHandling
     return [$dateObject->format($args[1])];
   }
 
+  /*
+    First parameter is whether the number should always be there or only in case of duplicates (1 or 0, defaults to 0).
+    Second parameter is starting number, defaults to 1.
+    Third parameter is step, defaults to 1.
+  */
+  private static function modifierNumber (array $args)
+  {
+    if (count($args) < 1) {
+      $args[] = FALSE;
+    }
+    if (count($args) < 2) {
+      $args[] = 1;
+    }
+    if (count($args) < 3) {
+      $args[] = 1;
+    }
+    $numberGenerator = function ($mandatory, $start, $step)
+    {
+      if (!$mandatory) {
+        yield '';
+      }
+      $i = $start;
+      while (TRUE) {
+        yield $i;
+        $i += $step;
+      }
+    };
+
+    return $numberGenerator($args[0], $args[1], $args[2]);
+  }
+
+  /*
+    Modifier parameters:
+    * id
+    * starting number, defaults to 1.
+    * step, defaults to 1.
+  */
+  private static function modifierIncremental (array $args): array
+  {
+    global $config;
+
+    if (count($args) < 1) {
+      throw new FusionDirectoryException(_('Missing id parameter for incremental modifier'));
+    }
+    if (count($args) < 2) {
+      $args[] = 1;
+    }
+    if (count($args) < 3) {
+      $args[] = 1;
+    }
+    $configDn = CONFIGRDN.$config->current['BASE'];
+    Lock::addOrFail($configDn);
+    $tabObject = objects::open($configDn, 'configuration');
+    $json = $tabObject->getBaseObject()->fdIncrementalModifierStates;
+    if (empty($json)) {
+      $modifierStates = [];
+    } else {
+      $modifierStates = json_decode($json, TRUE);
+    }
+    if (isset($modifierStates[$args[0]])) {
+      $value = $modifierStates[$args[0]]['value'] + $args[2];
+    } else {
+      $value = $args[1];
+    }
+    $modifierStates[$args[0]] = [
+      'value' => $value,
+      'date'  => date('Y-m-d'),
+    ];
+    $tabObject->getBaseObject()->fdIncrementalModifierStates = json_encode($modifierStates);
+    $errors = $tabObject->save();
+    Lock::deleteByObject($configDn);
+    if (!empty($errors)) {
+      throw $errors[0];
+    }
+
+    return [$value];
+  }
+
+  private static function modifierTitleCase ($str)
+  {
+    return [mb_convert_case($str, MB_CASE_TITLE, 'UTF-8')];
+  }
+
   /*! \brief Apply a modifier
    *
    * \param string $m the modifier
    * \param array $args the parameters
    * \param mixed $str the string or array to apply the modifier on
    *
-   * \return array an array of possible values
+   * \return iterable an array or iterable object of possible values
    * */
-  protected static function applyModifier ($m, array $args, $str)
+  protected static function applyModifier (string $m, array $args, $str)
   {
     mb_internal_encoding('UTF-8');
     mb_regex_encoding('UTF-8');
     if (is_array($str) && (!is_numeric($m)) && (strtolower($m) == $m)) {
       /* $str is an array and $m is lowercase, so it's a string modifier */
-      $str = reset($str);
+      if (count($str) == 0) {
+        $str = '';
+      } else {
+        $str = reset($str);
+      }
     }
-    $result = [$str];
     switch ($m) {
       case 'F':
         // First
@@ -415,21 +591,21 @@ class templateHandling
           trigger_error('Missing "M" match modifier parameter');
           $args[] = '/.*/';
         }
-        $result = [array_filter(
+        $result = array_filter(
           $str,
           function ($s) use ($args)
           {
             return preg_match($args[0], $s);
           }
-        )];
+        );
         break;
       case '4':
         // IPv4
-        $result = [array_filter($str, 'tests::is_ipv4')];
+        $result = array_filter($str, 'tests::is_ipv4');
         break;
       case '6':
         // IPv6
-        $result = [array_filter($str, 'tests::is_ipv6')];
+        $result = array_filter($str, 'tests::is_ipv6');
         break;
       case 'c':
         // comment
@@ -452,7 +628,7 @@ class templateHandling
         break;
       case 'a':
         // remove accent
-        $result = static::modifierRemoveAccents($str);
+        $result = static::modifierRemoveAccents($args, $str);
         break;
       case 't':
         // translit
@@ -468,11 +644,23 @@ class templateHandling
         break;
       case 'r':
         // random string
-        $result = [static::modifierRandomString($args)];
+        $result = static::modifierRandomString($args);
         break;
       case 'd':
         // date
-        $result = [static::modifierDate($args)];
+        $result = static::modifierDate($args);
+        break;
+      case 'n':
+        // number
+        $result = static::modifierNumber($args);
+        break;
+      case 'i':
+        // title case
+        $result = static::modifierTitleCase($str);
+        break;
+      case 'e':
+        // incremental number
+        $result = static::modifierIncremental($args);
         break;
       default:
         trigger_error("Unkown modifier '$m'");
@@ -513,7 +701,7 @@ class templateHandling
         $depends[$key]
       );
     $array[]      = $depends[$key];
-    $cache[$key]  = array_unique(call_user_func_array('array_merge_recursive', $array));
+    $cache[$key]  = array_unique(array_merge_recursive(...$array));
     return $cache[$key];
   }
 
@@ -524,7 +712,7 @@ class templateHandling
     $depends = [];
     foreach ($attrs as $key => $values) {
       $depends[$key] = [];
-      if (!is_array($values))  {
+      if (!is_array($values)) {
         $values = [$values];
       }
       unset($values['count']);
@@ -553,7 +741,8 @@ class templateHandling
   /*! \brief Sort attrs depending of dependencies */
   protected static function sortAttributes (array $attrs, array $flatdepends)
   {
-    uksort($attrs, function ($k1, $k2) use ($flatdepends) {
+    uksort($attrs, function ($k1, $k2) use ($flatdepends)
+    {
       if (in_array($k1, $flatdepends[$k2])) {
         return -1;
       } elseif (in_array($k2, $flatdepends[$k1])) {
@@ -563,7 +752,7 @@ class templateHandling
         $c1 = count($flatdepends[$k1]);
         $c2 = count($flatdepends[$k2]);
         if ($c1 == $c2) {
-            return 0;
+          return 0;
         }
         return (($c1 < $c2) ? -1 : 1);
       }
diff --git a/include/class_tests.inc b/include/class_tests.inc
index b239d89ab3c957d6ba247a7583936e7ab5c4a6ae..a6265977333518ae236ef18bd864f509a8d1fd61 100644
--- a/include/class_tests.inc
+++ b/include/class_tests.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -166,7 +166,7 @@ class tests
    */
   public static function is_mac ($mac)
   {
-    return preg_match("/^[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]:[a-f0-9][a-f0-9]$/i", $mac);
+    return preg_match('/^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$/', $mac);
   }
 
 
@@ -268,16 +268,10 @@ class tests
    */
   public static function is_email ($address)
   {
-    if ($address == "") {
-      return TRUE;
-    }
-    if (filter_var($address, FILTER_VALIDATE_EMAIL) !== FALSE) {
-      return TRUE;
-    } elseif (filter_var($address.'.com', FILTER_VALIDATE_EMAIL) !== FALSE) {
-      /* this is to allow addresses like example@localhost, which are refused by some PHP version */
-      return TRUE;
-    }
-    return FALSE;
+    /* last test is to allow addresses like example@localhost, which are refused by some PHP version */
+    return (($address == '')
+      || (filter_var($address, FILTER_VALIDATE_EMAIL) !== FALSE)
+      || (filter_var($address.'.com', FILTER_VALIDATE_EMAIL) !== FALSE));
   }
 
 
@@ -293,12 +287,8 @@ class tests
     global $config;
     $reservedNames = [];
     foreach ($config->data['OBJECTS'] as $infos) {
-      if (isset($infos['ou'])) {
-        if ($infos['ou'] != '') {
-          if (preg_match('/ou=([^,]+),$/', $infos['ou'], $m)) {
-            $reservedNames[] = $m[1];
-          }
-        }
+      if (isset($infos['ou']) && preg_match('/ou=([^,]+),$/', $infos['ou'], $m)) {
+        $reservedNames[] = $m[1];
       }
     }
 
@@ -320,10 +310,10 @@ class tests
     if (!tests::is_ipv4($ip1) || !tests::is_ipv4($ip2)) {
       return FALSE;
     } else {
-      $ar1  = explode(".", $ip1);
+      $ar1  = array_map('intval', explode('.', $ip1));
       $var1 = $ar1[0] * (16777216) + $ar1[1] * (65536) + $ar1[2] * (256) + $ar1[3];
 
-      $ar2  = explode(".", $ip2);
+      $ar2  = array_map('intval', explode('.', $ip2));
       $var2 = $ar2[0] * (16777216) + $ar2[1] * (65536) + $ar2[2] * (256) + $ar2[3];
       return ($var1 < $var2);
     }
@@ -335,17 +325,19 @@ class tests
    *
    * \param string $network Name of the network
    *
-   * \param string $netmask The netmask of the IP address
+   * \param string $netmask The netmask of the IPv4 address
    *
-   * \param string $address The IP address
+   * \param string $address The IPv4 address
    */
   public static function is_in_network ($network, $netmask, $address)
   {
-    $nw = explode('.', $network);
-    $nm = explode('.', $netmask);
-    $ad = explode('.', $address);
+    $nw = array_map('intval', explode('.', $network));
+    $nm = array_map('intval', explode('.', $netmask));
+    $ad = array_map('intval', explode('.', $address));
 
     /* Generate inverted netmask */
+    $ni = [];
+    $la = [];
     for ($i = 0; $i < 4; $i++) {
       $ni[$i] = 255 - $nm[$i];
       $la[$i] = $nw[$i] | $ni[$i];
@@ -359,12 +351,12 @@ class tests
     return ($first < $curr && $last > $curr);
   }
 
-  /* \brief Check if the specified IP address $address is inside the given network */
+  /* \brief Check if the specified IPv4 address $address is inside the given network */
   public static function is_in_ip_range ($from, $to, $address)
   {
-    $from = explode('.', $from);
-    $to   = explode('.', $to);
-    $ad   = explode('.', $address);
+    $from = array_map('intval', explode('.', $from));
+    $to   = array_map('intval', explode('.', $to));
+    $ad   = array_map('intval', explode('.', $address));
 
     /* Transform to integer */
     $from = $from[0] * (16777216) + $from[1] * (65536) + $from[2] * (256) + $from[3];
@@ -374,5 +366,3 @@ class tests
     return ($ad >= $from && $ad <= $to);
   }
 }
-
-?>
diff --git a/include/class_timezone.inc b/include/class_timezone.inc
index a36d51d13de3ee71d07f3d6bbb718ef107ad9681..8ca62f9ed73ea0e54ba4e54d178af56dec42e698 100644
--- a/include/class_timezone.inc
+++ b/include/class_timezone.inc
@@ -3,7 +3,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -47,11 +47,13 @@ class timezone
       if (@date_default_timezone_set($tz)) {
         return TRUE;
       } else {
-        msg_dialog::display(
-          _('Configuration error'),
-          sprintf(_('The timezone setting "%s" in your configuration is not valid.'), $tz),
-          ERROR_DIALOG
+        $error = new FusionDirectoryError(
+          htmlescape(sprintf(
+            _('The timezone setting "%s" in your configuration is not valid.'),
+            $tz
+          ))
         );
+        $error->display();
       }
     }
     return FALSE;
@@ -109,4 +111,3 @@ class timezone
     return $utc;
   }
 }
-?>
diff --git a/include/class_userinfo.inc b/include/class_userinfo.inc
index 07f579dc18877157acd8e8eb0e3c285b9836c6ac..8c5d5136f61570ad58739fb4a8f7285aa8af53fc 100644
--- a/include/class_userinfo.inc
+++ b/include/class_userinfo.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -24,6 +25,12 @@
  * Source code for the class userinfo
  */
 
+/* Define shadow states */
+define('POSIX_ACCOUNT_EXPIRED',           1);
+define('POSIX_WARN_ABOUT_EXPIRATION',     2);
+define('POSIX_FORCE_PASSWORD_CHANGE',     4);
+define('POSIX_DISALLOW_PASSWORD_CHANGE',  8);
+
 /*!
  * \brief Class userinfo
  * This class contains all informations and functions
@@ -39,21 +46,26 @@ class userinfo
   var $givenName    = '';
   var $gidNumber    = -1;
   var $language     = "";
-  var $subtreeACL   = [];
-  var $ACL          = [];
   var $groups       = [];
   var $roles        = [];
-  var $result_cache = [];
-  var $ignoreACL    = FALSE;
 
-  var $ACLperPath             = [];
-  var $ACLperPath_usesFilter  = [];
+  /*! \brief LDAP attributes of this user at login */
+  protected $cachedAttrs  = [];
+
+  protected $result_cache = [];
+  protected $ignoreACL    = FALSE;
+  protected $ACL          = [];
+  protected $ACLperPath   = [];
 
   /*! \brief LDAP size limit handler */
   protected $sizeLimitHandler;
 
-  /* get acl's an put them into the userinfo object
-     attr subtreeACL (userdn:components, userdn:component1#sub1#sub2,component2,...) */
+  /*! \brief Current management base */
+  protected $currentBase;
+
+  /*! \brief Password change should be forced */
+  protected $forcePasswordChange = FALSE;
+
   function __construct ($userdn)
   {
     global $config;
@@ -73,8 +85,11 @@ class userinfo
   {
     global $config;
     $ldap = $config->get_ldap_link();
-    $ldap->cat($this->dn, ['cn', 'sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage']);
-    $attrs = $ldap->fetch();
+    $ldap->cat($this->dn, ['*']);
+    $attrs = $ldap->fetch(TRUE);
+    if (!$ldap->success()) {
+      throw new FusionDirectoryLdapError($this->dn, LDAP_SEARCH, $ldap->get_error(), $ldap->get_errno());
+    }
 
     $this->uid = $attrs['uid'][0];
 
@@ -99,6 +114,8 @@ class userinfo
     if (isset($attrs['preferredLanguage'][0])) {
       $this->language = $attrs['preferredLanguage'][0];
     }
+
+    $this->cachedAttrs = $attrs;
   }
 
   /*!
@@ -115,7 +132,8 @@ class userinfo
    */
   function loadACL ()
   {
-    global $config;
+    global $config, $plist;
+
     $this->ACL          = [];
     $this->groups       = [];
     $this->roles        = [];
@@ -123,6 +141,7 @@ class userinfo
     $this->reset_acl_cache();
     $ldap = $config->get_ldap_link();
     $ldap->cd($config->current['BASE']);
+    $targetFilterLimit  = $config->get_cfg_value('AclTargetFilterLimit', 100);
 
     /* Get member groups... */
     $ldap->search('(&(objectClass=groupOfNames)(member='.ldap_escape_f($this->dn).'))', ['dn']);
@@ -143,89 +162,129 @@ class userinfo
     }
 
     /* Crawl through ACLs and move relevant to the tree */
-    $ldap->search("(objectClass=gosaACL)", ['dn', 'gosaAclEntry']);
-    $aclp = [];
-    $aclc = [];
+    $ldap->search('(objectClass=gosaACL)', ['dn', 'gosaAclEntry']);
+    $ACLsContent = [];
     while ($attrs = $ldap->fetch()) {
 
       /* Insert links in ACL array */
-      $aclp[$attrs['dn']] = substr_count($attrs['dn'], ',');
-      $aclc[$attrs['dn']] = [];
-      $ol = [];
+      $mergedAcls = [];
       for ($i = 0; $i < $attrs['gosaAclEntry']['count']; $i++) {
-        $ol = array_merge($ol, acl::explodeAcl($attrs['gosaAclEntry'][$i]));
+        $mergedAcls = array_merge($mergedAcls, acl::explodeACL($attrs['gosaAclEntry'][$i]));
       }
-      $aclc[$attrs['dn']] = $ol;
+      $ACLsContent[$attrs['dn']] = $mergedAcls;
     }
 
-    /* Resolve roles here */
-    foreach ($aclc as $dn => $data) {
-      foreach ($data as $prio => $aclc_value) {
-        unset($aclc[$dn][$prio]);
+    $ACLsContentResolved = [];
 
-        $ldap->cat($aclc_value['acl'], ["gosaAclTemplate"]);
+    /* Resolve roles here */
+    foreach ($ACLsContent as $dn => $ACLRules) {
+      foreach ($ACLRules as $ACLRule) {
+        $ldap->cat($ACLRule['acl'], ['gosaAclTemplate']);
         $attrs = $ldap->fetch();
 
-        if (isset($attrs['gosaAclTemplate'])) {
-          $roleAcls = acl::explodeRole($attrs['gosaAclTemplate']);
-          foreach ($roleAcls as $roleAcl) {
-            $aclc[$dn][]  = [
-              'acl'     => $roleAcl,
-              'type'    => $aclc_value['type'],
-              'members' => $aclc_value['members'],
-              'filter'  => $aclc_value['filter']
-            ];
-          }
+        if (!isset($attrs['gosaAclTemplate'])) {
+          continue;
         }
-      }
-    }
 
-    /* ACL's read, sort for tree depth */
-    asort($aclp);
+        $interesting = FALSE;
 
-    /* Sort in tree order */
-    foreach ($aclp as $dn => $acl) {
-      /* Check if we need to keep this ACL */
-      foreach ($aclc[$dn] as $idx => $type) {
-        $interresting = FALSE;
+        /* Inspect members... */
+        foreach (array_keys($ACLRule['members']) as $member) {
+          /* Wildcard? */
+          if ($member === 'G:*') {
+            $interesting = TRUE;
+            break;
+          }
 
-        /* No members? This ACL rule is deactivated ... */
-        if (!count($type['members'])) {
-          $interresting = FALSE;
-        } else {
-          /* Inspect members... */
-          foreach (array_keys($type['members']) as $grp) {
-            /* Some group inside the members that is relevant for us? */
-            if (in_array_ics(preg_replace('/^G:/', '', $grp), $this->groups)) {
-              $interresting = TRUE;
-            }
+          list($memberType, $memberDn) = explode(':', $member, 2);
+          switch ($memberType) {
+            case 'G':
+              if (in_array_ics($memberDn, $this->groups)) {
+                $interesting = TRUE;
+                break 2;
+              }
+              break;
+            case 'R':
+              if (in_array_ics($memberDn, $this->roles)) {
+                $interesting = TRUE;
+                break 2;
+              }
+              break;
+            case 'U':
+              if (mb_strtolower($memberDn) === mb_strtolower($this->dn)) {
+                $interesting = TRUE;
+                break 2;
+              }
+              break;
+            default:
+              throw new FusionDirectoryException('Unknown ACL member type '.$memberType);
+          }
+        }
 
-            /* Some role inside the members that is relevant for us? */
-            if (in_array_ics(preg_replace('/^R:/', '', $grp), $this->roles)) {
-              $interresting = TRUE;
-            }
+        if (!$interesting) {
+          continue;
+        }
 
-            /* User inside the members? */
-            if (mb_strtoupper(preg_replace('/^U:/', '', $grp)) == mb_strtoupper($this->dn)) {
-              $interresting = TRUE;
-            }
+        if (!empty($ACLRule['userfilter']) && !$ldap->object_match_filter($this->dn, $ACLRule['userfilter'])) {
+          /* We do not match the user filter */
+          continue;
+        }
 
-            /* Wildcard? */
-            if (preg_match('/^G:\*/',  $grp)) {
-              $interresting = TRUE;
-            }
+        if (!empty($ACLRule['targetfilter'])) {
+          $ldap->cd($dn);
+          $ldap->set_size_limit($targetFilterLimit);
+          $targetFilter = templateHandling::parseString($ACLRule['targetfilter'], $this->cachedAttrs, 'ldap_escape_f');
+          $ldap->search($targetFilter, ['dn']);
+          if ($ldap->hitSizeLimit()) {
+            $error = new FusionDirectoryError(
+              htmlescape(sprintf(
+                _('An ACL assignment for the connected user matched more than than the %d objects limit. This user will not have the ACL rights he should.'),
+                $targetFilterLimit
+              ))
+            );
+            $error->display();
           }
+          $targetDns = [];
+          while ($targetAttrs = $ldap->fetch()) {
+            $targetDns[] = $targetAttrs['dn'];
+          }
+          $ldap->set_size_limit(0);
+        } else {
+          $targetDns = [$dn];
         }
 
-        if ($interresting) {
-          if (!isset($this->ACL[$dn])) {
-            $this->ACL[$dn] = [];
+        $roleAcls = acl::explodeRole($attrs['gosaAclTemplate']);
+        foreach ($roleAcls as $roleAcl) {
+          foreach ($targetDns as $targetDn) {
+            $ACLsContentResolved[$targetDn][]  = [
+              'acl'           => $roleAcl,
+              'type'          => $ACLRule['type'],
+              'members'       => $ACLRule['members'],
+            ];
           }
-          $this->ACL[$dn][$idx] = $type;
         }
       }
     }
 
+    /* Sort by tree depth */
+    uksort(
+      $ACLsContentResolved,
+      function ($dn1, $dn2)
+      {
+        return substr_count($dn1, ',') <=> substr_count($dn2, ',');
+      }
+    );
+
+    /* Insert in $this->ACL */
+    foreach ($ACLsContentResolved as $dn => $ACLRules) {
+      foreach ($ACLRules as $idx => $ACLRule) {
+        if (!isset($this->ACL[$dn])) {
+          $this->ACL[$dn] = [];
+        }
+        $this->ACL[$dn][$idx] = $ACLRule;
+      }
+    }
+
     /* Create an array which represent all relevant permissions settings
         per dn.
 
@@ -237,43 +296,49 @@ class userinfo
       .                        ['ou=base']          = array(ACLs);
 
 
-      For object located in 'ou=dep1,ou=base' we have to both ACLs,
-       for objects in 'ou=base' we only have to apply on ACL.
+      For objects located in 'ou=dep1,ou=base' we have to apply both ACLs,
+       for objects in 'ou=base' we only have to apply one ACL.
      */
-    $without_self_acl = $all_acl = [];
+    $all_acl = [];
     foreach ($this->ACL as $dn => $acl) {
+      $all_acl[$dn][$dn] = $acl;
       $sdn = $dn;
-      do {
+      while (strpos($dn, ',') !== FALSE) {
+        $dn = preg_replace('/^[^,]*+,/', '', $dn);
         if (isset($this->ACL[$dn])) {
-          $all_acl[$sdn][$dn]           = $this->ACL[$dn];
-          $without_self_acl[$sdn][$dn]  = $this->ACL[$dn];
-          foreach ($without_self_acl[$sdn][$dn] as $acl_id => $acl_set) {
-
-            /* Remember which ACL set has speicial user filter */
-            if (isset($acl_set['filter'][1])) {
-              $this->ACLperPath_usesFilter[$sdn] = TRUE;
-            }
-
-            /* Remove all acl entries which are especially for the current user (self acl) */
-            foreach ($acl_set['acl'] as $object => $object_acls) {
-              if (isset($object_acls[0]) && (strpos($object_acls[0], "s") !== FALSE)) {
-                unset($without_self_acl[$sdn][$dn][$acl_id]['acl'][$object]);
-              }
+          $all_acl[$sdn][$dn] = array_filter(
+            $this->ACL[$dn],
+            function ($ACLInfos)
+            {
+              return ($ACLInfos['type'] === 'subtree');
             }
-          }
+          );
         }
-        $dn = preg_replace("/^[^,]*+,/", "", $dn);
-      } while (strpos($dn, ',') !== FALSE);
+      }
     }
-    $this->ACLperPath = $without_self_acl;
+    $this->ACLperPath = $all_acl;
 
     /* Append Self entry */
     $dn = $this->dn;
-    while (strpos($dn, ",") && !isset($all_acl[$dn])) {
-      $dn = preg_replace("/^[^,]*+,/", "", $dn);
+    while (strpos($dn, ',') && !isset($all_acl[$dn])) {
+      $dn = preg_replace('/^[^,]*+,/', '', $dn);
     }
     if (isset($all_acl[$dn])) {
       $this->ACLperPath[$this->dn] = $all_acl[$dn];
+      if ($dn !== $this->dn) {
+        $this->ACLperPath[$this->dn][$dn] = array_filter(
+          $this->ACLperPath[$this->dn][$dn],
+          function ($ACLInfos)
+          {
+            return ($ACLInfos['type'] === 'subtree');
+          }
+        );
+      }
+    }
+
+    /* Reset plist menu and ACL cache if needed */
+    if (is_object($plist)) {
+      $plist->resetCache();
     }
   }
 
@@ -298,7 +363,7 @@ class userinfo
    */
   function get_category_permissions ($dn, $category)
   {
-    return @$this->get_permissions($dn, $category.'/0', '');
+    return $this->get_permissions($dn, $category.'/0', '');
   }
 
 
@@ -311,7 +376,7 @@ class userinfo
    *
    * \return boolean TRUE if the given object is copyable else FALSE
   */
-  function is_copyable ($dn, $object)
+  function is_copyable ($dn, $object): bool
   {
     return (strpos($this->get_complete_category_acls($dn, $object), 'r') !== FALSE);
   }
@@ -328,7 +393,7 @@ class userinfo
    *
    * \return boolean TRUE if the given object is cutable else FALSE
    */
-  function is_cutable ($dn, $object, $class)
+  function is_cutable ($dn, $object, $class): bool
   {
     $remove = (strpos($this->get_permissions($dn, $object.'/'.$class), 'd') !== FALSE);
     $read   = (strpos($this->get_complete_category_acls($dn, $object), 'r') !== FALSE);
@@ -345,7 +410,7 @@ class userinfo
    *
    * \return Boolean TRUE if we are allowed to paste an object.
    */
-  function is_pasteable ($dn, $object)
+  function is_pasteable ($dn, $object): bool
   {
     return (strpos($this->get_complete_category_acls($dn, $object), 'w') !== FALSE);
   }
@@ -362,7 +427,7 @@ class userinfo
    *
    * \return boolean TRUE if we are allowed to restore a snapshot.
    */
-  function allow_snapshot_restore ($dn, $categories, $deleted)
+  function allow_snapshot_restore ($dn, $categories, $deleted): bool
   {
     $permissions = $this->get_snapshot_permissions($dn, $categories);
     return in_array(($deleted ? 'restore_deleted' : 'restore_over'), $permissions);
@@ -378,7 +443,7 @@ class userinfo
    *
    * \return boolean TRUE if we are allowed to create a snapshot.
    */
-  function allow_snapshot_create ($dn, $categories)
+  function allow_snapshot_create ($dn, $categories): bool
   {
     $permissions = $this->get_snapshot_permissions($dn, $categories);
     return in_array('c', $permissions);
@@ -394,7 +459,7 @@ class userinfo
    *
    * \return boolean TRUE if we are allowed to delete a snapshot.
    */
-  function allow_snapshot_delete ($dn, $categories)
+  function allow_snapshot_delete ($dn, $categories): bool
   {
     $permissions = $this->get_snapshot_permissions($dn, $categories);
     return in_array('d', $permissions);
@@ -432,12 +497,12 @@ class userinfo
    *
    * \param string $object     The acl category (e.g. user)
    *
-   * \param string $attribute  The acl class (e.g. user)
+   * \param string $attribute
    *
    * \param bool $skip_write   Remove the write acl for this dn
    *
    */
-  function get_permissions ($dn, $object, $attribute = "", $skip_write = FALSE)
+  function get_permissions ($dn, $object, $attribute = '', $skip_write = FALSE)
   {
     global $config;
     /* If we are forced to skip ACLs checks for the current user
@@ -450,6 +515,8 @@ class userinfo
       return 'rwcdm';
     }
 
+    $attribute = static::sanitizeAttributeName($attribute);
+
     /* Push cache answer? */
     $ACL_CACHE = &session::get_ref('ACL_CACHE');
     if (isset($ACL_CACHE["$dn+$object+$attribute"])) {
@@ -460,85 +527,65 @@ class userinfo
       return $ret;
     }
 
-    /* Detect the set of ACLs we have to check for this object
-     */
-    $adn = $dn;
-    while (!isset($this->ACLperPath[$adn]) && (strpos($adn, ',') !== FALSE)) {
-      $adn = preg_replace("/^[^,]*+,/", "", $adn);
+    /* Detect the set of ACLs we have to check for this object */
+    $parentACLdn = $dn;
+    while (!isset($this->ACLperPath[$parentACLdn]) && (strpos($parentACLdn, ',') !== FALSE)) {
+      $parentACLdn = preg_replace('/^[^,]*+,/', '', $parentACLdn);
     }
-    if (isset($this->ACLperPath[$adn])) {
-      $ACL = $this->ACLperPath[$adn];
-    } else {
+    if (!isset($this->ACLperPath[$parentACLdn])) {
       $ACL_CACHE["$dn+$object+$attribute"] = '';
       return '';
     }
 
-    /* If we do not need to respect any user-filter settings
-        we can skip the per object ACL checks.
-     */
-    $orig_dn = $dn;
-    if (!isset($this->ACLperPath_usesFilter[$adn])) {
-      $dn = $adn;
-      if (isset($ACL_CACHE["$dn+$object+$attribute"])) {
-        $ret = $ACL_CACHE["$dn+$object+$attribute"];
-        if (!isset($ACL_CACHE["$orig_dn+$object+$attribute"])) {
-          $ACL_CACHE["$orig_dn+$object+$attribute"] = $ret;
-        }
-        if ($skip_write) {
-          $ret = str_replace(['w','c','d','m'], '', $ret);
-        }
-        return $ret;
-      }
-    }
-
-    /* Get ldap object, for later filter checks */
-    $ldap = $config->get_ldap_link();
-
-    $acl = ['r' => '', 'w' => '', 'c' => '', 'd' => '', 'm' => '', 'a' => ''];
-
-    /* Build dn array */
-    $path = explode(',', $dn);
-    $path = array_reverse($path);
-
-    /* Walk along the path to evaluate the acl */
-    $cpath = '';
-    foreach ($path as $element) {
-
-      /* Clean potential ACLs for each level */
-      if (isset($config->idepartments[$cpath])) {
-        $acl = $this->cleanACL($acl);
-      }
-
-      if ($cpath == "") {
-        $cpath = $element;
-      } else {
-        $cpath = $element.','.$cpath;
-      }
-
-      if (isset($ACL[$cpath])) {
+    if (($parentACLdn !== $dn) && isset($ACL_CACHE["sub:$parentACLdn+$object+$attribute"])) {
+      /* Load parent subtree ACLs from cache */
+      $permissions = $ACL_CACHE["sub:$parentACLdn+$object+$attribute"];
+    } else {
+      $permissions = new ACLPermissions();
+
+      /* Merge relevent permissions from parent ACLs */
+      foreach ($this->ACLperPath[$parentACLdn] as $parentdn => $ACLs) {
+        /* Inspect this ACL, place the result into permissions */
+        foreach ($ACLs as $subacl) {
+          if ($permissions->isFull()) {
+            /* Stop merging if we have all rights already */
+            break 2;
+          }
 
-        /* Inspect this ACL, place the result into ACL */
-        foreach ($ACL[$cpath] as $subacl) {
+          if (($dn != $this->dn) && isset($subacl['acl'][$object][0]) && ($subacl['acl'][$object][0]->isSelf())) {
+            /* Self ACL */
+            continue;
+          }
 
-          /* Reset? Just clean the ACL and turn over to the next one... */
-          if ($subacl['type'] == 'reset') {
-            $acl = $this->cleanACL($acl, TRUE);
+          if (($subacl['type'] === 'base') && ($parentdn !== $dn)) {
+            /* Base assignment on another dn */
             continue;
           }
 
-          /* With user filter */
-          if (isset($subacl['filter']) && !empty($subacl['filter'])) {
-            $id = $dn."-".$subacl['filter'];
-            if (!isset($ACL_CACHE['FILTER'][$id])) {
-              $ACL_CACHE['FILTER'][$id] = $ldap->object_match_filter($dn, $subacl['filter']);
-            }
-            if (!$ACL_CACHE['FILTER'][$id]) {
-              continue;
-            }
+          /* Special global ACL */
+          if (isset($subacl['acl']['all'][0])) {
+            $permissions->merge($subacl['acl']['all'][0]);
           }
 
-          /* Self ACLs? */
-          if (($dn != $this->dn) && isset($subacl['acl'][$object][0]) && (strpos($subacl['acl'][$object][0], "s") !== FALSE)) {
+          /* Category ACLs (e.g. $object = "user/0") */
+          if (strstr($object, '/0')) {
+            $ocs = preg_replace("/\/0$/", '', $object);
+            if (isset($config->data['CATEGORIES'][$ocs]) && ($attribute == '')) {
+              foreach ($config->data['CATEGORIES'][$ocs]['classes'] as $oc) {
+                if (isset($subacl['acl'][$ocs.'/'.$oc])) {
+                  if (($dn != $this->dn) &&
+                      isset($subacl['acl'][$ocs.'/'.$oc][0]) &&
+                      ($subacl['acl'][$ocs.'/'.$oc][0]->isSelf())) {
+                    /* Skip self ACL */
+                    continue;
+                  }
+
+                  foreach ($subacl['acl'][$ocs.'/'.$oc] as $anyPermissions) {
+                    $permissions->merge($anyPermissions);
+                  }
+                }
+              }
+            }
             continue;
           }
 
@@ -546,93 +593,32 @@ class userinfo
               Merge global class ACLs [0] with attributes specific ACLs [attribute].
            */
           if (($attribute == '') && isset($subacl['acl'][$object])) {
-            foreach ($subacl['acl'][$object] as $attr => $dummy) {
-              $acl = $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$object][$attr]);
+            foreach ($subacl['acl'][$object] as $anyPermissions) {
+              $permissions->merge($anyPermissions);
             }
             continue;
           }
 
           /* Per attribute ACL? */
           if (isset($subacl['acl'][$object][$attribute])) {
-            $acl = $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$object][$attribute]);
-            continue;
+            $permissions->merge($subacl['acl'][$object][$attribute]);
           }
 
           /* Per object ACL? */
           if (isset($subacl['acl'][$object][0])) {
-            $acl = $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$object][0]);
-            continue;
-          }
-
-          /* Global ACL? */
-          if (isset($subacl['acl']['all'][0])) {
-            $acl = $this->mergeACL($acl, $subacl['type'], $subacl['acl']['all'][0]);
-            continue;
-          }
-
-          /* Category ACLs    (e.g. $object = "user/0")
-           */
-          if (strstr($object, '/0')) {
-            $ocs = preg_replace("/\/0$/", "", $object);
-            if (isset($config->data['CATEGORIES'][$ocs])) {
-
-              /* if $attribute is "", then check every single attribute for this object.
-                 if it is 0, then just check the object category ACL.
-               */
-              if ($attribute == "") {
-                foreach ($config->data['CATEGORIES'][$ocs]['classes'] as $oc) {
-                  if (isset($subacl['acl'][$ocs.'/'.$oc])) {
-                    // Skip ACLs wich are defined for ourselfs only - if not checking against ($ui->dn)
-                    if (isset($subacl['acl'][$ocs.'/'.$oc][0]) &&
-                        ($dn != $this->dn) &&
-                        (strpos($subacl['acl'][$ocs.'/'.$oc][0], "s") !== FALSE)) {
-                      continue;
-                    }
-
-                    foreach ($subacl['acl'][$ocs.'/'.$oc] as $attr => $dummy) {
-                      $acl = $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$ocs.'/'.$oc][$attr]);
-                    }
-                    continue;
-                  }
-                }
-              } else {
-                if (isset($subacl['acl'][$ocs.'/'.$oc][0])) {
-                  if (($dn != $this->dn) && (strpos($subacl['acl'][$ocs.'/'.$oc][0], "s") !== FALSE)) {
-                    continue;
-                  }
-                  $acl = $this->mergeACL($acl, $subacl['type'], $subacl['acl'][$ocs.'/'.$oc][0]);
-                }
-              }
-            }
-            continue;
+            $permissions->merge($subacl['acl'][$object][0]);
           }
         }
       }
     }
 
-    /* If the requested ACL is for a container object, then alter
-        ACLs by applying cleanACL a last time.
-     */
-    if (isset($config->idepartments[$dn])) {
-      $acl = $this->cleanACL($acl);
-    }
-
-    /* Assemble string */
-    $ret = "";
-    foreach ($acl as $key => $value) {
-      if ($value !== "") {
-        $ret .= $key;
-      }
+    if ($parentACLdn !== $dn) {
+      $ACL_CACHE["sub:$parentACLdn+$object+$attribute"] = $permissions;
     }
-
-    $ACL_CACHE["$dn+$object+$attribute"]      = $ret;
-    $ACL_CACHE["$orig_dn+$object+$attribute"] = $ret;
+    $ACL_CACHE["$dn+$object+$attribute"] = $permissions;
 
     /* Remove write if needed */
-    if ($skip_write) {
-      $ret = str_replace(['w','c','d','m'], '', $ret);
-    }
-    return $ret;
+    return $permissions->toString($skip_write);
   }
 
   /*!
@@ -641,20 +627,20 @@ class userinfo
    * Extract all departments that are accessible (direct or 'on the way' to an
    * accessible department)
    *
-   * \param string $module The module
+   * \param string|array $module The module
    *
    * \param bool $skip_self_acls FALSE
    *
    * \return array Return all accessible departments
    */
-  function get_module_departments ($module, $skip_self_acls = FALSE )
+  function get_module_departments ($module, bool $skip_self_acls = FALSE): array
   {
     global $config;
     /* If we are forced to skip ACLs checks for the current user
         then return all departments as valid.
      */
     if ($this->ignore_acl_for_current_user()) {
-      return array_keys($config->idepartments);
+      return array_values($config->getDepartmentList());
     }
 
     /* Use cached results if possilbe */
@@ -664,6 +650,8 @@ class userinfo
       $module = [$module];
     }
 
+    $departmentInfo = $config->getDepartmentInfo();
+
     $res = [];
     foreach ($module as $mod) {
       if (isset($ACL_CACHE['MODULE_DEPARTMENTS'][$mod])) {
@@ -679,28 +667,30 @@ class userinfo
           $found = FALSE;
           foreach ($info['acl'] as $cat => $data) {
             /* Skip self acls? */
-            if ($skip_self_acls && isset($data['0']) && (strpos($data['0'], "s") !== FALSE)) {
+            if ($skip_self_acls && isset($data[0]) && $data[0]->isSelf()) {
               continue;
             }
-            if (preg_match("/^".preg_quote($mod, '/')."/", $cat)) {
+            if (preg_match('/^'.preg_quote($mod, '/').'/', $cat) || ($cat === 'all')) {
+              /* $cat starts with $mod (example: cat=user/user and mod=user) or cat is 'all' */
               $found = TRUE;
               break;
             }
           }
 
-          if ($found && !isset($config->idepartments[$dn])) {
-            while (!isset($config->idepartments[$dn]) && strpos($dn, ",")) {
+          if ($found && !isset($departmentInfo[$dn])) {
+            while (!isset($departmentInfo[$dn]) && strpos($dn, ',')) {
               $dn = preg_replace("/^[^,]+,/", "", $dn);
             }
-            if (isset($config->idepartments[$dn])) {
+            if (isset($departmentInfo[$dn])) {
               $deps[$dn] = $dn;
             }
           }
         }
       }
 
-      /* For all gosaDepartments */
-      foreach ($config->departments as $dn) {
+      /* For all departments */
+      $departments = $config->getDepartmentList();
+      foreach ($departments as $dn) {
         if (isset($deps[$dn])) {
           continue;
         }
@@ -722,83 +712,6 @@ class userinfo
     return array_values($res);
   }
 
-  /*!
-   * \brief Merge acls
-   *
-   * \param $acl The ACL
-   *
-   * \param $type The type
-   *
-   * \param $newACL The new ACL
-   */
-  function mergeACL ($acl, $type, $newACL)
-  {
-    $at = ["subtree" => "s", "one" => "1"];
-
-    if ((strpos($newACL, 'w') !== FALSE) && (strpos($newACL, 'r') === FALSE)) {
-      $newACL .= "r";
-    }
-
-    /* Ignore invalid characters */
-    $newACL = preg_replace('/[^rwcdm]/', '', $newACL);
-
-    foreach (str_split($newACL) as $char) {
-      /* Skip "self" ACLs without combination of rwcdm, they have no effect.
-         -self flag without read/write/create/...
-       */
-      if (empty($char)) {
-        continue;
-      }
-
-      /* Skip subtree entries */
-      if ($acl[$char] == 's') {
-        continue;
-      }
-
-      if ($type == "base" && $acl[$char] != 1) {
-        $acl[$char] = 0;
-      } else {
-        $acl[$char] = $at[$type];
-      }
-    }
-
-    return $acl;
-  }
-
-  /*!
-   * \brief Clean acls
-   *
-   * \param $acl ACL to be cleaned
-   *
-   * \param boolean $reset FALSE
-   */
-  function cleanACL ($acl, $reset = FALSE)
-  {
-    foreach ($acl as $key => $value) {
-      /* Continue, if value is empty or subtree */
-      if (($value == "") || ($value == "s")) {
-        continue;
-      }
-
-      /* Reset removes everything but 'p' */
-      if ($reset && $value != 'p') {
-        $acl[$key] = "";
-        continue;
-      }
-
-      /* Decrease tree level */
-      if (is_int($value)) {
-        if ($value) {
-          $acl[$key]--;
-        } else {
-          $acl[$key] = "";
-        }
-      }
-    }
-
-    return $acl;
-  }
-
   /*!
    * \brief Return combined acls for a given category
    *
@@ -885,12 +798,46 @@ class userinfo
   function expired_status ()
   {
     global $config;
+
+    if ($this->forcePasswordChange) {
+      return POSIX_FORCE_PASSWORD_CHANGE;
+    }
+
     // Skip this for the admin account, we do not want to lock him out.
     if ($this->is_user_admin()) {
       return 0;
     }
 
     $ldap = $config->get_ldap_link();
+
+    if (class_available('ppolicyAccount')) {
+      try {
+        list($policy, $attrs) = user::fetchPpolicy($this->dn);
+        if (
+          isset($policy['pwdExpireWarning'][0]) &&
+          isset($policy['pwdMaxAge'][0]) &&
+          isset($attrs['pwdChangedTime'][0])
+        ) {
+          $now                      = new DateTime('now', timezone::utc());
+          $pwdExpireWarningSeconds  = intval($policy['pwdExpireWarning'][0]);
+          $maxAge                   = $policy['pwdMaxAge'][0];
+          /* Build expiration date from pwdChangedTime and max age */
+          $expDate = LdapGeneralizedTime::fromString($attrs['pwdChangedTime'][0]);
+          $expDate->setTimezone(timezone::utc());
+          $expDate->add(new DateInterval('PT'.$maxAge.'S'));
+          if ($expDate->getTimeStamp() < ($now->getTimeStamp() + $pwdExpireWarningSeconds)) {
+            return POSIX_WARN_ABOUT_EXPIRATION;
+          }
+        }
+      } catch (NonExistingLdapNodeException $e) {
+        /* ppolicy not found in LDAP */
+      }
+    }
+
+    if ($config->get_cfg_value('handleExpiredAccounts') != 'TRUE') {
+      return 0;
+    }
+
     $ldap->cd($config->current['BASE']);
     $ldap->cat($this->dn);
     $attrs    = $ldap->fetch();
@@ -905,27 +852,20 @@ class userinfo
     // Check if the account has reached its kick off limitations.
     // ----------------------------------------------------------
     // Once the accout reaches the kick off limit it has expired.
-    if ($sambaKickoffTime !== NULL) {
-      if (time() >= $sambaKickoffTime) {
-        return POSIX_ACCOUNT_EXPIRED;
-      }
+    if (($sambaKickoffTime !== NULL) && (time() >= $sambaKickoffTime)) {
+      return POSIX_ACCOUNT_EXPIRED;
     }
 
     // Check if the account has expired.
     // ---------------------------------
-    // An account is locked/expired once its expiration date has reached (shadowExpire).
+    // An account is locked/expired once its expiration date was reached (shadowExpire).
     // If the optional attribute (shadowInactive) is set, we've to postpone
     //  the account expiration by the amount of days specified in (shadowInactive).
-    if (($shadowExpire != NULL) && ($shadowExpire <= $current)) {
-
-      // The account seems to be expired, but we've to check 'shadowInactive' additionally.
-      // ShadowInactive specifies an amount of days we've to reprieve the user.
-      // It some kind of x days' grace.
-      if (($shadowInactive == NULL) || $current > $shadowExpire + $shadowInactive) {
-
-        // Finally we've detect that the account is deactivated.
-        return POSIX_ACCOUNT_EXPIRED;
-      }
+    // ShadowInactive specifies an amount of days we've to reprieve the user.
+    // It some kind of x days' grace.
+    if (($shadowExpire != NULL) && ($shadowExpire <= $current)
+      && (($shadowInactive == NULL) || ($current > $shadowExpire + $shadowInactive))) {
+      return POSIX_ACCOUNT_EXPIRED;
     }
 
     // The users password is going to expire.
@@ -935,18 +875,12 @@ class userinfo
     // The user has to be warned, if the days left till expiration, match the
     //  configured warning period (shadowWarning)
     // --> shadowWarning: Warn x days before account expiration.
-    if (($shadowExpire != NULL) && ($shadowWarning != NULL)) {
-
-      // Check if the account is still active and not already expired.
-      if ($shadowExpire >= $current) {
-
-        // Check if we've to warn the user by comparing the remaining
-        //  number of days till expiration with the configured amount
-        //  of days in shadowWarning.
-        if (($shadowExpire - $current) <= $shadowWarning) {
-          return POSIX_WARN_ABOUT_EXPIRATION;
-        }
-      }
+    // Check if the account is still active and not already expired.
+    // Check if we've to warn the user by comparing the remaining
+    //  number of days till expiration with the configured amount of days in shadowWarning.
+    if (($shadowExpire != NULL) && ($shadowWarning != NULL)
+      && ($shadowExpire >= $current) && ($shadowExpire <= $current + $shadowWarning)) {
+      return POSIX_WARN_ABOUT_EXPIRATION;
     }
 
     // -- I guess this is the correct detection, isn't it?
@@ -964,11 +898,10 @@ class userinfo
     // The age of the current password (shadowLastChange) plus the maximum
     //  amount amount of days (shadowMax) has to be smaller than the
     //  current timestamp.
-    if (($shadowLastChange != NULL) && ($shadowMax != NULL)) {
-      // Check if we've an outdated password.
-      if ($current >= ($shadowLastChange + $shadowMax)) {
-        return POSIX_FORCE_PASSWORD_CHANGE;
-      }
+    // Check if we've an outdated password.
+    if (($shadowLastChange != NULL) && ($shadowMax != NULL)
+      && ($current >= $shadowLastChange + $shadowMax)) {
+      return POSIX_FORCE_PASSWORD_CHANGE;
     }
 
     // Check if we've to freeze the users password.
@@ -976,11 +909,10 @@ class userinfo
     // Once a user has changed his password, he cannot change it again
     //  for a given amount of days (shadowMin).
     // We should not allow to change the password within FusionDirectory too.
-    if (($shadowLastChange != NULL) && ($shadowMin != NULL)) {
-      // Check if we've an outdated password.
-      if (($shadowLastChange + $shadowMin) >= $current) {
-        return POSIX_DISALLOW_PASSWORD_CHANGE;
-      }
+    // Check if we've an outdated password.
+    if (($shadowLastChange != NULL) && ($shadowMin != NULL)
+      && ($shadowLastChange + $shadowMin >= $current)) {
+      return POSIX_DISALLOW_PASSWORD_CHANGE;
     }
 
     return 0;
@@ -1004,11 +936,9 @@ class userinfo
     global $config;
     $blacklist = $config->get_cfg_value('PluginsMenuBlacklist', []);
     foreach ($blacklist as $item) {
-      list($group, $p) = explode('|', $item, 2);
-      if ($plugin == $p) {
-        if (in_array($group, $this->groups) || in_array($group, $this->roles)) {
-          return TRUE;
-        }
+      list ($group, $p) = explode('|', $item, 2);
+      if (($plugin == $p) && (in_array($group, $this->groups) || in_array($group, $this->roles))) {
+        return TRUE;
       }
     }
 
@@ -1027,6 +957,8 @@ class userinfo
       return TRUE;
     }
 
+    $attribute = static::sanitizeAttributeName($attribute);
+
     if (is_array($type)) {
       /* Used for recursion through subtabs */
       $prefix = '';
@@ -1035,7 +967,7 @@ class userinfo
       /* Usual workflow */
       $infos  = objects::infos($type);
       $prefix = $infos['aclCategory'].'/';
-      $tabs   = $config->data['TABS'][$infos['tabGroup']];
+      $tabs   = $infos['tabClass']::getPotentialTabList($type, $infos);
     }
     foreach ($tabs as $tab) {
       $acls = pluglist::pluginInfos($tab['CLASS'])['plProvidedAcls'];
@@ -1056,5 +988,146 @@ class userinfo
   {
     return $this->sizeLimitHandler;
   }
+
+  /* \brief Returns the base this user is stored in
+   */
+  function getBase ()
+  {
+    return get_base_from_people($this->dn);
+  }
+
+  /* \brief Returns the current base the user went to in management classes
+   */
+  function getCurrentBase ()
+  {
+    if (!empty($this->currentBase)) {
+      return $this->currentBase;
+    } else {
+      return $this->getBase();
+    }
+  }
+
+  /* \brief Sets the current base the user went to in management classes
+   */
+  function setCurrentBase ($base)
+  {
+    $this->currentBase = $base;
+  }
+
+  /* \brief Get ACL name or HTML id from attribute name
+   */
+  public static function sanitizeAttributeName ($name)
+  {
+    return preg_replace('/[\/\-,.#:;]/', '_', $name);
+  }
+
+  /*!
+   * \brief Get user from LDAP directory
+   *
+   * Search the user by login or other fields authorized by the configuration
+   *
+   * \param string $username The username or email to check
+   *
+   * \return userinfo instance on SUCCESS, FALSE if not found, string error on error
+   */
+  public static function getLdapUser (string $username)
+  {
+    global $config;
+
+    /* look through the entire ldap */
+    $ldap = $config->get_ldap_link();
+    if (!$ldap->success()) {
+      throw new FatalError(msgPool::ldaperror($ldap->get_error(FALSE), '', LDAP_AUTH));
+    }
+
+    $allowed_attributes = ['uid','mail'];
+    $verify_attr = [];
+    $tmp = explode(',', $config->get_cfg_value('loginAttribute'));
+    foreach ($tmp as $attr) {
+      if (in_array($attr, $allowed_attributes)) {
+        $verify_attr[] = $attr;
+      }
+    }
+
+    if (count($verify_attr) == 0) {
+      $verify_attr = ['uid'];
+    }
+    $tmp    = $verify_attr;
+    $tmp[]  = 'uid';
+    $filter = '';
+    foreach ($verify_attr as $attr) {
+      $filter .= '('.$attr.'='.$username.')';
+    }
+    $filter = '(&(|'.$filter.')(objectClass=inetOrgPerson))';
+    $ldap->cd($config->current['BASE']);
+    $ldap->search($filter, $tmp);
+
+    /* get results, only a count of 1 is valid */
+    if ($ldap->count() == 0) {
+      /* user not found */
+      return FALSE;
+    } elseif ($ldap->count() != 1) {
+      /* found more than one matching id */
+      return _('Login (uid) is not unique inside the LDAP tree. Please contact your administrator.');
+    }
+
+    /* LDAP schema is not case sensitive. Perform additional check. */
+    $attrs = $ldap->fetch();
+    $success = FALSE;
+    foreach ($verify_attr as $attr) {
+      if (isset($attrs[$attr][0]) && $attrs[$attr][0] == $username) {
+        $success = TRUE;
+      }
+    }
+    $ldap->disconnect();
+    if (!$success) {
+      return FALSE;
+    }
+
+    return new userinfo($attrs['dn']);
+  }
+
+  /*!
+   * \brief Verify user login against LDAP directory
+   *
+   * Checks if the specified username is in the LDAP and verifies if the
+   * password is correct by binding to the LDAP with the given credentials.
+   *
+   * \param string $username The username to check
+   *
+   * \param string $password The password to check
+   *
+   * \return TRUE on SUCCESS, NULL or FALSE on error
+   */
+  public static function loginUser (string $username, string $password): userinfo
+  {
+    global $config;
+
+    $ui = static::getLdapUser($username);
+
+    if ($ui === FALSE) {
+      throw new LoginFailureException(LDAP::invalidCredentialsError());
+    } elseif (is_string($ui)) {
+      throw new LoginFailureException($ui);
+    }
+
+    /* password check, bind as user with supplied password  */
+    $ldapObj = new LDAP($ui->dn, $password, $config->current['SERVER'],
+      isset($config->current['LDAPFOLLOWREFERRALS']) && ($config->current['LDAPFOLLOWREFERRALS'] == 'TRUE'),
+      isset($config->current['LDAPTLS']) && ($config->current['LDAPTLS'] == 'TRUE')
+    );
+    $ldap = new ldapMultiplexer($ldapObj);
+    if (!$ldap->success()) {
+      if ($ldap->get_error(FALSE) == 'changeAfterReset') {
+        $ui->forcePasswordChange = TRUE;
+      } else {
+        throw new LoginFailureException($ldap->get_error(FALSE));
+      }
+    }
+
+    /* Username is set, load ACLs now */
+    $ui->loadACL();
+
+    return $ui;
+  }
 }
-?>
diff --git a/include/class_departmentSortIterator.inc b/include/class_userinfoNoAuth.inc
similarity index 57%
rename from include/class_departmentSortIterator.inc
rename to include/class_userinfoNoAuth.inc
index da4a6059890af3ed72d29f5c77d0d1a32e9edf51..d93747df75ce121dbb0b8c707bdef4813d187908 100644
--- a/include/class_departmentSortIterator.inc
+++ b/include/class_userinfoNoAuth.inc
@@ -1,8 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2017-2018  FusionDirectory
 
   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
@@ -20,24 +19,34 @@
 */
 
 /*!
- * \file class_departmentSortIterator.inc
- * Source code for class departmentSortIterator
+ * \file class_userinfoNoAuth.inc
+ * Source code for the class userinfoNoAuth
  */
 
 /*!
- * \brief This class contains all the function needed to sort department
+ * \brief Class userinfoNoAuth
+ * This represents a fake user used by public pages such as password recovery or setup
  */
-class departmentSortIterator extends listingSortIterator {
-  /*!
-   * \brief departmentSortIterator constructor
-   *
-   * \param array $data departmentSortIterator data
-   *
-   * \param $direction Direction
-   */
-  public function __construct ($data, $direction)
+class userinfoNoAuth extends userinfo
+{
+  function __construct ($context = 'fake')
   {
-    parent::__construct($data, $direction, 'sort-attribute', 'department');
+    parent::__construct($context);
+
+    /* This fake user have all rights */
+    $this->ignoreACL = TRUE;
+  }
+
+  function loadLDAPInfo ()
+  {
+    $this->cn   = $this->dn;
+    $this->uid  = $this->dn;
+  }
+
+  function getBase ()
+  {
+    global $config;
+
+    return $config->current['BASE'];
   }
 }
-?>
diff --git a/include/class_xml.inc b/include/class_xml.inc
index 459bfecd3168b199a21d80606281eb07e33e8419..19020b23dd7b78562da745d3b2cce13c491d4a7e 100644
--- a/include/class_xml.inc
+++ b/include/class_xml.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -28,7 +29,8 @@
  * \brief This class contains all the function needed to manage xml
  * files
  */
-class xml {
+class xml
+{
   /*!
    * \brief Transform a xml document to an array
    *
@@ -61,114 +63,121 @@ class xml {
       return;
     }
 
-    //Initializations
+    // Initializations
     $xml_array    = [];
 
-    $current = &$xml_array; //Refference
+    // Reference
+    $current = &$xml_array;
 
-    //Go through the tags.
-    $repeated_tag_index = [];//Multiple tags with same name will be turned into an array
+    // Go through the tags.
+    // Multiple tags with same name will be turned into an array
+    $repeated_tag_index = [];
     foreach ($xml_values as $data) {
-      unset($attributes, $value);//Remove existing values, or there will be trouble
-
-      //This command will extract these variables into the foreach scope
-      // tag(string), type(string), level(int), attributes(array).
-      extract($data);//We could use the array by itself, but this cooler.
-
       $result = [];
       $attributes_data = [];
 
-      if (isset($value)) {
+      if (isset($data['value'])) {
         if ($priority == 'tag') {
-          $result = $value;
+          $result = $data['value'];
         } else {
-          //Put the value in a assoc array if we are in the 'Attribute' mode
-          $result['value'] = $value;
+          // Put the value in a assoc array if we are in the 'Attribute' mode
+          $result['value'] = $data['value'];
         }
       }
 
       //Set the attributes too.
-      if (isset($attributes) and $get_attributes) {
-        foreach ($attributes as $attr => $val) {
+      if (isset($data['attributes']) and $get_attributes) {
+        foreach ($data['attributes'] as $attr => $val) {
           if ($priority == 'tag') {
             $attributes_data[$attr] = $val;
           } else {
-            //Set all the attributes in a array called 'attr'
+            // Set all the attributes in a array called 'attr'
             $result['attr'][$attr] = $val;
           }
         }
       }
 
-      //See tag status and do the needed.
-      if ($type == "open") {//The starting of the tag '<tag>'
-        $parent[$level - 1] = &$current;
-        if (!is_array($current) or (!in_array($tag, array_keys($current)))) { //Insert New tag
-          $current[$tag] = $result;
+      // See tag status and do the needed.
+      if ($data['type'] == 'open') {
+        // The starting of the tag '<tag>'
+        $parent[$data['level'] - 1] = &$current;
+        if (!is_array($current) or (!in_array($data['tag'], array_keys($current)))) {
+          // Insert New tag
+          $current[$data['tag']] = $result;
           if ($attributes_data) {
-            $current[$tag. '_attr'] = $attributes_data;
+            $current[$data['tag']. '_attr'] = $attributes_data;
           }
-          $repeated_tag_index[$tag.'_'.$level] = 1;
+          $repeated_tag_index[$data['tag'].'_'.$data['level']] = 1;
 
-          $current = &$current[$tag];
-
-        } else { //There was another element with the same tag name
-
-          if (isset($current[$tag][0])) {//If there is a 0th element it is already an array
-            $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
-            $repeated_tag_index[$tag.'_'.$level]++;
-          } else {//This section will make the value an array if multiple tags with the same name appear together
-            $current[$tag] = [$current[$tag],$result];//This will combine the existing item and the new item together to make an array
-            $repeated_tag_index[$tag.'_'.$level] = 2;
+          $current = &$current[$data['tag']];
+        } else {
+          // There was another element with the same tag name
 
-            if (isset($current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
-              $current[$tag]['0_attr'] = $current[$tag.'_attr'];
-              unset($current[$tag.'_attr']);
+          if (isset($current[$data['tag']][0])) {
+            // If there is a 0th element it is already an array
+            $current[$data['tag']][$repeated_tag_index[$data['tag'].'_'.$data['level']]] = $result;
+            $repeated_tag_index[$data['tag'].'_'.$data['level']]++;
+          } else {
+            // This section will make the value an array if multiple tags with the same name appear together
+            // This will combine the existing item and the new item together to make an array
+            $current[$data['tag']] = [$current[$data['tag']],$result];
+            $repeated_tag_index[$data['tag'].'_'.$data['level']] = 2;
+
+            if (isset($current[$data['tag'].'_attr'])) {
+              // The attribute of the last(0th) tag must be moved as well
+              $current[$data['tag']]['0_attr'] = $current[$data['tag'].'_attr'];
+              unset($current[$data['tag'].'_attr']);
             }
           }
-          $last_item_index  = $repeated_tag_index[$tag.'_'.$level] - 1;
-          $current          = &$current[$tag][$last_item_index];
+          $last_item_index  = $repeated_tag_index[$data['tag'].'_'.$data['level']] - 1;
+          $current          = &$current[$data['tag']][$last_item_index];
         }
-
-      } elseif ($type == "complete") { //Tags that ends in 1 line '<tag />'
-        //See if the key is already taken.
-        if (!isset($current[$tag])) { //New Key
-          $current[$tag]                        = $result;
-          $repeated_tag_index[$tag.'_'.$level]  = 1;
+      } elseif ($data['type'] == "complete") {
+        // Tags that ends in 1 line '<tag />'
+        // See if the key is already taken.
+        if (!isset($current[$data['tag']])) {
+          // New Key
+          $current[$data['tag']]                                = $result;
+          $repeated_tag_index[$data['tag'].'_'.$data['level']]  = 1;
           if ($priority == 'tag' and $attributes_data) {
-            $current[$tag. '_attr'] = $attributes_data;
+            $current[$data['tag']. '_attr'] = $attributes_data;
           }
-        } else { //If taken, put all things inside a list(array)
-          if (isset($current[$tag][0]) and is_array($current[$tag])) {//If it is already an array...
+        } else {
+          // If taken, put all things inside a list(array)
+          if (isset($current[$data['tag']][0]) and is_array($current[$data['tag']])) {
+            // If it is already an array...
             // ...push the new element into that array.
-            $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result;
+            $current[$data['tag']][$repeated_tag_index[$data['tag'].'_'.$data['level']]] = $result;
 
             if ($priority == 'tag' and $get_attributes and $attributes_data) {
-                $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
+              $current[$data['tag']][$repeated_tag_index[$data['tag'].'_'.$data['level']] . '_attr'] = $attributes_data;
             }
-            $repeated_tag_index[$tag.'_'.$level]++;
-
+            $repeated_tag_index[$data['tag'].'_'.$data['level']]++;
           } else { //If it is not an array...
-            $current[$tag] = [$current[$tag],$result]; //...Make it an array using using the existing value and the new value
-            $repeated_tag_index[$tag.'_'.$level] = 1;
+            //...Make it an array using using the existing value and the new value
+            $current[$data['tag']] = [$current[$data['tag']],$result];
+            $repeated_tag_index[$data['tag'].'_'.$data['level']] = 1;
             if ($priority == 'tag' and $get_attributes) {
-              if (isset($current[$tag.'_attr'])) { //The attribute of the last(0th) tag must be moved as well
-                $current[$tag]['0_attr'] = $current[$tag.'_attr'];
-                unset($current[$tag.'_attr']);
+              if (isset($current[$data['tag'].'_attr'])) {
+                // The attribute of the last(0th) tag must be moved as well
+                $current[$data['tag']]['0_attr'] = $current[$data['tag'].'_attr'];
+                unset($current[$data['tag'].'_attr']);
               }
 
               if ($attributes_data) {
-                $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data;
+                $current[$data['tag']][$repeated_tag_index[$data['tag'].'_'.$data['level']] . '_attr'] = $attributes_data;
               }
             }
-            $repeated_tag_index[$tag.'_'.$level]++; //0 and 1 index is already taken
+            // 0 and 1 index is already taken
+            $repeated_tag_index[$data['tag'].'_'.$data['level']]++;
           }
         }
-      } elseif ($type == 'close') { //End of tag '</tag>'
-        $current = &$parent[$level - 1];
+      } elseif ($data['type'] == 'close') {
+        // End of tag '</tag>'
+        $current = &$parent[$data['level'] - 1];
       }
     }
 
     return $xml_array;
   }
-
 }
diff --git a/include/errors/class_FatalError.inc b/include/errors/class_FatalError.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ae4841c20a62a668033f13cdc49dec42975b264d
--- /dev/null
+++ b/include/errors/class_FatalError.inc
@@ -0,0 +1,93 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \class FatalError
+    \brief Fatal error class. Does not extend FusionDirectoryError.
+*/
+class FatalError extends Error
+{
+  protected $htmlMessage;
+
+  public function __construct (string $htmlMessage = '', int $code = 0, Throwable $previous = NULL)
+  {
+    $this->htmlMessage = $htmlMessage;
+    parent::__construct(htmlunescape(strip_tags($htmlMessage)), $code, $previous);
+  }
+
+  public function getHtmlMessage ()
+  {
+    return $this->htmlMessage;
+  }
+
+  public function toArray (): array
+  {
+    return [
+      'message' => $this->getMessage(),
+      'line'    => $this->getLine(),
+      'file'    => $this->getFile(),
+      'fatal'   => TRUE,
+    ];
+  }
+
+  public function display ()
+  {
+    restore_error_handler();
+    error_reporting(E_ALL);
+    echo $this->renderFatalErrorDialog();
+  }
+
+  /*!
+   * \brief Render fatal error screen
+   */
+  protected function renderFatalErrorDialog ()
+  {
+    global $config;
+
+    $display =
+      '<!DOCTYPE html>
+      <html><head>
+      <title>'.htmlescape(_('FusionDirectory Fatal Error')).'</title>
+      </head><body>';
+
+    $display .=
+      '<table style="width:100%; border:2px solid red;">
+        <tr>
+          <td style="vertical-align:top;padding:10px">
+            <img src="geticon.php?context=status&amp;icon=dialog-error&amp;size=32" alt="'.htmlescape(_('Error')).'"/>
+          </td>
+          <td style="width:100%">
+            <h3>'.htmlescape(_('Fatal Error')).'</h3>
+            '.$this->getHtmlMessage().'
+          </td>
+        </tr>
+      </table>';
+
+    if (isset($config) && is_object($config) &&
+      $config->get_cfg_value('displayerrors') == 'TRUE') {
+      $trace    = FusionDirectoryError::formatTrace($this);
+      $display  .= print_a($trace, TRUE);
+    }
+
+    $display .= '</body></html>';
+
+    return $display;
+  }
+}
diff --git a/include/errors/class_FusionDirectoryError.inc b/include/errors/class_FusionDirectoryError.inc
new file mode 100644
index 0000000000000000000000000000000000000000..6a694270da7afdd18986b59391aae014f42a75b9
--- /dev/null
+++ b/include/errors/class_FusionDirectoryError.inc
@@ -0,0 +1,91 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \class FusionDirectoryError
+    \brief Parent class for all errors in FusionDirectory
+*/
+class FusionDirectoryError extends Error
+{
+  protected $htmlMessage;
+
+  public function __construct (string $htmlMessage = '', int $code = 0, Throwable $previous = NULL)
+  {
+    $this->htmlMessage = $htmlMessage;
+    parent::__construct(htmlunescape(strip_tags($htmlMessage)), $code, $previous);
+  }
+
+  public function getHtmlMessage ()
+  {
+    return $this->htmlMessage;
+  }
+
+  public function toArray (): array
+  {
+    return [
+      'class'   => get_class($this),
+      'message' => $this->getMessage(),
+      'line'    => $this->getLine(),
+      'file'    => $this->getFile(),
+    ];
+  }
+
+  public function __toString ()
+  {
+    return $this->getMessage();
+  }
+
+  public function computeMsgDialogParameters (): array
+  {
+    return [_('Error'), $this->htmlMessage, ERROR_DIALOG, static::formatTrace($this)];
+  }
+
+  public function display ()
+  {
+    msg_dialog::display(...$this->computeMsgDialogParameters());
+  }
+
+  public static function formatTrace (Throwable $throwable): array
+  {
+    $trace = $throwable->getTrace();
+
+    foreach ($trace as &$traceStep) {
+      if (isset($traceStep['function']) && isset($traceStep['class']) && isset($traceStep['type'])) {
+        $traceStep['function'] = $traceStep['class'].$traceStep['type'].$traceStep['function'];
+        unset($traceStep['class']);
+        unset($traceStep['type']);
+      }
+    }
+    unset($traceStep);
+
+    array_unshift(
+      $trace,
+      [
+        'file'  => $throwable->getFile(),
+        'line'  => $throwable->getLine(),
+      ]
+    );
+
+    if ($previous = $throwable->getPrevious()) {
+      $trace[] = static::formatTrace($previous);
+    }
+
+    return $trace;
+  }
+}
diff --git a/include/select/groupSelect/class_groupSelect.inc b/include/errors/class_FusionDirectoryLdapError.inc
similarity index 64%
rename from include/select/groupSelect/class_groupSelect.inc
rename to include/errors/class_FusionDirectoryLdapError.inc
index 2b26752ea8967dec9700aa991ed1388e83e4627d..7392b932ab8d9bdb16054b1ae5b3e82b94cd7105 100644
--- a/include/select/groupSelect/class_groupSelect.inc
+++ b/include/errors/class_FusionDirectoryLdapError.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+
+  Copyright (C) 2019-2020  FusionDirectory
 
   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
@@ -18,19 +19,13 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-/*!
- * \brief POSIX group selection
- */
-class groupSelect extends simpleSelectManagement
+/*! \class FusionDirectoryLdapError
+    \brief Error returned by an LDAP operation called from FusionDirectory
+*/
+class FusionDirectoryLdapError extends SimplePluginLdapError
 {
-  protected $objectTypes  = ['group'];
-  protected $autoFilter   = FALSE;
-
-  function __construct ()
+  public function __construct (string $dn = NULL, int $operation = NULL, string $ldapError = '', int $code = 0, Throwable $previous = NULL)
   {
-    $this->filterXMLPath = get_template_path('group-filter.xml', TRUE, dirname(__FILE__));
-
-    parent::__construct();
+    parent::__construct(NULL, $dn, $operation, $ldapError, $code, $previous);
   }
 }
-?>
diff --git a/include/errors/class_FusionDirectoryPermissionError.inc b/include/errors/class_FusionDirectoryPermissionError.inc
new file mode 100644
index 0000000000000000000000000000000000000000..0a0fe8c46e8e8802093cd374a9928b88b8e5591a
--- /dev/null
+++ b/include/errors/class_FusionDirectoryPermissionError.inc
@@ -0,0 +1,30 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \class FusionDirectoryPermissionError
+*/
+class FusionDirectoryPermissionError extends SimplePluginPermissionError
+{
+  public function __construct (string $htmlMessage, int $code = 0, Throwable $previous = NULL)
+  {
+    parent::__construct(NULL, $htmlMessage, $code, $previous);
+  }
+}
diff --git a/plugins/admin/groups/main.inc b/include/errors/class_FusionDirectoryWarning.inc
similarity index 72%
rename from plugins/admin/groups/main.inc
rename to include/errors/class_FusionDirectoryWarning.inc
index ccc83d3de67e1102ed8a43d4c1a9d19aa87a19ec..6422baf701cc3dc4fd56165b74e21039f21bdebb 100644
--- a/plugins/admin/groups/main.inc
+++ b/include/errors/class_FusionDirectoryWarning.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+
+  Copyright (C) 2019-2020  FusionDirectory
 
   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
@@ -18,5 +19,12 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-simpleManagement::mainInc('groupManagement');
-?>
+/*! \class FusionDirectoryWarning
+*/
+class FusionDirectoryWarning extends FusionDirectoryError
+{
+  public function computeMsgDialogParameters (): array
+  {
+    return [_('Warning'), $this->htmlMessage, WARNING_DIALOG, static::formatTrace($this)];
+  }
+}
diff --git a/include/errors/class_SimplePluginCheckError.inc b/include/errors/class_SimplePluginCheckError.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ee906dad927bcade11d44da6cb839f2b78189c0d
--- /dev/null
+++ b/include/errors/class_SimplePluginCheckError.inc
@@ -0,0 +1,41 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \class SimplePluginCheckError
+    \brief Error returned by check method of SimplePlugin
+*/
+class SimplePluginCheckError extends SimplePluginError
+{
+  /*!
+   * \brief Format error message for invalid value
+   *
+   * \param string $error The unescaped text error
+   *
+   * \return HTML string
+   */
+  static public function invalidValue (string $error): string
+  {
+    return sprintf(
+      '<b>%s</b> %s',
+      htmlescape(_('Invalid value:')),
+      htmlescape($error)
+    );
+  }
+}
diff --git a/include/errors/class_SimplePluginError.inc b/include/errors/class_SimplePluginError.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a2d8ef1efde4f16bddecf62effea80830d499b1a
--- /dev/null
+++ b/include/errors/class_SimplePluginError.inc
@@ -0,0 +1,152 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \class SimplePluginError
+    \brief Error returned by any method of SimplePlugin
+*/
+class SimplePluginError extends FusionDirectoryError
+{
+  protected $object;
+  protected $tab;
+  protected $attribute;
+
+  public function __construct ($origin, string $htmlMessage = '', int $code = 0, Throwable $previous = NULL)
+  {
+    $this->setOrigin($origin);
+
+    parent::__construct($htmlMessage, $code, $previous);
+  }
+
+  public function setOrigin ($origin)
+  {
+    if ($origin instanceof \FusionDirectory\Core\SimplePlugin\Attribute) {
+      $this->attribute  = $origin;
+      $this->tab        = $origin->getParent();
+      $this->object     = $this->tab->parent;
+    } else {
+      $this->attribute = NULL;
+      if ($origin instanceof SimpleTab) {
+        $this->tab    = $origin;
+        $this->object = $this->tab->parent;
+      } elseif ($origin instanceof simpleTabs) {
+        $this->tab    = NULL;
+        $this->object = $origin;
+      } elseif ($origin !== NULL) {
+        trigger_error('Invalid origin of class '.get_class($origin));
+      }
+    }
+    if (!$this->object instanceof simpleTabs) {
+      $this->object = NULL;
+    }
+  }
+
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    if (isset($this->object->dn)) {
+      $array['dn']  = $this->object->dn;
+    }
+
+    if (isset($this->tab)) {
+      $array['tab'] = get_class($this->tab);
+    }
+
+    if (isset($this->attribute)) {
+      $array['attribute'] = $this->attribute->getLdapName();
+    }
+
+    return $array;
+  }
+
+  public function __toString ()
+  {
+    $msg = '';
+
+    if (isset($this->object->dn)) {
+      $msg .= $this->object->dn.' > ';
+    }
+
+    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
+      $msg .= $this->tab->parent->by_name[get_class($this->tab)].' > ';
+    }
+
+    if (isset($this->attribute)) {
+      $label = $this->attribute->getLabel();
+      if (empty($label)) {
+        $msg .= $this->attribute->getLdapName();
+      } else {
+        $msg .= $label;
+      }
+    }
+
+    return $msg.': '.$this->getMessage();
+  }
+
+  public function computeMsgDialogParameters (): array
+  {
+    $html = '';
+
+    $breadcrumbs = [];
+
+    if (isset($this->object->dn)) {
+      $breadcrumbs[] = htmlescape($this->object->dn);
+    }
+
+    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
+      $breadcrumbs[] = htmlescape($this->tab->parent->by_name[get_class($this->tab)]);
+    }
+
+    if (isset($this->attribute)) {
+      $label = $this->attribute->getLabel();
+      if (empty($label)) {
+        $breadcrumbs[] = '<i>'.htmlescape($this->attribute->getLdapName()).'</i>';
+      } else {
+        $breadcrumbs[] = htmlescape($label);
+      }
+      $example = $this->attribute->getExample();
+    }
+
+    if (!empty($breadcrumbs)) {
+      $html .= implode(htmlescape(' > '), $breadcrumbs);
+    }
+
+    $html .= '<br/><br/>';
+
+    $html .= $this->htmlMessage;
+
+    /* Stylize example */
+    if (!empty($example)) {
+      $html .= '<br/><br/><i>'.htmlescape(sprintf(_('Example: %s'), $example)).'</i> ';
+    }
+
+    return [_('Error'), $html, ERROR_DIALOG, FusionDirectoryError::formatTrace($this)];
+  }
+
+  public static function relocate ($origin, FusionDirectoryError $error)
+  {
+    if ($error instanceof SimplePluginError) {
+      $error->setOrigin($origin);
+      return $error;
+    } else {
+      return new SimplePluginError($origin, $error->getHtmlMessage(), $error->getCode(), $error);
+    }
+  }
+}
diff --git a/include/errors/class_SimplePluginHookError.inc b/include/errors/class_SimplePluginHookError.inc
new file mode 100644
index 0000000000000000000000000000000000000000..c7a693a27d3a7901da258b2957d134a17d736a69
--- /dev/null
+++ b/include/errors/class_SimplePluginHookError.inc
@@ -0,0 +1,80 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \class SimplePluginHookError
+    \brief Error returned by a hook called from SimplePlugin
+*/
+class SimplePluginHookError extends SimplePluginError
+{
+  protected $hookType;
+
+  public function __construct ($origin, string $type, string $output = '', int $code = 0, Throwable $previous = NULL)
+  {
+    $this->hookType = $type;
+
+    parent::__construct($origin, nl2br('<samp>'.htmlescape($output).'</samp>'), $code, $previous);
+  }
+
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    $array['hookType']  = $this->hookType;
+    $array['hookCode']  = $this->getCode();
+
+    return $array;
+  }
+
+  public function computeMsgDialogParameters (): array
+  {
+    $html = '';
+
+    if (isset($this->object->dn)) {
+      $html .= htmlescape($this->object->dn.' > ');
+    }
+
+    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
+      $html .= htmlescape($this->tab->parent->by_name[get_class($this->tab)].' > ');
+    }
+
+    if (isset($this->attribute)) {
+      $label = $this->attribute->getLabel();
+      if (empty($label)) {
+        $html .= '<i>'.htmlescape($this->attribute->getLdapName()).'</i>';
+      } else {
+        $html .= htmlescape($label);
+      }
+      $html .= htmlescape(' > ');
+    }
+    $html .= htmlescape($this->hookType);
+
+    $html .= '<br/><br/>'."\n";
+
+    $html .= htmlescape(_('Trigger returned an error!'));
+
+    $html .= '<br/><br/>'."\n";
+    $html .= htmlescape(sprintf(_('Exit code: %d'), $this->getCode())).'<br/>'."\n";
+    if (!empty($this->htmlMessage)) {
+      $html .= 'Result: '.$this->htmlMessage."\n";
+    }
+
+    return [_('Error'), $html, ERROR_DIALOG, FusionDirectoryError::formatTrace($this)];
+  }
+}
diff --git a/include/errors/class_SimplePluginLdapError.inc b/include/errors/class_SimplePluginLdapError.inc
new file mode 100644
index 0000000000000000000000000000000000000000..5f05144f6b649f6dba38f4e39762cdf7dfff9c80
--- /dev/null
+++ b/include/errors/class_SimplePluginLdapError.inc
@@ -0,0 +1,93 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \class SimplePluginLdapError
+    \brief Error returned by an LDAP operation called from SimplePlugin
+*/
+class SimplePluginLdapError extends SimplePluginError
+{
+  protected $dn;
+  protected $operation;
+
+  public function __construct ($origin, string $dn = NULL, int $operation = NULL, string $ldapError = '', int $code = 0, Throwable $previous = NULL)
+  {
+    $this->dn         = $dn;
+    $this->operation  = $operation;
+
+    parent::__construct($origin, htmlescape($ldapError), $code, $previous);
+  }
+
+  public function toArray (): array
+  {
+    $array = parent::toArray();
+
+    $typemap = [1 => 'read','add','modify','delete','search','authentication'];
+
+    $array['dn'] = $this->dn;
+    if (isset($this->operation)) {
+      $array['operation'] = $typemap[$this->operation];
+    }
+    $array['errno'] = $this->getCode();
+
+    return $array;
+  }
+
+  public function computeMsgDialogParameters (): array
+  {
+    $html = '';
+
+    if (isset($this->object->dn)) {
+      $html .= htmlescape($this->object->dn.' > ');
+    }
+
+    if (isset($this->tab) && isset($this->tab->parent->by_name[get_class($this->tab)])) {
+      $html .= htmlescape($this->tab->parent->by_name[get_class($this->tab)].' > ');
+    }
+
+    if (isset($this->attribute)) {
+      $label = $this->attribute->getLabel();
+      if (empty($label)) {
+        $html .= '<i>'.htmlescape($this->attribute->getLdapName()).'</i>';
+      } else {
+        $html .= htmlescape($label);
+      }
+    }
+
+    $html .= '<br/><br/>';
+
+    /* Assign headline depending on type */
+    $typemap = [1 => _('read operation'), _('add operation'), _('modify operation'),
+        _('delete operation'), _('search operation'), _('authentication')];
+
+    if (isset($this->operation)) {
+      $html .= htmlescape(sprintf(_('LDAP %s failed!'), $typemap[$this->operation]));
+    } else {
+      $html .= htmlescape(_('LDAP operation failed!'));
+    }
+
+    if (!empty($this->dn)) {
+      $html .= '<br/><br/><i>'.htmlescape(_('Object:')).'</i> '.htmlescape($this->dn);
+    }
+
+    $html .= '<br/><br/><i>'.htmlescape(_('Error:')).'</i> '.$this->htmlMessage;
+
+    return [_('LDAP error'), $html, LDAP_ERROR, FusionDirectoryError::formatTrace($this)];
+  }
+}
diff --git a/plugins/admin/acl/main.inc b/include/errors/class_SimplePluginPermissionError.inc
similarity index 83%
rename from plugins/admin/acl/main.inc
rename to include/errors/class_SimplePluginPermissionError.inc
index cab3e2e7777acdfe31014ee37be9a694061872cc..be078cf639aea545e0aee7b3cfc2a82623479d85 100644
--- a/plugins/admin/acl/main.inc
+++ b/include/errors/class_SimplePluginPermissionError.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+
+  Copyright (C) 2019-2020  FusionDirectory
 
   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
@@ -18,5 +19,8 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-simpleManagement::mainInc('aclManagement');
-?>
+/*! \class SimplePluginPermissionError
+*/
+class SimplePluginPermissionError extends SimplePluginError
+{
+}
diff --git a/include/exporter/class_PDF.php b/include/exporter/class_PDF.php
index dea0b7dfb6d45ac071bf83e795261dcfbd750703..68945f38f23cbbf90f342ed8d989442679074366 100644
--- a/include/exporter/class_PDF.php
+++ b/include/exporter/class_PDF.php
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -61,5 +61,3 @@ class PDF extends FPDF
     $this->Cell(0, 10, _("Page")." ".$this->PageNo().'/{nb}', 0, 0, 'C');
   }
 }
-
-?>
diff --git a/include/exporter/class_cvsExporter.inc b/include/exporter/class_csvExporter.inc
similarity index 72%
rename from include/exporter/class_cvsExporter.inc
rename to include/exporter/class_csvExporter.inc
index ea610b4a375cff9ff16b100ffd841b75d916d436..c26cc9ef5491bd1b1e18dbe35d0e4c1c24e85dd5 100644
--- a/include/exporter/class_cvsExporter.inc
+++ b/include/exporter/class_csvExporter.inc
@@ -1,5 +1,4 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
@@ -21,19 +20,19 @@
 */
 
 /*!
- * \file class_cvsExporter.inc
- * Source code for class cvsExporter
+ * \file class_csvExporter.inc
+ * Source code for class csvExporter
  */
 
 /*!
- * \brief This class contains all the functions needed for cvs export
+ * \brief This class contains all the functions needed for csv export
  */
 class csvExporter
 {
   var $result;
 
   /*!
-   * \brief Create a cvsExporter
+   * \brief Create a csvExporter
    *
    * \param array $headline
    *
@@ -53,7 +52,7 @@ class csvExporter
     }
 
     // Generate header
-    $this->result = "#";
+    $this->result = '#';
     foreach ($columns as $index) {
       if (isset($header[$index])) {
         $this->result .= trim(html_entity_decode($header[$index], ENT_QUOTES, 'UTF-8').";");
@@ -81,9 +80,35 @@ class csvExporter
    */
   function query ()
   {
-     return $this->result;
+    return $this->result;
   }
 
+  static function export (managementListing $listing)
+  {
+    $columns  = $listing->getColumns();
+    $iterator = $listing->getIterator();
+
+    // Generate header
+    $result = '#';
+    foreach ($columns as $column) {
+      if ($column->isExportable()) {
+        $result .= $column->getLabel().';';
+      }
+    }
+    $result = preg_replace('/;$/', '', $result)."\n";
+
+    // Append entries
+    foreach ($iterator as $entry) {
+      foreach ($columns as $column) {
+        if ($column->isExportable()) {
+          $result .= implode(',', $column->getRawExportValues($entry)).';';
+        }
+      }
+      $result = preg_replace('/;$/', '', $result)."\n";
+    }
+
+    return $result;
+  }
 
   /*!
    * \brief Get Informations
@@ -92,7 +117,4 @@ class csvExporter
   {
     return ["exportCSV" => [ "label" => _("CSV"), "image" => "geticon.php?context=mimetypes&icon=text-csv&size=16", "class" => "csvExporter", "mime" => "text/x-csv", "filename" => "export.csv" ]];
   }
-
 }
-
-?>
diff --git a/include/exporter/class_pdfExporter.inc b/include/exporter/class_pdfExporter.inc
index 25f97bfe742fa350d0a60ff5f4da53d0b69fc717..1fbc99188b40bc4633df509157ea4906844cd979 100644
--- a/include/exporter/class_pdfExporter.inc
+++ b/include/exporter/class_pdfExporter.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -106,7 +106,6 @@ class pdfExporter
       }
 
       foreach ($columns as $order => $index) {
-
         if (isset($row["_sort$index"])) {
           $this->result->Cell($width[$order], 6, utf8_decode($row["_sort$index"]), 'LR', 0, 'L', $fill);
         } else {
@@ -177,12 +176,138 @@ class pdfExporter
     return $width;
   }
 
+  /*!
+   * \brief Calculate the width page
+   */
+  static function calcColumnsWidth ($result, $columns, $iterator)
+  {
+    $width = [];
+
+    // Locate longest value for each column
+    foreach ($columns as $index => $column) {
+      if (!$column->isExportable()) {
+        continue;
+      }
+      $max = 0;
+
+      $len = $result->GetStringWidth($column->getLabel());
+      if ($len > $max) {
+        $max = $len;
+      }
+
+      foreach ($iterator as $entry) {
+        $len = $result->GetStringWidth(implode(',', $column->getRawExportValues($entry)));
+        if ($len > $max) {
+          $max = $len;
+        }
+      }
+
+      $width[$index] = $max;
+    }
+
+    // Scale to page width
+    $printWidth = 280;
+    $scale      = $printWidth / array_sum($width);
+    foreach ($width as &$w) {
+      $w *= $scale;
+    }
+    unset($w);
+
+    return $width;
+  }
+
   /*!
    * \brief Get the result
    */
   function query ()
   {
-     return $this->result->Output("", "S");
+    return $this->result->Output("", "S");
+  }
+
+  static function export (managementListing $listing)
+  {
+    global $ui;
+
+    // Bail out if no FPDF available
+    if (!class_exists('FPDF')) {
+      die(_('No PDF export possible: there is no FPDF library installed.'));
+    }
+
+    $columns  = $listing->getColumns();
+    $iterator = $listing->getIterator();
+
+    // Create new PDF
+    $result = new PDF('L', 'mm', 'A4');
+    $result->AliasNbPages();
+    $result->SetFont('Helvetica', '', 10);
+    $headline = $listing->parent->headline;
+    $headline .= ', '._('created by').' '.$ui->cn.' - '.strftime('%A, %d. %B %Y, %H:%M:%S');
+    $result->setHeadline(utf8_decode($headline));
+    $result->AddPage();
+
+    // Analyze for width
+    $width = static::calcColumnsWidth($result, $columns, $iterator);
+
+    // Render head
+    $result->SetTextColor(0);
+    $result->SetDrawColor(0, 0, 0);
+    $result->SetLineWidth(.3);
+
+    // Render header
+    $result->SetFillColor(230, 230, 230);
+    $result->SetFont('', 'B');
+
+    foreach ($columns as $index => $column) {
+      if ($column->isExportable()) {
+        $result->Cell($width[$index], 7, utf8_decode($column->getLabel()), 1, 0, 'C', 1);
+      }
+    }
+    $result->Ln();
+    $height = 7;
+
+    // Set entry colors
+    $result->SetFillColor(240, 240, 240);
+    $result->SetFont('');
+
+    $fill = TRUE;
+    foreach ($iterator as $entry) {
+      if ($height > 220) {
+        $height = 0;
+        $result->Cell(array_sum($width), 0, '', 'T');
+        $result->AddPage();
+        $fill = FALSE;
+      } else {
+        $fill = !$fill;
+      }
+
+      foreach ($columns as $index => $column) {
+        if ($column->isExportable()) {
+          $result->Cell(
+            $width[$index],
+            6,
+            implode(
+              ',',
+              array_map(
+                'utf8_decode',
+                $column->getRawExportValues($entry)
+              )
+            ),
+            'LR',
+            0,
+            'L',
+            $fill
+          );
+        }
+      }
+
+      $result->Ln();
+
+      // Increase height to eventually create new page
+      $height += 8;
+    }
+    $result->Cell(array_sum($width), 0, '', 'T');
+
+    return $result->Output('', 'S');
   }
 
   /*!
@@ -198,7 +323,4 @@ class pdfExporter
       return NULL;
     }
   }
-
 }
-
-?>
diff --git a/include/functions.inc b/include/functions.inc
index 6a0bbab3de9172e186744b58c10dd007bb7d4ab3..0517b1b326e2a89b643dec1f1e14b010eb890c0c 100644
--- a/include/functions.inc
+++ b/include/functions.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -29,55 +29,13 @@ require_once('variables.inc');
 
 /* Include required files */
 require_once(CACHE_DIR.'/'.CLASS_CACHE);
-require_once ('functions_debug.inc');
+require_once('functions_debug.inc');
 require_once('accept-to-gettext.inc');
 
-/* Define constants for debugging */
-define('DEBUG_TRACE',    1); /*! Debug level for tracing of common actions (save, check, etc.) */
-define('DEBUG_LDAP',     2); /*! Debug level for LDAP queries */
-define('DEBUG_DB',       4); /*! Debug level for database operations */
-define('DEBUG_SHELL',    8); /*! Debug level for shell commands */
-define('DEBUG_POST',     16); /*! Debug level for POST content */
-define('DEBUG_SESSION',  32); /*! Debug level for SESSION content */
-define('DEBUG_CONFIG',   64); /*! Debug level for CONFIG information */
-define('DEBUG_ACL',      128); /*! Debug level for ACL infos */
-define('DEBUG_SI',       256); /*! Debug level for communication with Argonaut */
-define('DEBUG_MAIL',     512); /*! Debug level for all about mail (mailAccounts, imap, sieve etc.) */
-define('DEBUG_FAI',      1024); /* FAI(incomplete) */
-
-/* Define shadow states */
-define('POSIX_ACCOUNT_EXPIRED', 1);
-define('POSIX_WARN_ABOUT_EXPIRATION', 2);
-define('POSIX_FORCE_PASSWORD_CHANGE', 4);
-define('POSIX_DISALLOW_PASSWORD_CHANGE', 8);
-
-/* Rewrite german 'umlauts' and spanish 'accents'
-   to get better results */
-$REWRITE = [ "ä" => "ae",
-    "ö" => "oe",
-    "ü" => "ue",
-    "Ä" => "Ae",
-    "Ö" => "Oe",
-    "Ü" => "Ue",
-    "ß" => "ss",
-    "á" => "a",
-    "é" => "e",
-    "í" => "i",
-    "ó" => "o",
-    "ú" => "u",
-    "Á" => "A",
-    "É" => "E",
-    "Í" => "I",
-    "Ó" => "O",
-    "Ú" => "U",
-    "ñ" => "ny",
-    "Ñ" => "Ny" ];
-
-
 /*!
  * \brief Does autoloading for classes used in FusionDirectory.
  *
- *  Takes the list generated by 'fusiondirectory-setup' and loads the
+ *  Takes the list generated by 'fusiondirectory-configuration-manager' and loads the
  *  file containing the requested class.
  *
  *  \param array $class_name list of class name
@@ -90,11 +48,11 @@ function fusiondirectory_autoload ($class_name)
   if ($class_mapping === NULL) {
     if (isset($config) && is_object($config) &&
         $config->get_cfg_value('displayerrors') == 'TRUE') {
-      list($trace,) = html_trace();
+      list($trace, ) = html_trace();
       echo $trace;
       echo "<br/>\n";
     }
-    echo sprintf(_("Fatal error: no class locations defined - please run '%s' to fix this"), "<b>fusiondirectory-setup --update-cache</b>");
+    echo sprintf(_("Fatal error: no class locations defined - please run '%s' to fix this"), "<b>fusiondirectory-configuration-manager --update-cache</b>");
     exit;
   }
 
@@ -103,17 +61,21 @@ function fusiondirectory_autoload ($class_name)
     return;
   }
 
+  if (strpos($class_name, 'FusionDirectory\\') === 0) {
+    $class_name = preg_replace('/^.+\\\\([^\\\\]+)$/', '\\1', "$class_name");
+  }
+
   if (isset($class_mapping["$class_name"])) {
     require_once($BASE_DIR.'/'.$class_mapping["$class_name"]);
   } else {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class_name, 'Could not load');
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class_name, 'Could not load');
     if (isset($config) && is_object($config) &&
         $config->get_cfg_value('displayerrors') == 'TRUE') {
-      list($trace,) = html_trace();
+      list($trace, ) = html_trace();
       echo $trace;
       echo "<br/>\n";
     }
-    echo sprintf(_("Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"), $class_name, "<b>fusiondirectory-setup --update-cache</b>");
+    echo sprintf(_("Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"), $class_name, "<b>fusiondirectory-configuration-manager --update-cache</b>");
     exit;
   }
 }
@@ -154,27 +116,6 @@ function plugin_available ($plugin)
   }
 }
 
-/*!
- * \brief Loads plist and load it in config object
- */
-function load_plist ($ldap_available = TRUE)
-{
-  global $config, $plist;
-  if (!session::is_set('plist')) {
-    /* Initially load all classes */
-    load_all_classes();
-
-    $plist = new pluglist();
-    session::set('plist', $plist);
-    $config->loadPlist($plist);
-    if ($ldap_available) {
-      $config->get_departments();
-      $config->make_idepartments();
-    }
-  }
-  return session::get('plist');
-}
-
 /*!
  * \brief Debug level action
  *
@@ -199,34 +140,15 @@ function load_plist ($ldap_available = TRUE)
  */
 function DEBUG ($level, $line, $function, $file, $data, $info = '')
 {
-  static $first = TRUE;
-  if (($_SERVER['REQUEST_METHOD'] == 'POST') && preg_match('/index.php$/', $_SERVER['REQUEST_URI'])) {
-    return;
-  }
-  if (session::get('DEBUGLEVEL') & $level) {
-    if ($first) {
-      echo '<div id="debug-handling" class="notice">'.
-            '<img src="geticon.php?context=status&amp;icon=dialog-information&amp;size=22" alt="Information" style="vertical-align:middle;margin-right:.2em;"/>'.
-            'There is some debug output '.
-            '<button onClick="javascript:$$(\'div.debug_div\').each(function (a) { a.toggle (); });">Toggle</button>'.
-          '</div>';
-      $first = FALSE;
-    }
-    $output = "DEBUG[$level] ";
-    if ($function != '') {
-      $output .= "($file:$function():$line) - $info: ";
-    } else {
-      $output .= "($file:$line) - $info: ";
-    }
-    echo '<div class="debug_div">';
-    echo $output;
-    if (is_array($data)) {
-      print_a($data);
-    } else {
-      echo "'$data'";
-    }
-    echo "</div>\n";
-  }
+  logging::debug($level, $line, $function, $file, $data, $info);
+}
+
+/*!
+ * \brief Return HTML safe copyright notice
+ */
+function copynotice ()
+{
+  return sprintf(htmlescape(_('%s 2002-%d %sThe FusionDirectory team, %s%s')), '&copy;', date('Y'), '<a href="http://www.fusiondirectory.org">', FD_VERSION, '</a>');
 }
 
 /*!
@@ -255,7 +177,7 @@ function get_template_path ($filename = '', $plugin = FALSE, $path = '')
   $default_theme = 'breezy';
 
   /* Set theme */
-  if (isset ($config)) {
+  if (isset($config)) {
     $theme = $config->get_cfg_value('theme', $default_theme);
   } else {
     $theme = $default_theme;
@@ -302,57 +224,57 @@ function get_template_path ($filename = '', $plugin = FALSE, $path = '')
 }
 
 
-/*!
- * \brief Remove multiple entries from an array
+/**
+ * Remove multiple entries from an array
  *
  * Removes every element that is in $needles from the
  * array given as $haystack
  *
- * \param array $needles array of the entries to remove
+ * @param array $needles array of the entries to remove
+ *
+ * @param array $haystack original array to remove the entries from
  *
- * \param array $haystack original array to remove the entries from
+ * @return array<int,mixed>
  */
-function array_remove_entries (array $needles, array $haystack)
+function array_remove_entries (array $needles, array $haystack): array
 {
-  return array_values(array_diff($haystack, $needles));
+  return array_values(array_udiff($haystack, $needles, 'array_cmp_recursive'));
 }
 
 
-/*!
- * \brief Remove multiple entries from an array (case-insensitive)
+/**
+ * Remove multiple entries from an array (case-insensitive)
  *
  * Removes every element that is in $needles from the
  * array given as $haystack but case insensitive
  *
- * \param array $needles array of the entries to remove
+ * @param array<int|string|bool|null|float|double|object> $needles array of the entries to remove
+ *
+ * @param array<int|string|bool|null|float|double|object> $haystack original array to remove the entries from
  *
- * \param array $haystack original array to remove the entries from
+ * @return array<int,int|string|bool|null|float|double|object>
  */
-function array_remove_entries_ics (array $needles, array $haystack)
+function array_remove_entries_ics (array $needles, array $haystack): array
 {
   // strcasecmp will work, because we only compare ASCII values here
   return array_values(array_udiff($haystack, $needles, 'strcasecmp'));
 }
 
-/*!
- * \brief Merge to array but remove duplicate entries (case-insensitive)
+/**
+ * Merge to array but remove duplicate entries (case-insensitive)
  *
  * Merges two arrays and removes duplicate entries. Triggers
  * an error if first or second parametre is not an array.
  *
- * \param array $ar1 first array
+ * @param array<int|string|bool|null|float|double|object> $ar1 first array
  *
- * \param array $ar2 second array
+ * @param array<int|string|bool|null|float|double|object> $ar2 second array
  *
- * \return array
+ * @return array<int,int|string|bool|null|float|double|object>
  */
-function array_merge_unique ($ar1, $ar2)
+function array_merge_unique (array $ar1, array $ar2): array
 {
-  if (!is_array($ar1) || !is_array($ar2)) {
-    trigger_error('Specified parameter(s) are not valid arrays.');
-  } else {
-    return array_values(array_unique(array_merge($ar1, $ar2)));
-  }
+  return array_values(array_unique(array_merge($ar1, $ar2)));
 }
 
 
@@ -382,417 +304,6 @@ function fusiondirectory_log ($message)
   syslog(LOG_INFO, "FusionDirectory $username: $message");
 }
 
-
-/*!
- * \brief Initialize a LDAP connection
- *
- * Initializes a LDAP connection.
- *
- * \param string $server The server we are connecting to
- *
- * \param string $base The base of our ldap tree
- *
- * \param string $binddn Default: empty
- *
- * \param string $pass Default: empty
- *
- * \return LDAP object
- */
-function ldap_init ($server, $base, $binddn = '', $pass = '')
-{
-  global $config;
-
-  $ldap = new LDAP($binddn, $pass, $server,
-      isset($config->current['LDAPFOLLOWREFERRALS']) && $config->current['LDAPFOLLOWREFERRALS'] == 'TRUE',
-      isset($config->current['LDAPTLS']) && $config->current['LDAPTLS'] == 'TRUE');
-
-  /* Sadly we've no proper return values here. Use the error message instead. */
-  if (!$ldap->success()) {
-    msg_dialog::display(_('Fatal error'),
-        sprintf(_("FATAL: Error when connecting the LDAP. Server said '%s'."), $ldap->get_error()),
-        FATAL_ERROR_DIALOG);
-    exit();
-  }
-
-  /* Preset connection base to $base and return to caller */
-  $ldap->cd($base);
-  return $ldap;
-}
-
-/*!
- * \brief Get user from LDAP directory
- *
- * Search the user by login or other fields authorized by the configuration
- *
- * \param string $username The username or email to check
- *
- * \return userinfo instance on SUCCESS, FALSE if not found, string error on error
- */
-function ldap_get_user ($username)
-{
-  global $config;
-
-  /* look through the entire ldap */
-  $ldap = $config->get_ldap_link();
-  if (!$ldap->success()) {
-    msg_dialog::display(_('LDAP error'),
-        msgPool::ldaperror($ldap->get_error(), '', LDAP_AUTH).'<br/><br/>'.session::get('errors'),
-        FATAL_ERROR_DIALOG);
-    exit();
-  }
-
-  $allowed_attributes = ['uid','mail'];
-  $verify_attr = [];
-  $tmp = explode(',', $config->get_cfg_value('loginAttribute'));
-  foreach ($tmp as $attr) {
-    if (in_array($attr, $allowed_attributes)) {
-      $verify_attr[] = $attr;
-    }
-  }
-
-  if (count($verify_attr) == 0) {
-    $verify_attr = ['uid'];
-  }
-  $tmp    = $verify_attr;
-  $tmp[]  = 'uid';
-  $filter = '';
-  foreach ($verify_attr as $attr) {
-    $filter .= '('.$attr.'='.$username.')';
-  }
-  $filter = '(&(|'.$filter.')(objectClass=inetOrgPerson))';
-  $ldap->cd($config->current['BASE']);
-  $ldap->search($filter, $tmp);
-
-  /* get results, only a count of 1 is valid */
-  if ($ldap->count() == 0) {
-    /* user not found */
-    return FALSE;
-  } elseif ($ldap->count() != 1) {
-    /* found more than one matching id */
-    return _('Login (uid) is not unique inside the LDAP tree. Please contact your administrator.');
-  }
-
-  /* LDAP schema is not case sensitive. Perform additional check. */
-  $attrs = $ldap->fetch();
-  $success = FALSE;
-  foreach ($verify_attr as $attr) {
-    if (isset($attrs[$attr][0]) && $attrs[$attr][0] == $username) {
-      $success = TRUE;
-    }
-  }
-  $ldap->disconnect();
-  if (!$success) {
-    return FALSE;
-  }
-
-  return new userinfo($attrs['dn']);
-}
-
-/*!
- * \brief Verify user login against LDAP directory
- *
- * Checks if the specified username is in the LDAP and verifies if the
- * password is correct by binding to the LDAP with the given credentials.
- *
- * \param string $username The username to check
- *
- * \param string $password The password to check
- *
- * \return TRUE on SUCCESS, NULL or FALSE on error
- */
-function ldap_login_user ($username, $password)
-{
-  global $config;
-
-  $ui = ldap_get_user($username);
-
-  if ($ui === FALSE) {
-    return NULL;
-  } elseif (is_string($ui)) {
-    msg_dialog::display(_('Internal error'), $ui, FATAL_ERROR_DIALOG);
-    return NULL;
-  }
-
-  /* password check, bind as user with supplied password  */
-  $ldapObj = new LDAP($ui->dn, $password, $config->current['SERVER'],
-    isset($config->current['LDAPFOLLOWREFERRALS']) &&
-    $config->current['LDAPFOLLOWREFERRALS'] == 'TRUE',
-    isset($config->current['LDAPTLS'])
-    && $config->current['LDAPTLS'] == 'TRUE'
-  );
-  $ldap = new ldapMultiplexer($ldapObj);
-  if (!$ldap->success()) {
-    return NULL;
-  }
-  if (class_available('ppolicyAccount')) {
-    $ldap->cd($config->current['BASE']);
-    $ldap->search('(objectClass=*)', [], 'one');
-    if (!$ldap->success()) {
-      msg_dialog::display(
-        _('Authentication error'),
-        _('It seems your user password has expired. Please use <a href="recovery.php">password recovery</a> to change it.'),
-        ERROR_DIALOG
-      );
-      return NULL;
-    }
-  }
-
-  /* Username is set, load subtreeACL's now */
-  $ui->loadACL();
-
-  return $ui;
-}
-
-/*!
- *  \brief Add a lock for object(s)
- *
- * Adds a lock by the specified user for one ore multiple objects.
- * If the lock for that object already exists, an error is triggered.
- *
- * \param array $object The object or array of objects to lock
- *
- * \param string $user  The user who shall own the lock
- */
-function add_lock ($object, $user)
-{
-  global $config;
-
-  /* Remember which entries were opened as read only, because we
-      don't need to remove any locks for them later.
-   */
-  if (!session::is_set('LOCK_CACHE')) {
-    session::set('LOCK_CACHE', ['']);
-  }
-  if (is_array($object)) {
-    foreach ($object as $obj) {
-      add_lock($obj, $user);
-    }
-    return;
-  }
-
-  $cache = &session::get_ref('LOCK_CACHE');
-  if (isset($_POST['open_readonly'])) {
-    $cache['READ_ONLY'][$object] = TRUE;
-    return;
-  }
-  if (isset($cache['READ_ONLY'][$object])) {
-    unset($cache['READ_ONLY'][$object]);
-  }
-
-  /* Just a sanity check... */
-  if ($object == '' || $user == '') {
-    msg_dialog::display(_('Internal error'), _('Error while adding a lock. Contact the developers!'), ERROR_DIALOG);
-    return;
-  }
-
-  /* Check for existing entries in lock area */
-  $ldap = $config->get_ldap_link();
-  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-  $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($user).')(fdObjectDn='.base64_encode($object).'))',
-      ['fdUserDn']);
-  if (!$ldap->success()) {
-    msg_dialog::display(_('Configuration error'), sprintf(_('Cannot create locking information in LDAP tree. Please contact your administrator!').'<br><br>'._('LDAP server returned: %s'), '<br><br><i>'.$ldap->get_error().'</i>'), ERROR_DIALOG);
-    return;
-  }
-
-  /* Add lock if none present */
-  if ($ldap->count() == 0) {
-    $attrs  = [];
-    $name   = md5($object);
-    $ldap->cd('cn='.$name.','.get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-    $attrs = [
-      'objectClass'     => 'fdLockEntry',
-      'fdUserDn'        => $user,
-      'fdObjectDn'      => base64_encode($object),
-      'cn'              => $name,
-      'fdLockTimestamp' => LdapGeneralizedTime::toString(new DateTime('now')),
-    ];
-    $ldap->add($attrs);
-    if (!$ldap->success()) {
-      msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), "cn=$name,".get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], 0), LDAP_ERROR);
-      return;
-    }
-  }
-}
-
-
-/*!
- * \brief Remove a lock for object(s)
- *
- * Remove a lock for object(s)
- *
- * \param mixed $object object or array of objects for which a lock shall be removed
- */
-function del_lock ($object)
-{
-  global $config;
-
-  if (is_array($object)) {
-    foreach ($object as $obj) {
-      del_lock($obj);
-    }
-    return;
-  }
-
-  /* Sanity check */
-  if ($object == '') {
-    return;
-  }
-
-  /* If this object was opened in read only mode then
-      skip removing the lock entry, there wasn't any lock created.
-    */
-  if (session::is_set('LOCK_CACHE')) {
-    $cache = &session::get_ref('LOCK_CACHE');
-    if (isset($cache['READ_ONLY'][$object])) {
-      unset($cache['READ_ONLY'][$object]);
-      return;
-    }
-  }
-
-  /* Check for existance and remove the entry */
-  $ldap = $config->get_ldap_link();
-  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-  $ldap->search('(&(objectClass=fdLockEntry)(fdObjectDn='.base64_encode($object).'))', ['fdObjectDn']);
-  $attrs = $ldap->fetch();
-  if (!$ldap->success()) {
-    msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), $ldap->getDN(), LDAP_DEL, ERROR_DIALOG));
-    return;
-  } elseif (!empty($attrs['dn'])) {
-    $ldap->rmdir($attrs['dn']);
-  }
-}
-
-
-/*!
- * \brief Remove all locks owned by a specific userdn
- *
- * For a given userdn remove all existing locks. This is usually
- * called on logout.
- *
- * \param string $userdn the subject whose locks shall be deleted
- */
-function del_user_locks ($userdn)
-{
-  global $config;
-
-  /* Get LDAP ressources */
-  $ldap = $config->get_ldap_link();
-  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-
-  /* Remove all objects of this user, drop errors silently in this case. */
-  $ldap->search('(&(objectClass=fdLockEntry)(fdUserDn='.ldap_escape_f($userdn).'))', ['fdUserDn']);
-  while ($attrs = $ldap->fetch()) {
-    $ldap->rmdir($attrs['dn']);
-  }
-}
-
-
-/*!
- * \brief Get a lock for a specific object
- *
- * Searches for a lock on a given object.
- *
- * \param string $object subject whose locks are to be searched
- *
- * \return string Returns the dn of the user who owns the lock or '' if no lock is found
- * or FALSE if an error occured.
- */
-function get_lock ($object)
-{
-  /* Sanity check */
-  if ($object == '') {
-    msg_dialog::display(_('Internal error'), _('Error while adding a lock. Contact the developers!'), ERROR_DIALOG);
-    return FALSE;
-  }
-
-  /* Allow readonly access, the plugin constructor will restrict the acls */
-  if (isset($_POST['open_readonly'])) {
-    return '';
-  }
-
-  $locks = get_locks($object);
-  if ($locks === FALSE) {
-    return FALSE;
-  } elseif (empty($locks)) {
-    return '';
-  } else {
-    return $locks[0]['user'];
-  }
-}
-
-
-/*!
- * \brief Get locks for objects
- *
- * Similar as get_lock(), but for multiple objects.
- *
- * \param mixed $objects Array of dns for which a lock will be searched or dn of a single object
- *
- * \param boolean $allow_readonly TRUE if readonly access should be permitted,
- * FALSE if not (default).
- *
- * \return A numbered array containing all found locks as an array with key 'object'
- * and key 'user', or FALSE if an error occured.
- */
-function get_locks ($objects, $allow_readonly = FALSE)
-{
-  global $config;
-
-  if (is_array($objects) && (count($objects) == 1)) {
-    $objects = reset($objects);
-  }
-  if (is_array($objects)) {
-    if ($allow_readonly) {
-      trigger_error('Read only is not possible for several objects');
-    }
-    $filter = '(&(objectClass=fdLockEntry)(|';
-    foreach ($objects as $obj) {
-      $filter .= '(fdObjectDn='.base64_encode($obj).')';
-    }
-    $filter .= '))';
-  } else {
-    if ($allow_readonly && isset($_POST['open_readonly'])) {
-      /* If readonly is allowed and asked and there is only one object, bypass lock detection */
-      return [];
-    }
-    $filter = '(&(objectClass=fdLockEntry)(fdObjectDn='.base64_encode($objects).'))';
-  }
-
-  /* Get LDAP link, check for presence of the lock entry */
-  $ldap = $config->get_ldap_link();
-  $ldap->cd(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
-  $ldap->search($filter, ['fdUserDn','fdObjectDn', 'fdLockTimestamp']);
-  if (!$ldap->success()) {
-    msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), '', LDAP_SEARCH), LDAP_ERROR);
-    return FALSE;
-  }
-
-  $locks = [];
-  while ($attrs = $ldap->fetch()) {
-    $locks[] = [
-      'dn'        => $attrs['dn'],
-      'object'    => base64_decode($attrs['fdObjectDn'][0]),
-      'user'      => $attrs['fdUserDn'][0],
-      'timestamp' => LdapGeneralizedTime::fromString($attrs['fdLockTimestamp'][0]),
-    ];
-  }
-
-  if (!is_array($objects) && (count($locks) > 1)) {
-    /* Hmm. We're removing broken LDAP information here and issue a warning. */
-    msg_dialog::display(_('Warning'), _('Found multiple locks for object to be locked. This should not happen - cleaning up multiple references.'), WARNING_DIALOG);
-
-    /* Clean up these references now... */
-    foreach ($locks as $lock) {
-      $ldap->rmdir($lock['dn']);
-    }
-
-    return FALSE;
-  }
-
-  return $locks;
-}
-
 /*!
  * \brief Return the current userinfo object
  *
@@ -937,8 +448,7 @@ function get_ou ($name)
   if ($config->get_cfg_value($name, '_not_set_') != '_not_set_') {
     $ou = $config->get_cfg_value($name);
   } elseif (isset($map[$name])) {
-    $ou = $map[$name];
-    return $ou;
+    return $map[$name];
   } else {
     return NULL;
   }
@@ -995,7 +505,8 @@ function get_base_from_people ($dn)
   $base     = preg_replace($pattern, '', $dn);
 
   /* Set to base, if we're not on a correct subtree */
-  if (!isset($config->idepartments[$base])) {
+  $departmentInfo = $config->getDepartmentInfo();
+  if (!isset($departmentInfo[$base])) {
     $base = $config->current['BASE'];
   }
 
@@ -1022,99 +533,6 @@ function strict_uid_mode ()
   return TRUE;
 }
 
-/*!
- * \brief Generate a lock message
- *
- * This message shows a warning to the user, that a certain object is locked
- * and presents some choices how the user can proceed. By default this
- * is 'Cancel' or 'Edit anyway', but depending on the function call
- * its possible to allow readonly access, too.
- *
- * Example usage:
- * \code
- * if ($locks = get_locks($this->dn)) {
- *   return gen_locked_message($locks, $this->dn, TRUE);
- * }
- * \endcode
- *
- * \param string $locks the locks as returned by get_locks
- *
- * \param string $dn the locked DN
- *
- * \param boolean $allow_readonly TRUE if readonly access should be permitted,
- * FALSE if not (default).
- *
- *
- */
-function gen_locked_message ($locks, $dn, $allow_readonly = FALSE)
-{
-  session::set('dn', $dn);
-  $remove = FALSE;
-
-  /* Save variables from LOCK_VARS_TO_USE in session - for further editing */
-  if ( session::is_set('LOCK_VARS_TO_USE') && count(session::get('LOCK_VARS_TO_USE'))) {
-
-    $LOCK_VARS_USED_GET       = [];
-    $LOCK_VARS_USED_POST      = [];
-    $LOCK_VARS_USED_REQUEST   = [];
-    $LOCK_VARS_TO_USE         = session::get('LOCK_VARS_TO_USE');
-
-    foreach ($LOCK_VARS_TO_USE as $name) {
-
-      if (empty($name)) {
-        continue;
-      }
-
-      foreach ($_POST as $Pname => $Pvalue) {
-        if (preg_match($name, $Pname)) {
-          $LOCK_VARS_USED_POST[$Pname] = $_POST[$Pname];
-        }
-      }
-
-      foreach ($_GET as $Pname => $Pvalue) {
-        if (preg_match($name, $Pname)) {
-          $LOCK_VARS_USED_GET[$Pname] = $_GET[$Pname];
-        }
-      }
-
-      foreach ($_REQUEST as $Pname => $Pvalue) {
-        if (preg_match($name, $Pname)) {
-          $LOCK_VARS_USED_REQUEST[$Pname] = $_REQUEST[$Pname];
-        }
-      }
-    }
-    session::set('LOCK_VARS_TO_USE',        []);
-    session::set('LOCK_VARS_USED_GET',      $LOCK_VARS_USED_GET);
-    session::set('LOCK_VARS_USED_POST',     $LOCK_VARS_USED_POST);
-    session::set('LOCK_VARS_USED_REQUEST',  $LOCK_VARS_USED_REQUEST);
-  }
-
-  /* Prepare and show template */
-  $smarty = get_smarty();
-  $smarty->assign('allow_readonly', $allow_readonly);
-  if (is_array($dn)) {
-    $msg = '<pre>';
-    foreach ($dn as $sub_dn) {
-      $msg .= "\n".$sub_dn.', ';
-    }
-    $msg = preg_replace("/, $/", "</pre>", $msg);
-  } else {
-    $msg = $dn;
-  }
-
-  $smarty->assign('dn', $msg);
-  if ($remove) {
-    $smarty->assign('action', _('Continue anyway'));
-  } else {
-    $smarty->assign('action', _('Edit anyway'));
-  }
-  $smarty->assign('message', sprintf(_("You're going to edit the LDAP entry/entries %s"), "<b>".$msg."</b>", ""));
-  $smarty->assign('locks', $locks);
-
-  return $smarty->fetch(get_template_path('islocked.tpl'));
-}
-
-
 /*!
  * \brief Return a string/HTML representation of an array
  *
@@ -1153,10 +571,32 @@ function to_string ($value)
  */
 function rewrite ($s)
 {
-  global $REWRITE;
+  /* Rewrite german 'umlauts' and spanish 'accents'
+   to get better results */
+  static $REWRITE = [
+    'ä' => 'ae',
+    'ö' => 'oe',
+    'ü' => 'ue',
+    'Ä' => 'Ae',
+    'Ö' => 'Oe',
+    'Ü' => 'Ue',
+    'ß' => 'ss',
+    'á' => 'a',
+    'é' => 'e',
+    'í' => 'i',
+    'ó' => 'o',
+    'ú' => 'u',
+    'Á' => 'A',
+    'É' => 'E',
+    'Í' => 'I',
+    'Ó' => 'O',
+    'Ú' => 'U',
+    'ñ' => 'ny',
+    'Ñ' => 'Ny',
+  ];
 
   foreach ($REWRITE as $key => $val) {
-    $s = str_replace("$key", "$val", $s);
+    $s = str_replace($key, $val, $s);
   }
 
   return $s;
@@ -1214,44 +654,6 @@ function check_command ($cmdline)
   return TRUE;
 }
 
-/*!
- * \brief Print plugin HTML header
- *
- * \param string $image the path of the image to be used next to the headline
- *
- * \param string $headline the headline
- *
- * \param string $info additional information to print
- *
- * \return the $display variable
- */
-function print_header ($image, $headline, $info = '')
-{
-  $smarty = get_smarty();
-  $smarty->assign('headline', $headline);
-  $smarty->assign('headline_image', $image);
-  $display = '';
-
-  if ($info != '') {
-    $display .= '<div class="pluginfo">'."\n";
-    $display .= "$info";
-    $display .= "</div>\n";
-    $display .= "<div></div>\n";
-  }
-  return $display;
-}
-
-/*!
- * \brief Generate HTML for the 'Back' button
- *
- * \return the back button html code
- */
-function back_to_main ()
-{
-  return '<br><p class="plugbottom"><input type=submit name="password_back" value="'.
-    msgPool::backButton().'"></p><input type="hidden" name="ignore">';
-}
-
 /*!
  * \brief Put netmask in n.n.n.n format
  *
@@ -1271,7 +673,7 @@ function normalize_netmask ($netmask)
 
       for ($i = 7; $i >= 0; $i--) {
         if ($num-- > 0) {
-          $result += pow(2, $i);
+          $result += 2 ** $i;
         }
       }
 
@@ -1322,138 +724,13 @@ function netmask_to_bits ($netmask)
         $res += 8 - $i;
         break;
       }
-      $start -= pow(2, $i);
+      $start -= 2 ** $i;
     }
   }
 
   return $res;
 }
 
-
-/*!
- * \brief Recursion helper for gen_uids()
- */
-function _recurse_gen_uids ($rule, array $variables)
-{
-  $result = [];
-
-  if (!count($variables)) {
-    return [$rule];
-  }
-
-  reset($variables);
-  $key  = key($variables);
-  $val  = current($variables);
-  unset($variables[$key]);
-
-  foreach ($val as $possibility) {
-    $nrule  = str_replace("{$key}", $possibility, $rule);
-    $result = array_merge($result, _recurse_gen_uids($nrule, $variables));
-  }
-
-  return $result;
-}
-
-
-/*!
- * \brief Generate a list of uid proposals based on a rule
- *
- *  Unroll given rule string by filling in attributes and replacing
- *  all keywords.
- *
- * \param string $rule The rule string from fusiondirectory.conf.
- *
- * \param array $attributes A dictionary of attribute/value mappings
- *
- * \return array List of valid not used uids
- */
-function gen_uids ($rule, $attributes)
-{
-  global $config;
-
-  // Attributes should be arrays
-  foreach ($attributes as $name => $value) {
-      $attributes[$name] = [$value];
-  }
-
-  /* Search for keys and fill the variables array with all
-     possible values for that key. */
-  $stripped   = $rule;
-  $variables  = [];
-
-  for ($pos = 0; preg_match('/%([^%]+)%/', $stripped, $m, PREG_OFFSET_CAPTURE, $pos); ) {
-    $variables[$pos]  = templateHandling::parseMask($m[1][0], $attributes);
-    $replace          = '{'.$pos.'}';
-    $stripped         = substr_replace($stripped, $replace, $m[0][1], strlen($m[0][0]));
-    $pos              = $m[0][1] + strlen($replace);
-  }
-
-  /* Recurse through all possible combinations */
-  $proposed = _recurse_gen_uids($stripped, $variables);
-
-  /* Get list of used ID's */
-  $ldap = $config->get_ldap_link();
-  $ldap->cd($config->current['BASE']);
-
-  /* Remove used uids and watch out for id tags */
-  $ret = [];
-  foreach ($proposed as $uid) {
-    /* Check for id tag and modify uid if needed */
-    if (preg_match('/\{id(:|!)(\d+)}/', $uid, $m)) {
-      $size = $m[2];
-
-      $start = ($m[1] == ":" ? 0 : -1);
-      for ($i = $start, $p = pow(10, $size) - 1; $i < $p; $i++) {
-        if ($i == -1) {
-          $number = "";
-        } else {
-          $number = sprintf("%0".$size."d", $i + 1);
-        }
-        $res = preg_replace('/{id(:|!)\d+}/', $number, $uid);
-
-        $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $res)).')', ['dn']);
-        if ($ldap->count() == 0) {
-          $uid = $res;
-          break;
-        }
-      }
-
-      /* Remove link if nothing has been found */
-      $uid = preg_replace('/{id(:|!)\d+}/', '', $uid);
-    }
-
-    if (preg_match('/\{id#\d+}/', $uid)) {
-      $size = preg_replace('/^.*{id#(\d+)}.*$/', '\\1', $uid);
-
-      while (TRUE) {
-        $number = sprintf("%0".$size."d", random_int(0, pow(10, $size) - 1));
-        $res    = preg_replace('/{id#(\d+)}/', $number, $uid);
-        $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $res)).')', ['dn']);
-        if ($ldap->count() == 0) {
-          $uid = $res;
-          break;
-        }
-      }
-
-      /* Remove link if nothing has been found */
-      $uid = preg_replace('/{id#\d+}/', '', $uid);
-    }
-
-    /* Don't assign used ones */
-    $ldap->search('(uid='.ldap_escape_f(preg_replace('/[{}]/', '', $uid)).')', ['dn']);
-    if ($ldap->count() == 0) {
-      /* Add uid, but remove {} first. These are invalid anyway. */
-      $uid = preg_replace('/[{}]/', '', $uid);
-      if ($uid != '') {
-        $ret[] = $uid;
-      }
-    }
-  }
-
-  return array_unique($ret);
-}
-
-
 /*!
  * \brief Convert various data sizes to bytes
  *
@@ -1471,7 +748,6 @@ function to_byte ($value)
   $value = strtolower(trim($value));
 
   if (!is_numeric(substr($value, -1))) {
-
     switch (substr($value, -1)) {
       case 'g':
         $mult = 1073741824;
@@ -1482,6 +758,8 @@ function to_byte ($value)
       case 'k':
         $mult = 1024;
         break;
+      default:
+        return $value;
     }
 
     return $mult * (int)substr($value, 0, -1);
@@ -1517,7 +795,7 @@ function humanReadableSize ($bytes, $precision = 2)
   }
   $base = log($bytes) / log(1024);
 
-  return sprintf($format[floor($base)], round(pow(1024, $base - floor($base)), $precision));
+  return sprintf($format[floor($base)], round(1024 ** ($base - floor($base)), $precision));
 }
 
 
@@ -1538,39 +816,6 @@ function in_array_ics ($value, array $items)
   return preg_grep('/^'.preg_quote($value, '/').'$/i', $items);
 }
 
-
-/*! \brief Generate a clickable alphabet */
-function generate_alphabet ($count = 10)
-{
-  $characters = _("*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
-  $alphabet   = "";
-  $c          = 0;
-
-  /* Fill cells with charaters */
-  for ($i = 0, $l = mb_strlen($characters, 'UTF8'); $i < $l; $i++) {
-    if ($c == 0) {
-      $alphabet .= "<tr>";
-    }
-
-    $ch = mb_substr($characters, $i, 1, "UTF8");
-    $alphabet .= "<td><a class=\"alphaselect\" href=\"main.php?plug=".
-      validate($_GET['plug'])."&amp;search=".$ch."\">&nbsp;".$ch."&nbsp;</a></td>";
-
-    if ($c++ == $count) {
-      $alphabet .= "</tr>";
-      $c        = 0;
-    }
-  }
-
-  /* Fill remaining cells */
-  while ($c++ <= $count) {
-    $alphabet .= "<td>&nbsp;</td>";
-  }
-
-  return $alphabet;
-}
-
-
 /*!
  * \brief Removes malicious characters from a (POST) string.
  *
@@ -1626,21 +871,17 @@ function scan_directory ($path, $sort_desc = FALSE)
   $ret = FALSE;
 
   /* is this a dir ? */
-  if (is_dir($path)) {
-
-    /* is this path a readable one */
-    if (is_readable($path)) {
-
-      /* Get contents and write it into an array */
-      $ret = [];
+  /* is this path a readable one */
+  if (is_dir($path) && is_readable($path)) {
+    /* Get contents and write it into an array */
+    $ret = [];
 
-      $dir = opendir($path);
+    $dir = opendir($path);
 
-      /* Is this a correct result ?*/
-      if ($dir) {
-        while ($fp = readdir($dir)) {
-          $ret[] = $fp;
-        }
+    /* Is this a correct result ?*/
+    if ($dir) {
+      while ($fp = readdir($dir)) {
+        $ret[] = $fp;
       }
     }
   }
@@ -1674,14 +915,17 @@ function clean_smarty_compile_dir ($directory)
       if (!compare_revision($revision_file, FD_VERSION)) {
         // If revision differs, clean compile directory
         foreach (scan_directory($directory) as $file) {
-          if (($file == ".") || ($file == "..")) {
+          if (($file == '.') || ($file == '..')) {
             continue;
           }
-          if (is_file($directory."/".$file)) {
-            // delete file
-            if (!unlink($directory."/".$file)) {
-              msg_dialog::display(_("Internal error"), sprintf(_("File '%s' could not be deleted. Try fusiondirectory-setup --check-directories to fix permissions."), $directory."/".$file), ERROR_DIALOG);
-            }
+          if (is_file($directory.'/'.$file) && !unlink($directory.'/'.$file)) {
+            $error = new FusionDirectoryError(
+              htmlescape(sprintf(
+                _('File "%s" could not be deleted. Try "fusiondirectory-configuration-manager --check-directories" to fix permissions.'),
+                $directory."/".$file
+              ))
+            );
+            $error->display();
           }
         }
       } else {
@@ -1712,14 +956,28 @@ function create_revision ($revision_file, $revision)
   $result = FALSE;
 
   if (is_dir(dirname($revision_file)) && is_writable(dirname($revision_file))) {
-    if ($fh = fopen($revision_file, 'w')) {
+    $fh = fopenWithErrorHandling($revision_file, 'w');
+    if (is_array($fh)) {
+      $error = new FusionDirectoryError(
+        htmlescape(_('Cannot write to revision file:')).'<br/>'.
+        implode(
+          '<br/>',
+          array_map('htmlescape', $fh)
+        )
+      );
+      $error->display();
+      return $result;
+    } else {
       if (fwrite($fh, $revision)) {
         $result = TRUE;
       }
       fclose($fh);
     }
-  } else {
-    msg_dialog::display(_('Internal error'), _('Cannot write to revision file!'), ERROR_DIALOG);
+  }
+
+  if (!$result) {
+    $error = new FusionDirectoryError(htmlescape(_('Cannot write to revision file!')));
+    $error->display();
   }
 
   return $result;
@@ -1742,15 +1000,23 @@ function compare_revision ($revision_file, $revision)
 
   if (file_exists($revision_file) && is_readable($revision_file)) {
     // Open file
-    if ($fh = fopen($revision_file, "r")) {
+    $fh = fopenWithErrorHandling($revision_file, 'r');
+    if (is_array($fh)) {
+      $error = new FusionDirectoryError(
+        htmlescape(_('Cannot read revision file:')).'<br/>'.
+        implode(
+          '<br/>',
+          array_map('htmlescape', $fh)
+        )
+      );
+      $error->display();
+    } else {
       // Compare File contents with current revision
       if ($revision == fread($fh, filesize($revision_file))) {
         $result = TRUE;
       }
       // Close file
       fclose($fh);
-    } else {
-      msg_dialog::display(_('Internal error'), _('Cannot read revision file!'), ERROR_DIALOG);
     }
   }
 
@@ -1765,7 +1031,7 @@ function compare_revision ($revision_file, $revision)
  * a certain key, regardless of the case.
  *
  * \code
- * $items = array('FOO' => 'blub', 'bar' => 'blub');
+ * $items = array ('FOO' => 'blub', 'bar' => 'blub');
  * array_key_ics('foo', $items); # Returns 'blub'
  * array_key_ics('BAR', $items); # Returns 'blub'
  * \endcode
@@ -1788,16 +1054,16 @@ function array_key_ics ($ikey, array $items)
 }
 
 
-/*!
- * \brief Determine if two arrays are different
+/**
+ * Determine if two arrays are different
  *
- * \param array $src The source
+ * @param array<int|string|bool|null|float|double|object> $src The source
  *
- * \param array $dst The destination
+ * @param array<int|string|bool|null|float|double|object> $dst The destination
  *
- * \return boolean TRUE or FALSE
+ * @return bool TRUE or FALSE
  */
-function array_differs ($src, $dst)
+function array_differs (array $src, array $dst): bool
 {
   /* If the count is differing, the arrays differ */
   if (count($src) != count($dst)) {
@@ -1807,35 +1073,49 @@ function array_differs ($src, $dst)
   return (count(array_diff($src, $dst)) != 0);
 }
 
-/*!
- * \brief Determine if two arrays are different using recursion for sublevels
+/**
+ * Determine if two arrays are different using recursion for sublevels
+ *
+ * @param mixed $src The source
+ *
+ * @param mixed $dst The destination
+ *
+ * @return bool TRUE or FALSE
+ */
+function array_differs_recursive ($src, $dst): bool
+{
+  return (array_cmp_recursive($src, $dst) !== 0);
+}
+
+/**
+ * Determine if two arrays are different using recursion for sublevels
  *
- * \param array $src The source
+ * @param mixed $src The source
  *
- * \param array $dst The destination
+ * @param mixed $dst The destination
  *
- * \return boolean TRUE or FALSE
+ * @return int negative, 0 or positive if $src is <, = or > $dst
  */
-function array_differs_recursive ($src, $dst)
+function array_cmp_recursive ($src, $dst): int
 {
   if (is_array($src)) {
     if (!is_array($dst)) {
-      return TRUE;
+      return 1;
     }
     if (count($src) != count($dst)) {
-      return TRUE;
+      return count($src) - count($dst);
     }
     foreach ($src as $key => $value) {
       if (!isset($dst[$key])) {
-        return TRUE;
+        return 1;
       }
-      if (array_differs_recursive($dst[$key], $value)) {
-        return TRUE;
+      if (($cmp = array_cmp_recursive($dst[$key], $value)) !== 0) {
+        return $cmp;
       }
     }
-    return FALSE;
+    return 0;
   }
-  return ((string)$src != (string)$dst);
+  return strcmp($src, $dst);
 }
 
 /*!
@@ -1855,7 +1135,7 @@ function normalizeLdap ($input)
  *
  * \param string $cfg A config object
  */
-function check_schema ($cfg)
+function check_schema (array $cfg)
 {
   $checks = [];
 
@@ -1864,7 +1144,8 @@ function check_schema ($cfg)
   $ldap = new ldapMultiplexer($ldapObj);
   $objectclasses = $ldap->get_objectclasses(TRUE);
   if (count($objectclasses) == 0) {
-    msg_dialog::display(_('LDAP warning'), _('Cannot get schema information from server. No schema check possible!'), WARNING_DIALOG);
+    $warning = new FusionDirectoryWarning(htmlescape(_('Cannot get schema information from server. No schema check possible!')));
+    $warning->display();
     return $checks;
   }
 
@@ -2029,7 +1310,7 @@ function change_password ($dn, $password, $hash = "")
     $userTab->userPassword,
     $userTab->attributesAccess['userPassword']->isLocked()
   ];
-  $userTabs->save_object();
+  $userTabs->update();
   $error = $userTabs->save();
   if (!empty($error)) {
     return $error;
@@ -2038,54 +1319,6 @@ function change_password ($dn, $password, $hash = "")
   return TRUE;
 }
 
-/* Lock or unlock samba account */
-function lock_samba_account ($mode, array $attrs)
-{
-  global $config;
-  if (!isset($attrs['sambaNTPassword'][0])) {
-    return [];
-  }
-  $modify = ['sambaNTPassword' => $attrs['sambaNTPassword'][0]];
-  if ($config->get_cfg_value("sambaGenLMPassword", "FALSE") == "TRUE") {
-    $modify['sambaLMPassword'] = $attrs['sambaLMPassword'][0];
-  } else {
-    $modify['sambaLMPassword'] = [];
-  }
-  foreach ($modify as &$pwd) {
-    if (is_array($pwd)) {
-      continue;
-    }
-    if ($mode == 'LOCK') {
-      /* Lock entry */
-      if (!preg_match('/^\!/', $pwd)) {
-        $pwd = '!'.$pwd;
-      }
-    } else {
-      /* Unlock entry */
-      $pwd = preg_replace("/^\!/",  "",   $pwd);
-    }
-  }
-  unset($pwd);
-  return $modify;
-}
-
-/* Lock or unlock ssh account */
-function lock_ssh_account ($mode, array $attrs, &$modify)
-{
-  if (!isset($attrs['sshPublicKey'])) {
-    return;
-  }
-  $modify['sshPublicKey'] = [];
-  for ($i = 0; $i < $attrs['sshPublicKey']['count']; ++$i) {
-    if ($mode == 'LOCK') {
-      $modify['sshPublicKey'][] = preg_replace('/^/', 'disabled-', $attrs['sshPublicKey'][$i]);
-    } else {
-      $modify['sshPublicKey'][] = preg_replace('/^disabled-/', '', $attrs['sshPublicKey'][$i]);
-    }
-  }
-}
-
-
 /*!
  * \brief Get the Change Sequence Number of a certain DN
  *
@@ -2098,7 +1331,7 @@ function lock_ssh_account ($mode, array $attrs, &$modify)
  *
  * \return either the result or "" in any other case
  */
-function getEntryCSN ($dn)
+function getEntryCSN (string $dn): string
 {
   global $config;
   if (empty($dn) || !is_object($config)) {
@@ -2110,9 +1343,9 @@ function getEntryCSN ($dn)
   if ($attr != '') {
     $ldap = $config->get_ldap_link();
     $ldap->cat($dn, [$attr]);
-    $csn = $ldap->fetch();
-    if (isset($csn[$attr][0])) {
-      return $csn[$attr][0];
+    $attrs = $ldap->fetch();
+    if (isset($attrs[$attr][0])) {
+      return $attrs[$attr][0];
     }
   }
   return '';
@@ -2148,20 +1381,6 @@ function send_binary_content ($data, $name, $type = "application/octet-stream")
   exit();
 }
 
-
-function reverse_html_entities ($str, $type = ENT_QUOTES, $charset = "UTF-8")
-{
-  if (is_string($str)) {
-    return htmlentities($str, $type, $charset);
-  } elseif (is_array($str)) {
-    foreach ($str as $name => $value) {
-      $str[$name] = reverse_html_entities($value, $type, $charset);
-    }
-  }
-  return $str;
-}
-
-
 /*!
  * \brief Encode special string characters
  *
@@ -2234,18 +1453,6 @@ function cred_decrypt ($input, $password)
   return openssl_decrypt($input, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);
 }
 
-
-function get_object_info ()
-{
-  return session::get('objectinfo');
-}
-
-
-function set_object_info ($str = "")
-{
-  session::set('objectinfo', $str);
-}
-
 /*!
  * \brief Test if an ip is the network range
  *
@@ -2257,13 +1464,13 @@ function set_object_info ($str = "")
  */
 function isIpInNet ($ip, $net, $mask)
 {
-   // Move to long ints
-   $ip    = ip2long($ip);
-   $net   = ip2long($net);
-   $mask  = ip2long($mask);
+  // Move to long ints
+  $ip    = ip2long($ip);
+  $net   = ip2long($net);
+  $mask  = ip2long($mask);
 
-   // Mask given IP with mask. If it returns "net", we're in...
-   return (($ip & $mask) == $net);
+  // Mask given IP with mask. If it returns "net", we're in...
+  return (($ip & $mask) == $net);
 }
 
 /*!
@@ -2272,9 +1479,7 @@ function isIpInNet ($ip, $net, $mask)
 function expandIPv6 ($ip)
 {
   $hex  = unpack('H*hex', inet_pton($ip));
-  $ip   = substr(preg_replace('/([A-f0-9]{4})/', "$1:", $hex['hex']), 0, -1);
-
-  return $ip;
+  return substr(preg_replace('/([A-f0-9]{4})/', "$1:", $hex['hex']), 0, -1);
 }
 
 /* Mark the occurance of a string with a span */
@@ -2292,9 +1497,7 @@ function mark ($needle, $haystack)
 
 function reset_errors ()
 {
-  session::set('errors', '');
   session::set('errorsAlreadyPosted', []);
-  session::set('LastError', '');
 }
 
 function load_all_classes ()
@@ -2307,116 +1510,18 @@ function load_all_classes ()
       if (is_readable("$BASE_DIR/$path")) {
         require_once("$BASE_DIR/$path");
       } else {
-        msg_dialog::display(_('Fatal error'),
-            sprintf(_("Cannot locate file '%s' - please run '%s' to fix this"),
-              "$BASE_DIR/$path", '<b>fusiondirectory-setup</b>'), FATAL_ERROR_DIALOG);
-        exit;
+        throw new FatalError(
+          sprintf(
+            htmlescape(_('Cannot locate file "%s" - please run "%s" to fix this')),
+            htmlescape("$BASE_DIR/$path"),
+            '<b>fusiondirectory-configuration-manager --update-cache</b>'
+          )
+        );
       }
     }
   }
 }
 
-if (!function_exists('ldap_escape')) {
-  /* This bloc is for PHP<5.6 */
-  define('LDAP_ESCAPE_FILTER', 0x01);
-  define('LDAP_ESCAPE_DN',     0x02);
-
-  /* PHP version of ldap_escape for PHP<5.6 */
-  function ldap_escape ($subject, $ignore = '', $flags = 0)
-  {
-    static $charMaps = [
-      LDAP_ESCAPE_FILTER => ['\\', '*', '(', ')', "\x00"],
-      LDAP_ESCAPE_DN     => ['\\', ',', '=', '+', '<', '>', ';', '"', '#'],
-    ];
-
-    // Pre-process the char maps on first call
-    if (!isset($charMaps[0])) {
-      $charMaps[0] = [];
-      for ($i = 0; $i < 256; $i++) {
-        $charMaps[0][chr($i)] = sprintf('\\%02x', $i);
-      }
-
-      for ($i = 0, $l = count($charMaps[LDAP_ESCAPE_FILTER]); $i < $l; $i++) {
-        $chr = $charMaps[LDAP_ESCAPE_FILTER][$i];
-        unset($charMaps[LDAP_ESCAPE_FILTER][$i]);
-        $charMaps[LDAP_ESCAPE_FILTER][$chr] = $charMaps[0][$chr];
-      }
-
-      for ($i = 0, $l = count($charMaps[LDAP_ESCAPE_DN]); $i < $l; $i++) {
-        $chr = $charMaps[LDAP_ESCAPE_DN][$i];
-        unset($charMaps[LDAP_ESCAPE_DN][$i]);
-        $charMaps[LDAP_ESCAPE_DN][$chr] = $charMaps[0][$chr];
-      }
-    }
-
-    // Create the base char map to escape
-    $flags = (int)$flags;
-    $charMap = [];
-    if ($flags & LDAP_ESCAPE_FILTER) {
-      $charMap += $charMaps[LDAP_ESCAPE_FILTER];
-    }
-    if ($flags & LDAP_ESCAPE_DN) {
-      $charMap += $charMaps[LDAP_ESCAPE_DN];
-    }
-    if (!$charMap) {
-      $charMap = $charMaps[0];
-    }
-
-    // Remove any chars to ignore from the list
-    $ignore = (string)$ignore;
-    for ($i = 0, $l = strlen($ignore); $i < $l; $i++) {
-      unset($charMap[$ignore[$i]]);
-    }
-
-    // Do the main replacement
-    $result = strtr($subject, $charMap);
-
-    // Encode leading/trailing spaces if LDAP_ESCAPE_DN is passed
-    if ($flags & LDAP_ESCAPE_DN) {
-      if ($result[0] === ' ') {
-        $result = '\\20' . substr($result, 1);
-      }
-      if ($result[strlen($result) - 1] === ' ') {
-        $result = substr($result, 0, -1) . '\\20';
-      }
-    }
-
-    return $result;
-  }
-}
-
-if (!function_exists('random_int')) {
-  // PHP<7, we fallback on openssl_random_pseudo_bytes
-  function random_int ($min, $max)
-  {
-    $range = $max - $min;
-    if ($range <= 0) {
-      throw new Exception('Invalid range passed to random_int');
-    }
-
-    $log      = log($range, 2);
-    // length in bytes
-    $nbBytes  = (int) ($log / 8) + 1;
-    // length in bits
-    $nbBits   = (int) $log + 1;
-    // set all lower bits to 1
-    $filter   = pow(2, $nbBits) - 1;
-    if ($filter >= PHP_INT_MAX) {
-      $filter = PHP_INT_MAX;
-    }
-    do {
-      $randomBytes = openssl_random_pseudo_bytes($nbBytes, $strong);
-      if (!$strong || ($randomBytes === FALSE)) {
-        throw new Exception('Failed to get random bytes');
-      }
-      $rnd = hexdec(bin2hex($randomBytes));
-      // discard irrelevant bits
-      $rnd = $rnd & $filter;
-    } while ($rnd > $range);
-    return $min + $rnd;
-  }
-}
-
 function ldap_escape_f ($str, $ignore = '')
 {
   return ldap_escape($str, $ignore, LDAP_ESCAPE_FILTER);
@@ -2464,21 +1569,40 @@ function mail_utf8 ($to, $from_user, $from_email, $subject, $message, $replyto_u
 }
 
 /* Calls fopen, gives errors as an array if any, file handle if successful */
-function fopenWithErrorHandling ()
+function fopenWithErrorHandling (...$args)
 {
-  $args   = func_get_args();
   $errors = [];
   set_error_handler(
-    function ($errno, $errstr, $errfile, $errline, $errcontext) use (&$errors)
+    function (int $errno, string $errstr, string $errfile, int $errline, array $errcontext) use (&$errors): bool
     {
       $errors[] = $errstr;
+
+      return TRUE;
     }
   );
-  $fh = @call_user_func_array('fopen', $args);
+  $fh = @fopen(...$args);
   restore_error_handler();
   if ($fh !== FALSE) {
     return $fh;
   }
   return $errors;
 }
-?>
+
+// Check to see if it exists in case PHP has this function later
+if (!function_exists('mb_substr_replace')) {
+  // Same parameters as substr_replace with the extra encoding parameter
+  function mb_substr_replace (string $string, string $replacement, $start, $length = NULL, $encoding = NULL)
+  {
+    if ($encoding === NULL) {
+      $encoding = mb_internal_encoding();
+    }
+    if ($length === NULL) {
+      return  mb_substr($string, 0, $start, $encoding).
+              $replacement;
+    } else {
+      return  mb_substr($string, 0, $start, $encoding).
+              $replacement.
+              mb_substr($string, $start + $length, NULL, $encoding);
+    }
+  }
+}
diff --git a/include/functions_debug.inc b/include/functions_debug.inc
index f96bccd4449377f552f686ba21c6b34e0c9d1dbe..b6e335479e43df8832f965a4786a4c9c8d6f78d4 100644
--- a/include/functions_debug.inc
+++ b/include/functions_debug.inc
@@ -40,7 +40,8 @@
  * based on the print_a() function from
  * Stephan Pirson (Saibot)
  */
-class printAClass {
+class printAClass
+{
 
   // this can be changed to FALSE if you don't like the fancy string formatting
   var $look_for_leading_tabs = TRUE;
@@ -98,30 +99,27 @@ class printAClass {
     }
 
     if (!$iteration && isset($this->export_flag)) {
-      $this->output .= '<form id="pa_form_'.$this->export_hash.'" action="'.$this->export_dumper_path.'?mode='.$this->export_flag.'" method="post" target="_blank"><input name="array" type="hidden" value="'.htmlspecialchars( serialize( $array ) ).'"></form>';
+      $this->output .= '<form id="pa_form_'.$this->export_hash.'" action="'.$this->export_dumper_path.'?mode='.$this->export_flag.'" method="post" target="_blank"><input name="array" type="hidden" value="'.htmlspecialchars(serialize($array)).'"></form>';
     }
 
     // lighten up the background color for the key td's =)
     if ($iteration) {
+      $tmp_key_bg_color = '';
       for ($i = 0; $i < 6; $i += 2) {
-        $c = substr( $key_bg_color, $i, 2 );
-        $c = hexdec( $c );
+        $c = substr($key_bg_color, $i, 2);
+        $c = hexdec($c);
         $c += 15;
         if ($c > 255) {
           $c = 255;
         }
-        if (!isset($tmp_key_bg_color)) {
-          $tmp_key_bg_color = '';
-        }
-        $tmp_key_bg_color .= sprintf( "%02X", $c );
+        $tmp_key_bg_color .= sprintf("%02X", $c);
       }
       $key_bg_color = $tmp_key_bg_color;
     }
 
     // build a single table ... may be nested
-    $this->output .= '<table style="border:none;" '.( !$iteration && $this->export_flag ? 'onClick="document.getElementById(\'pa_form_'.$this->export_hash.'\').submit();" )' : '' ).'>';
+    $this->output .= '<table style="border:none;" '.(!$iteration && $this->export_flag ? 'onClick="document.getElementById(\'pa_form_'.$this->export_hash.'\').submit();" )' : '').'>';
     foreach ($array as $key => $value) {
-
       $value_style  = 'color:black;';
       $key_style    = 'color:white;';
 
@@ -132,10 +130,6 @@ class printAClass {
         case 'array':
           break;
 
-        case 'object':
-          $key_style = 'color:#FF9B2F;';
-          break;
-
         case 'integer':
           $value_style = 'color:green;';
           break;
@@ -156,17 +150,22 @@ class printAClass {
           if ($this->look_for_leading_tabs && preg_match('/^\t/m', $value)) {
             $search       = ['/\t/', "/\n/"];
             $replace      = ['&nbsp;&nbsp;&nbsp;','<br />'];
-            $value        = preg_replace( $search, $replace, htmlspecialchars($value));
+            $value        = preg_replace($search, $replace, htmlspecialchars($value));
             $value_style  = 'color:black;border:1px gray dotted;';
           } else {
             $value_style  = 'color:black;';
             $value        = nl2br(htmlspecialchars($value));
           }
           break;
+
+        case 'object':
+        default:
+          $key_style = 'color:#FF9B2F;';
+          break;
       }
 
       $this->output .= '<tr>';
-      $this->output .= '<td nowrap align="'.$this->keyalign.'" style="background-color:#'.$key_bg_color.';'.$key_style.';font:bold '.$this->fontsize.' '.$this->fontfamily.';" title="'.gettype( $key ).'['.$type.']">';
+      $this->output .= '<td nowrap align="'.$this->keyalign.'" style="background-color:#'.$key_bg_color.';'.$key_style.';font:bold '.$this->fontsize.' '.$this->fontfamily.';" title="'.gettype($key).'['.$type.']">';
       $this->output .= $key;
       $this->output .= '</td>';
       $this->output .= '<td nowrap="nowrap" style="background-color:#'.$this->value_bg_color.';font: '.$this->fontsize.' '.$this->fontfamily.'; color:black;">';
@@ -174,13 +173,13 @@ class printAClass {
       // value output
       if ($type == 'array') {
         if (count($value)) {
-          $this->print_a( $value, TRUE, $key_bg_color );
+          $this->print_a($value, TRUE, $key_bg_color);
         } else {
           $this->output .= '<div style="color:blue;">Array (empty)</div>';
         }
       } elseif ($type == 'object') {
         if ($this->show_object_vars) {
-          $this->print_a( get_object_vars( $value ), TRUE, $key_bg_color );
+          $this->print_a(get_object_vars($value), TRUE, $key_bg_color);
         } else {
           $this->output .= '<div style="'.$value_style.'">OBJECT - '.get_class($value).'</div>';
         }
@@ -196,7 +195,7 @@ class printAClass {
 }
 
 /*
- * \brief helper function.. calls print_a () inside the printAClass
+ * \brief helper function.. calls print_a() inside the printAClass
  *
  * \param array $array
  *
@@ -206,7 +205,7 @@ class printAClass {
  *
  * \param boolean $export_flag false
  */
-function print_a ($array, $return_mode = FALSE, $show_object_vars = FALSE, $export_flag = FALSE )
+function print_a ($array, $return_mode = FALSE, $show_object_vars = FALSE, $export_flag = FALSE)
 {
   $e = error_reporting(0);
   if (is_array($array) || is_object($array)) {
@@ -222,7 +221,7 @@ function print_a ($array, $return_mode = FALSE, $show_object_vars = FALSE, $expo
 
     $output = &$pa->output;
   } else {
-    $output = '<span style="color:red;font-size:small;">print_a( '.gettype( $array ).' )</span>';
+    $output = '<span style="color:red;font-size:small;">print_a( '.gettype($array).' )</span>';
   }
 
   error_reporting($e);
diff --git a/include/interface_FusionDirectoryDialog.inc b/include/interface_FusionDirectoryDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..eefe293ee893fcae61f741ba3b0d19beeb848d25
--- /dev/null
+++ b/include/interface_FusionDirectoryDialog.inc
@@ -0,0 +1,42 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2019-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \file interface_FusionDirectoryDialog.inc
+ * Source code for the interface FusionDirectoryDialog
+ */
+
+/*! \brief This interface should be implemented by all dialog classes in FusionDirectory
+ */
+interface FusionDirectoryDialog
+{
+  /*! \brief Interpret POST content
+   */
+  public function readPost ();
+
+  /*! \brief Update state and return FALSE if the dialog was closed
+   */
+  public function update (): bool;
+
+  /*! \brief Render the dialog and returns the HTML code
+   */
+  public function render (): string;
+}
diff --git a/include/interface_UserTabLockingAction.inc b/include/interface_UserTabLockingAction.inc
new file mode 100644
index 0000000000000000000000000000000000000000..bfd4a9b930a551391d6932bba341b0048be9e26c
--- /dev/null
+++ b/include/interface_UserTabLockingAction.inc
@@ -0,0 +1,40 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \file interface_UserTabLockingAction.inc
+ * Source code for the interface userTabLockingAction
+ */
+
+/*! \brief This interface is implemented when a user tabs needs to alter the locking LDAP modification for users
+ */
+interface UserTabLockingAction
+{
+  /*! \brief Fills the $modify array with needed modifications for (un)locking this user
+   *
+   * This method is called after loading the object, so $this->attrs should
+   *  contain information identical to the one in the LDAP
+   *
+   * \param string  $mode   LOCK or UNLOCK
+   * \param array   &$modify LDAP modification to execute for (un)locking
+   * */
+  public function fillLockingLDAPAttrs (string $mode, array &$modify);
+}
diff --git a/include/login/class_LoginCAS.inc b/include/login/class_LoginCAS.inc
new file mode 100644
index 0000000000000000000000000000000000000000..462dbab9189c7f0188220b12d374438003710346
--- /dev/null
+++ b/include/login/class_LoginCAS.inc
@@ -0,0 +1,131 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Login via CAS
+ */
+class LoginCAS extends LoginMethod
+{
+  /*! \brief Displayed name */
+  static function getLabel ()
+  {
+    return _('CAS');
+  }
+
+  /*! \brief Initialize phpCAS library */
+  static function initCAS ()
+  {
+    global $config;
+
+    require_once('CAS.php');
+    /* Move FD autoload after CAS autoload */
+    spl_autoload_unregister('fusiondirectory_autoload');
+    spl_autoload_register('fusiondirectory_autoload');
+
+    if ($config->get_cfg_value('CasVerbose') == 'TRUE') {
+      phpCAS::setVerbose(TRUE);
+    }
+
+    // Initialize CAS with proper library and call.
+    if ($config->get_cfg_value('CasLibraryBool')) {
+      phpCAS::client(
+        CAS_VERSION_2_0,
+        $config->get_cfg_value('CasHost', 'localhost'),
+        (int) ($config->get_cfg_value('CasPort', 443)),
+        $config->get_cfg_value('CasContext'),
+        $config->get_cfg_value('CasClientServiceName')
+      );
+    } else {
+      phpCAS::client(
+        CAS_VERSION_2_0,
+        $config->get_cfg_value('CasHost', 'localhost'),
+        (int) ($config->get_cfg_value('CasPort', 443)),
+        $config->get_cfg_value('CasContext')
+      );
+    }
+
+    // Set the CA certificate that is the issuer of the cert
+    phpCAS::setCasServerCACert($config->get_cfg_value('CasServerCaCertPath'));
+  }
+
+  /*! \brief All login steps in the right order for CAS login */
+  static function loginProcess ()
+  {
+    global $config, $message, $ui;
+
+    static::init();
+
+    static::initCAS();
+
+    /* Reset error messages */
+    $message = '';
+
+    /* Remove query string from redirection URL to avoid signout loops */
+    phpCAS::setFixedServiceURL(preg_replace('/\?.*$/', '', phpCAS::getServiceURL()));
+
+    /* Force CAS authentication */
+    phpCAS::forceAuthentication();
+    static::$username = phpCAS::getUser();
+
+    $ui = userinfo::getLdapUser(static::$username);
+
+    if ($ui === FALSE) {
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('CAS user "%s" could not be found in LDAP'),
+          static::$username
+        ))
+      );
+    } elseif (is_string($ui)) {
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('Login with user "%s" triggered error: %s'),
+          static::$username,
+          $ui
+        ))
+      );
+    }
+
+    $ui->loadACL();
+
+    $success = static::runSteps([
+      'checkForLockingBranch',
+      'loginAndCheckExpired',
+      'runSchemaCheck',
+    ]);
+
+    if ($success) {
+      /* Everything went well, redirect to main.php */
+      static::redirect();
+    } else {
+      echo msg_dialog::get_dialogs();
+      if (!empty($message)) {
+        throw new FatalError(
+          htmlescape(sprintf(
+            _('Login with user "%s" triggered error: %s'),
+            static::$username,
+            $message
+          ))
+        );
+      }
+      exit();
+    }
+  }
+}
diff --git a/include/login/class_LoginHTTPAuth.inc b/include/login/class_LoginHTTPAuth.inc
new file mode 100644
index 0000000000000000000000000000000000000000..00e4b3a88770f31959ae460be1c7f2df537ea2a3
--- /dev/null
+++ b/include/login/class_LoginHTTPAuth.inc
@@ -0,0 +1,70 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Login via HTTP Basic Auth
+ */
+class LoginHTTPAuth extends LoginMethod
+{
+  /*! \brief Displayed name */
+  static function getLabel ()
+  {
+    return _('HTTP Basic Auth');
+  }
+
+  /*! \brief All login steps in the right order for HTTP auth login */
+  static function loginProcess ()
+  {
+    global $config, $message;
+
+    static::init();
+
+    if (!isset($_SERVER['PHP_AUTH_USER'])) {
+      static::authenticateHeader();
+    }
+
+    static::$username = $_SERVER['PHP_AUTH_USER'];
+    static::$password = $_SERVER['PHP_AUTH_PW'];
+
+    $success = static::runSteps([
+      'validateUserInput',
+      'checkForLockingBranch',
+      'ldapLoginUser',
+      'loginAndCheckExpired',
+      'runSchemaCheck',
+    ]);
+
+    if ($success) {
+      /* Everything went well, redirect to main.php */
+      static::redirect();
+    } else {
+      static::authenticateHeader($message);
+    }
+  }
+
+  /*! \brief Return HTTP authentication header */
+  static function authenticateHeader ($message = 'Authentication required')
+  {
+    header('WWW-Authenticate: Basic realm="FusionDirectory"');
+    header('HTTP/1.0 401 Unauthorized');
+    echo "$message\n";
+    exit;
+  }
+}
diff --git a/include/login/class_LoginHTTPHeader.inc b/include/login/class_LoginHTTPHeader.inc
new file mode 100644
index 0000000000000000000000000000000000000000..2fdd8be0a18447a27e463716428ca6a2787c46c7
--- /dev/null
+++ b/include/login/class_LoginHTTPHeader.inc
@@ -0,0 +1,99 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Login via HTTP Header
+ */
+class LoginHTTPHeader extends LoginMethod
+{
+  /*! \brief Displayed name */
+  static function getLabel ()
+  {
+    return _('HTTP Header');
+  }
+
+  /*! \brief All login steps in the right order for HTTP Header login */
+  static function loginProcess ()
+  {
+    global $config, $message, $ui;
+
+    static::init();
+
+    /* Reset error messages */
+    $message = '';
+
+    $header = $config->get_cfg_value('httpHeaderAuthHeaderName', 'AUTH_USER');
+
+    static::$username = $_SERVER['HTTP_'.$header];
+
+    if (!static::$username) {
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('No value found in HTTP header "%s"'),
+          $header
+        ))
+      );
+    }
+
+    $ui = userinfo::getLdapUser(static::$username);
+
+    if ($ui === FALSE) {
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('Header user "%s" could not be found in LDAP'),
+          static::$username
+        ))
+      );
+    } elseif (is_string($ui)) {
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('Login with user "%s" triggered error: %s'),
+          static::$username,
+          $ui
+        ))
+      );
+    }
+
+    $ui->loadACL();
+
+    $success = static::runSteps([
+      'checkForLockingBranch',
+      'loginAndCheckExpired',
+      'runSchemaCheck',
+    ]);
+
+    if ($success) {
+      /* Everything went well, redirect to main.php */
+      static::redirect();
+    } else {
+      echo msg_dialog::get_dialogs();
+      if (!empty($message)) {
+        throw new FatalError(
+          htmlescape(sprintf(
+            _('Login with user "%s" triggered error: %s'),
+            static::$username,
+            $message
+          ))
+        );
+      }
+      exit();
+    }
+  }
+}
diff --git a/include/login/class_LoginMethod.inc b/include/login/class_LoginMethod.inc
new file mode 100644
index 0000000000000000000000000000000000000000..d036f488ff968795121a75fbe6638819a3548b22
--- /dev/null
+++ b/include/login/class_LoginMethod.inc
@@ -0,0 +1,266 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Base class for login methods
+ *
+ * See index.php
+ */
+class LoginMethod
+{
+  static protected $username;
+  static protected $password;
+
+  static function init ()
+  {
+    static::$username = NULL;
+    static::$password = NULL;
+  }
+
+  /*! \brief Runs schemaCheck if activated in configuration */
+  static function runSchemaCheck (): bool
+  {
+    global $config;
+    if ($config->get_cfg_value('schemaCheck') != 'TRUE') {
+      return TRUE;
+    }
+    $cfg = [];
+    $cfg['admin']       = $config->current['ADMINDN'];
+    $cfg['password']    = $config->current['ADMINPASSWORD'];
+    $cfg['connection']  = $config->current['SERVER'];
+    $cfg['tls']         = ($config->get_cfg_value('ldapTLS') == 'TRUE');
+    $str = check_schema($cfg);
+    foreach ($str as $tr) {
+      if (!$tr['STATUS']) {
+        if ($tr['IS_MUST_HAVE']) {
+          throw new FusionDirectoryError(htmlescape(_('LDAP schema check reported errors:')).'<br/><br/><i>'.htmlescape($tr['MSG']).'</i>');
+        } else {
+          $warning = new FusionDirectoryWarning(nl2br(htmlescape(sprintf(_("LDAP schema error:\n%s"), $tr['MSG']))));
+          $warning->display();
+        }
+      }
+    }
+    return TRUE;
+  }
+
+  /*! \brief Check if locking LDAP branch is here or create it */
+  static function checkForLockingBranch (): bool
+  {
+    global $config;
+    $ldap = $config->get_ldap_link();
+    $ldap->cat(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE'], ['dn']);
+    $attrs = $ldap->fetch();
+    if (!count($attrs)) {
+      $ldap->cd($config->current['BASE']);
+      try {
+        $ldap->create_missing_trees(get_ou('lockRDN').get_ou('fusiondirectoryRDN').$config->current['BASE']);
+      } catch (FusionDirectoryError $error) {
+        $error->display();
+      }
+    }
+
+    return TRUE;
+  }
+
+  /*! \brief Check username for invalid characters and check password is not empty
+   * Also trims username */
+  static function validateUserInput (): bool
+  {
+    global $message, $smarty;
+    static::$username = trim(static::$username);
+    if (!preg_match('/^[@A-Za-z0-9_.-]+$/', static::$username)) {
+      $message = _('Please specify a valid username!');
+      return FALSE;
+    } elseif (mb_strlen(static::$password, 'UTF-8') == 0) {
+      $message = _('Please specify your password!');
+      $smarty->assign('focusfield', 'password');
+      return FALSE;
+    }
+    return TRUE;
+  }
+
+  /*! \brief Performs an LDAP bind with $username and $password */
+  static function ldapLoginUser (): bool
+  {
+    global $ui, $config, $message, $smarty;
+    /* Login as user, initialize user ACL's */
+    try {
+      $ui = userinfo::loginUser(static::$username, static::$password);
+    } catch (LoginFailureException $e) {
+      /* Load plist to be able to log */
+      pluglist::load();
+      logging::log('security', 'login failure', static::$username, [], 'Authentication failed: '.$e->getMessage());
+      /* Show the same message whether the user exists or not to avoid information leak */
+      $message = $e->getMessage();
+      $smarty->assign('focusfield', 'password');
+      return FALSE;
+    }
+    return TRUE;
+  }
+
+  /*! \brief Called after successful login, return FALSE if account is expired */
+  static function loginAndCheckExpired (): bool
+  {
+    global $ui, $config, $plist, $message, $smarty;
+
+    /* Remove all locks of this user */
+    Lock::deleteByUser($ui->dn);
+
+    /* Save userinfo and plugin structure */
+    session::set('ui', $ui);
+
+    /* User might have its own language, re-run initLanguage */
+    $plistReloaded = Language::init();
+
+    /* We need a fully loaded plist and config to test account expiration */
+    if (!$plistReloaded) {
+      session::un_set('plist');
+    }
+    pluglist::load();
+
+    /* Check that newly installed plugins have their configuration in the LDAP (will reload plist if needed) */
+    $config->checkLdapConfig();
+
+    /* Check account expiration */
+    $expired = $ui->expired_status();
+
+    if ($expired == POSIX_ACCOUNT_EXPIRED) {
+      logging::log('security', 'account', $ui->dn, [], 'Account for user "'.static::$username.'" has expired');
+      $message = _('Account locked. Please contact your system administrator!');
+      $smarty->assign('focusfield', 'username');
+      return FALSE;
+    }
+
+    return TRUE;
+  }
+
+  /*! \brief Connect user */
+  static function connect ()
+  {
+    global $config, $ui;
+
+    $ui = session::get('ui');
+
+    //Create new session ID to avoir session_fixation security issues after sucess login
+    session_regenerate_id();
+
+    /* Not account expired or password forced change go to main page */
+    logging::log('security', 'login', $ui->uid, [], 'Logged in successfully');
+    session::set('connected', 1);
+    session::set('DEBUGLEVEL', $config->get_cfg_value('DEBUGLEVEL'));
+  }
+
+  /*! \brief Final step of successful login: redirect to main.php */
+  static function redirect ()
+  {
+    static::connect();
+    header('Location: main.php');
+    exit;
+  }
+
+  /*! \brief Run each step in $steps, stop on errors */
+  static function runSteps ($steps)
+  {
+    try {
+      foreach ($steps as $step) {
+        $status = static::$step();
+        if (is_string($status)) {
+          /* Deprecated */
+          msg_dialog::display(_('LDAP error'), $status, LDAP_ERROR);
+          return FALSE;
+        } elseif ($status === FALSE) {
+          return FALSE;
+        }
+      }
+    } catch (FusionDirectoryError $e) {
+      $e->display();
+      return FALSE;
+    }
+    return TRUE;
+  }
+
+  /*! \brief All login steps in the right order */
+  static function loginProcess ()
+  {
+    global $config, $smarty;
+
+    $method = $config->get_cfg_value('LoginMethod', '');
+    if (empty($method)) {
+      // Try to detect configurations from FD<1.4
+      if ($config->get_cfg_value('httpAuthActivated') == 'TRUE') {
+        $method = 'LoginHTTPAuth';
+      } elseif ($config->get_cfg_value('casActivated') == 'TRUE') {
+        $method = 'LoginCAS';
+      } elseif ($config->get_cfg_value('httpHeaderAuthActivated') == 'TRUE') {
+        $method = 'LoginHTTPHeader';
+      } else {
+        $method = 'LoginPost';
+      }
+    }
+    try {
+      $method::loginProcess();
+    } catch (Exception $e) {
+      $lang = session::get('lang');
+
+      $display = '<h1>'.htmlescape(_('An unrecoverable error occurred. Please contact your administator.')).'</h1><p>';
+      if (ini_get('display_errors') == 1) {
+        $display .= nl2br(htmlescape((string)$e));
+      } else {
+        $display .= 'Error detail display is turned off.';
+      }
+      $display .= '</p>'."\n";
+      $smarty->assign('headline',       _('Fatal error!'));
+      $smarty->assign('headline_image', 'geticon.php?context=status&icon=dialog-error&size=32');
+      $smarty->assign('usePrototype',   'false');
+      $smarty->assign('date',           date('l, dS F Y H:i:s O'));
+      $smarty->assign('lang',           preg_replace('/_.*$/', '', $lang));
+      $smarty->assign('rtl',            Language::isRTL($lang));
+
+      $smarty->display(get_template_path('headers.tpl'));
+      echo $display;
+      exit();
+    }
+  }
+
+  /*! \brief Displayed name for each login method. Returning FALSE disables a method */
+  static function getLabel ()
+  {
+    return FALSE;
+  }
+
+  static function getMethods ()
+  {
+    $methods = [
+      'LoginPost',
+      'LoginCAS',
+      'LoginHTTPAuth',
+      'LoginHTTPHeader',
+    ];
+    $return = [];
+    foreach ($methods as $method) {
+      $label = $method::getLabel();
+      if ($label) {
+        $return[$method] = $label;
+      }
+    }
+    return $return;
+  }
+}
diff --git a/include/login/class_LoginPost.inc b/include/login/class_LoginPost.inc
new file mode 100644
index 0000000000000000000000000000000000000000..87c6c071187aba6eb6685cee3e30a70ea08b45a3
--- /dev/null
+++ b/include/login/class_LoginPost.inc
@@ -0,0 +1,231 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Login via POST
+ */
+class LoginPost extends LoginMethod
+{
+  /*! \brief List of second factor methods, may be dynamic later */
+  static $secondFactorMethods = ['SecondFactorWebAuthn','SecondFactorTotp','SecondFactorRecoveryCode'];
+
+  /*! \brief Displayed name */
+  static function getLabel ()
+  {
+    return _('HTML form');
+  }
+
+  static function init ()
+  {
+    parent::init();
+
+    /* Init second factor methods if needed */
+    foreach (static::$secondFactorMethods as $secondFactorMethod) {
+      if (!class_available($secondFactorMethod)) {
+        continue;
+      }
+      $secondFactorMethod::init();
+    }
+  }
+
+  /*! \brief All login steps in the right order for standard POST login */
+  static function loginProcess ()
+  {
+    global $smarty, $config, $message;
+
+    static::init();
+
+    $smarty->assign('focusfield', 'username');
+
+    if (($_SERVER['REQUEST_METHOD'] == 'POST') && isset($_POST['login']) && isset($_POST['username']) && isset($_POST['password'])) {
+      static::$username = $_POST['username'];
+      static::$password = $_POST['password'];
+
+      $success = static::runSteps([
+        'validateUserInput',
+        'checkForLockingBranch',
+        'ldapLoginUser',
+        'loginAndCheckExpired',
+        'runSchemaCheck',
+      ]);
+
+      if ($success) {
+        /* If needed redirect to second factor page */
+        $secondFactor = FALSE;
+        foreach (static::$secondFactorMethods as $secondFactorMethod) {
+          if (!class_available($secondFactorMethod)) {
+            continue;
+          }
+          $secondFactor = ($secondFactorMethod::hasSecondFactor() || $secondFactor);
+        }
+        if ($secondFactor) {
+          static::redirectSecondFactorPage();
+        }
+
+        /* Everything went well, redirect to main.php */
+        static::redirect();
+      }
+    }
+
+    static::displayLogin();
+  }
+
+  /*! \brief Redirect to the second factor page */
+  static protected function redirectSecondFactorPage ()
+  {
+    session::un_set('connected');
+    header('Location: secondfactor.php');
+    exit;
+  }
+
+  /*! \brief Display the login page and exit() */
+  static protected function displayLogin ()
+  {
+    global $smarty,$message,$config,$ssl,$error_collector,$error_collector_mailto;
+
+    $lang = session::get('lang');
+
+    error_reporting(E_ALL | E_STRICT);
+
+    /* Fill template with required values */
+    $username = '';
+    if (isset($_POST['username'])) {
+      $username = trim($_POST['username']);
+    }
+    $smarty->assign('date',       gmdate('D, d M Y H:i:s'));
+    $smarty->assign('username',   $username);
+    $smarty->assign('copynotice', copynotice());
+    $smarty->append('css_files',  get_template_path('login.css'));
+    $smarty->assign('title',      _('Sign in'));
+
+    /* Some error to display? */
+    if (!isset($message)) {
+      $message = '';
+    }
+    $smarty->assign('message', $message);
+
+    /* Display SSL mode warning? */
+    if (($ssl != '') && ($config->get_cfg_value('warnSSL') == 'TRUE')) {
+      $smarty->assign('ssl', sprintf(htmlescape(_('Warning: %sSession is not encrypted!%s')), '<a href="'.$ssl.'">', '</a>'));
+    } else {
+      $smarty->assign('ssl', '');
+    }
+
+    if (!$config->check_session_lifetime()) {
+      $smarty->assign('lifetime', _('Warning: The session lifetime configured in your fusiondirectory.conf will be overridden by php.ini settings.'));
+    } else {
+      $smarty->assign('lifetime', '');
+    }
+
+    /* Generate server list */
+    $servers = [];
+    if (isset($_POST['server'])) {
+      $selected = $_POST['server'];
+    } else {
+      $selected = $config->data['MAIN']['DEFAULT'];
+    }
+    foreach ($config->data['LOCATIONS'] as $key => $ignored) {
+      $servers[$key] = $key;
+    }
+    $smarty->assign('server_options', $servers);
+    $smarty->assign('server_id',      $selected);
+
+    /* show login screen */
+    $smarty->assign('PHPSESSID', session_id());
+    if ($error_collector != '') {
+      $smarty->assign('php_errors', preg_replace('/%BUGBODY%/', $error_collector_mailto, $error_collector).'</div>');
+    } else {
+      $smarty->assign('php_errors', '');
+    }
+    $smarty->assign('msg_dialogs',  msg_dialog::get_dialogs());
+    $smarty->assign('usePrototype', 'false');
+    $smarty->assign('date',         date('l, dS F Y H:i:s O'));
+    $smarty->assign('lang',         preg_replace('/_.*$/', '', $lang));
+    $smarty->assign('rtl',          Language::isRTL($lang));
+
+    $smarty->display(get_template_path('headers.tpl'));
+    $smarty->assign('version', FD_VERSION);
+
+    $smarty->display(get_template_path('login.tpl'));
+    exit();
+  }
+
+  /*! \brief Display the second factor page and exit() */
+  static function displaySecondFactorPage ()
+  {
+    global $smarty,$message,$config,$ssl,$error_collector,$error_collector_mailto;
+
+    $lang = session::get('lang');
+
+    error_reporting(E_ALL | E_STRICT);
+
+    /* Fill template with required values */
+    $username = '';
+    if (isset($_POST['username'])) {
+      $username = trim($_POST['username']);
+    }
+    $smarty->assign('date',       gmdate('D, d M Y H:i:s'));
+    $smarty->assign('username',   $username);
+    $smarty->assign('copynotice', copynotice());
+    $smarty->append('css_files',  get_template_path('login.css'));
+    $smarty->assign('title',      _('Second factor'));
+
+    /* Some error to display? */
+    if (!isset($message)) {
+      $message = '';
+    }
+    $smarty->assign('message', $message);
+
+    /* show login screen */
+    $smarty->assign('PHPSESSID', session_id());
+    if ($error_collector != '') {
+      $smarty->assign('php_errors', preg_replace('/%BUGBODY%/', $error_collector_mailto, $error_collector).'</div>');
+    } else {
+      $smarty->assign('php_errors', '');
+    }
+    $smarty->assign('msg_dialogs',  msg_dialog::get_dialogs());
+    $smarty->assign('usePrototype', 'false');
+    $smarty->assign('date',         date('l, dS F Y H:i:s O'));
+    $smarty->assign('lang',         preg_replace('/_.*$/', '', $lang));
+    $smarty->assign('rtl',          Language::isRTL($lang));
+    $smarty->assign('CSRFtoken',    CSRFProtection::getToken());
+
+    $methodOutputs = [];
+
+    /* Run second factor methods */
+    foreach (static::$secondFactorMethods as $secondFactorMethod) {
+      if (!class_available($secondFactorMethod)) {
+        continue;
+      }
+      $methodOutput = $secondFactorMethod::execute();
+      if ($methodOutput !== NULL) {
+        $methodOutputs[$secondFactorMethod] = $methodOutput;
+      }
+    }
+
+    $smarty->assign('methodOutputs', $methodOutputs);
+
+    $smarty->display(get_template_path('headers.tpl'));
+    $smarty->assign('version', FD_VERSION);
+
+    $smarty->display(get_template_path('secondfactor.tpl'));
+    exit();
+  }
+}
diff --git a/include/management/actions/class_Action.inc b/include/management/actions/class_Action.inc
new file mode 100644
index 0000000000000000000000000000000000000000..706b3215148248249563731da88ca5262cfee750
--- /dev/null
+++ b/include/management/actions/class_Action.inc
@@ -0,0 +1,286 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Action base class
+ */
+class Action
+{
+  protected $name;
+  protected $label;
+  protected $icon;
+
+  /* 0, 1, ?, + or * */
+  protected $targets;
+
+  /* Object types this action is present on */
+  protected $validTypes;
+
+  protected $acl;
+
+  /* Booleans */
+  protected $inmenu;
+  protected $inline;
+
+  protected $callable;
+  protected $enabledCallable;
+
+  protected $minTargets;
+  protected $maxTargets;
+
+  protected $separator = FALSE;
+
+  protected $parent;
+
+  function __construct (string $name, $label, $icon, string $targets, $callable, array $acls = [], bool $inmenu = TRUE, bool $inline = TRUE, array $validTypes = [])
+  {
+    if ($targets == '0') {
+      $inline = FALSE;
+    }
+
+    $this->name       = $name;
+    $this->label      = $label;
+    $this->icon       = $icon;
+    $this->targets    = $targets;
+    $this->callable   = $callable;
+    $this->inmenu     = $inmenu;
+    $this->inline     = $inline;
+    $this->validTypes = array_map('strtoupper', $validTypes);
+    $this->acl        = [];
+    /*
+     * acl may be of the form:
+     * acl (ex: 'd')
+     * attribute:acl (ex: 'userPassword:r')
+     * category/class/acl (ex: 'user/template/r')
+     * category/class/attribute:acl (ex: 'user/user/userPassword:r')
+     * /class/acl (ex: '/SnapshotHandler/c')
+     * /class/attribute:acl (ex: '/template/template_cn:w')
+     * */
+    foreach ($acls as $acl) {
+      $category   = NULL;
+      $class      = NULL;
+      $attribute  = '0';
+      if (strpos($acl, '/') !== FALSE) {
+        list($category, $class, $acl) = explode('/', $acl, 3);
+      }
+      if (strpos($acl, ':') !== FALSE) {
+        list($attribute, $acl) = explode(':', $acl, 2);
+      }
+      $this->acl[] = [
+        'category'  => $category,
+        'class'     => $class,
+        'attribute' => $attribute,
+        'acl'       => str_split($acl),
+      ];
+    }
+
+    switch ($this->targets) {
+      case '0':
+        $this->minTargets = 0;
+        $this->maxTargets = 0;
+        break;
+      case '1':
+        $this->minTargets = 1;
+        $this->maxTargets = 1;
+        break;
+      case '?':
+        $this->minTargets = 0;
+        $this->maxTargets = 1;
+        break;
+      case '+':
+        $this->minTargets = 1;
+        $this->maxTargets = FALSE;
+        break;
+      case '*':
+        $this->minTargets = 0;
+        $this->maxTargets = FALSE;
+        break;
+      default:
+        throw new FusionDirectoryException('Invalid targets value for action '.$this->name.': '.$this->targets);
+    }
+  }
+
+  function setParent (management $parent)
+  {
+    $this->parent = $parent;
+  }
+
+  function getName (): string
+  {
+    return $this->name;
+  }
+
+  function getLabel ()
+  {
+    return $this->label;
+  }
+
+  function setSeparator (bool $bool)
+  {
+    $this->separator = $bool;
+  }
+
+  function setEnableFunction (callable $callable)
+  {
+    $this->enabledCallable = $callable;
+  }
+
+  function setInMenu (bool $inmenu)
+  {
+    $this->inmenu = $inmenu;
+  }
+
+  function listActions (): array
+  {
+    return [$this->name];
+  }
+
+  function execute (management $management, array $action)
+  {
+    if ($this->callable === FALSE) {
+      return;
+    }
+    foreach ($action['targets'] as $targetDn) {
+      if (!$this->hasPermission($management->listing->getEntry($targetDn))) {
+        throw new FusionDirectoryException(sprintf(_('You are not allowed to execute action "%s" on target "%s"'), $this->name, $targetDn));
+      }
+    }
+    if (count($action['targets']) < $this->minTargets) {
+      throw new FusionDirectoryException(sprintf(_('Not enough targets (%d) passed for action "%s"'), count($action['targets']), $this->name));
+    }
+    if (($this->maxTargets !== FALSE) && (count($action['targets']) > $this->maxTargets)) {
+      throw new FusionDirectoryException(sprintf(_('Too many targets (%d) passed for action "%s"'), count($action['targets']), $this->name));
+    }
+    $func = $this->callable;
+    if (!is_array($func)) {
+      $func = [$management, $func];
+    }
+    return call_user_func($func, $action);
+  }
+
+  function fillMenuItems (array &$actions)
+  {
+    if (!$this->inmenu) {
+      return;
+    }
+
+    if (!$this->hasPermission()) {
+      return;
+    }
+
+    $actions[] = [
+      'name'      => $this->name,
+      'icon'      => $this->icon,
+      'label'     => $this->label,
+      'enabled'   => $this->isEnabledFor(),
+      'separator' => $this->separator,
+    ];
+  }
+
+  function fillRowClasses (array &$classes, ListingEntry $entry)
+  {
+  }
+
+  function renderColumnIcons (ListingEntry $entry): string
+  {
+    if (!$this->inline) {
+      return '';
+    }
+
+    if (!empty($this->validTypes) && !($entry->isTemplate() && in_array('TEMPLATE', $this->validTypes)) && !in_array($entry->type, $this->validTypes)) {
+      return '';
+    }
+
+    // Skip the entry completely if there's no permission to execute it
+    if (!$this->hasPermission($entry)) {
+      return '<img src="images/empty.png" alt=" " class="optional"/>';
+    }
+
+    if (!$this->isEnabledFor($entry)) {
+      return '<img src="'.htmlescape($this->icon.'&disabled=1').'"'.
+              ' title="'.htmlescape($this->label).'" alt="'.htmlescape($this->label).'"/>';
+    }
+
+    // Render
+    return '<input type="image" src="'.htmlescape($this->icon).'"'.
+            ' title="'.htmlescape($this->label).'" alt="'.htmlescape($this->label).'" name="listing_'.$this->name.'_'.$entry->row.'"/>';
+  }
+
+  function isEnabledFor (ListingEntry $entry = NULL): bool
+  {
+    if (isset($this->enabledCallable)) {
+      return call_user_func($this->enabledCallable, $this->name, $entry);
+    }
+    return TRUE;
+  }
+
+  function hasPermission (ListingEntry $entry = NULL): bool
+  {
+    global $ui;
+
+    if ($entry === NULL) {
+      $dn       = $this->parent->listing->getBase();
+      $types    = $this->parent->objectTypes;
+      $template = FALSE;
+    } else {
+      $dn       = $entry->aclBase;
+      $types    = [$entry->getTemplatedType()];
+      $template = $entry->isTemplate();
+    }
+    /*
+     * if category is missing it’s deducted from type (all types are tested for menu actions)
+     * if class is missing it’s deducted from attribute if present, otherwise it’s type mainTab
+     * if attribute is missing 0 is used
+     */
+    foreach ($this->acl as $acl) {
+      $checkAcl = '';
+      if (!empty($acl['category'])) {
+        $checkAcl = $ui->get_permissions($dn, $acl['category'].'/'.$acl['class'], $acl['attribute']);
+      } elseif (empty($acl['class']) && ($acl['attribute'] != '0')) {
+        foreach ($types as $type) {
+          $module   = $ui->getAttributeCategory($type, $acl['attribute']);
+          $checkAcl .= $ui->get_permissions($dn, $module, $acl['attribute']);
+        }
+      } else {
+        foreach ($types as $type) {
+          $infos = objects::infos($type);
+          if (!empty($acl['class'])) {
+            /* Class with empty category may be used in special cases like '/SnapshotHandler/c'*/
+            $module = $infos['aclCategory'].'/'.$acl['class'];
+          } elseif ($template) {
+            $module = $infos['aclCategory'].'/template';
+          } else {
+            $module = $infos['aclCategory'].'/'.$infos['mainTab'];
+          }
+          $checkAcl .= $ui->get_permissions($dn, $module, $acl['attribute']);
+        }
+      }
+
+      // Check rights
+      foreach ($acl['acl'] as $part) {
+        if (strpos($checkAcl, $part) === FALSE) {
+          return FALSE;
+        }
+      }
+    }
+
+    return TRUE;
+  }
+}
diff --git a/include/select/systemSelect/class_systemSelect.inc b/include/management/actions/class_HiddenAction.inc
similarity index 74%
rename from include/select/systemSelect/class_systemSelect.inc
rename to include/management/actions/class_HiddenAction.inc
index 3c65d226455655edcfb0f1474df3e427e564368c..08422db3783df35610a7851343c623905a8fe478 100644
--- a/include/select/systemSelect/class_systemSelect.inc
+++ b/include/management/actions/class_HiddenAction.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2017-2018  FusionDirectory
 
   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
@@ -19,13 +19,12 @@
 */
 
 /*!
- * \brief System selection
+ * \brief Action hidden from both column and menu
  */
-class systemSelect extends simpleSelectManagement
+class HiddenAction extends Action
 {
-  protected $autoFilterAttributes = ['dn', 'cn', 'ipHostNumber', 'macAddress'];
-  protected $objectTypes = [
-    'terminal', 'workstation', 'server'
-  ];
+  function __construct (string $name, $callable, array $acl = [])
+  {
+    parent::__construct($name, '', '', '0', $callable, $acl, FALSE, FALSE);
+  }
 }
-?>
diff --git a/include/management/actions/class_SubMenuAction.inc b/include/management/actions/class_SubMenuAction.inc
new file mode 100644
index 0000000000000000000000000000000000000000..4f5f74caf94d91912d99730693a17a4fd5e62490
--- /dev/null
+++ b/include/management/actions/class_SubMenuAction.inc
@@ -0,0 +1,100 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Action which unfold a submenu
+ */
+class SubMenuAction extends Action
+{
+  protected $actions  = [];
+  protected $handlers = [];
+
+  function __construct (string $name, $label, $icon, array $actions, bool $inmenu = TRUE)
+  {
+    parent::__construct($name, $label, $icon, '0', FALSE, [], $inmenu, FALSE);
+    $this->actions = $actions;
+    foreach ($this->actions as $action) {
+      $names = $action->listActions();
+      foreach ($names as $name) {
+        $this->handlers[$name] = $action;
+      }
+    }
+  }
+
+  function addAction (Action $action)
+  {
+    $this->actions[] = $action;
+    $names = $action->listActions();
+    foreach ($names as $name) {
+      $this->handlers[$name] = $action;
+    }
+    /* Rerun registerAction process */
+    $this->parent->registerAction($this);
+  }
+
+  function setParent (management $parent)
+  {
+    parent::setParent($parent);
+    foreach ($this->actions as $action) {
+      $action->setParent($parent);
+    }
+  }
+
+  function listActions (): array
+  {
+    return array_keys($this->handlers);
+  }
+
+  function execute (management $management, array $action)
+  {
+    if (isset($action['subaction']) && isset($this->handlers[$action['action'].'_'.$action['subaction']])) {
+      return $this->handlers[$action['action'].'_'.$action['subaction']]->execute($management, $action);
+    } elseif (isset($this->handlers[$action['action']])) {
+      return $this->handlers[$action['action']]->execute($management, $action);
+    }
+  }
+
+  function fillMenuItems (array &$actions)
+  {
+    if (!$this->inmenu) {
+      return;
+    }
+
+    $subactions = [];
+    foreach ($this->actions as $action) {
+      $action->fillMenuItems($subactions);
+    }
+
+    if (!empty($subactions)) {
+      $actions[] = [
+        'name'      => $this->name,
+        'icon'      => $this->icon,
+        'label'     => $this->label,
+        'separator' => $this->separator,
+        'actions'   => $subactions
+      ];
+    }
+  }
+
+  function renderColumnIcons (ListingEntry $entry): string
+  {
+    return '';
+  }
+}
diff --git a/include/management/class_CheckBoxesFilterElement.inc b/include/management/class_CheckBoxesFilterElement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..312584fca223a25717f5b14d6a7b2ba0d9f36aae
--- /dev/null
+++ b/include/management/class_CheckBoxesFilterElement.inc
@@ -0,0 +1,101 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class CheckBoxesFilterElement extends FilterElement
+{
+  protected $items;
+  protected $name;
+  protected $operator;
+
+  /*!
+   * \brief __construct
+   *
+   * \param managementFilter $parent
+   * \param string $name Name of the filter element
+   * \param array $items Associative array of items with keys: name, ?desc, filter, ?icon
+   */
+  public function __construct (managementFilter $parent, string $name, array $items, string $operator = '&')
+  {
+    global $config;
+
+    parent::__construct($parent);
+
+    $this->name     = $name;
+    $this->items    = $items;
+    $this->operator = $operator;
+
+    foreach ($this->items as &$item) {
+      $item['checked'] = FALSE;
+    }
+    unset($item);
+  }
+
+  public function update ()
+  {
+    foreach ($this->items as $key => &$item) {
+      $item['checked'] = isset($_POST['filter_item_'.$key]);
+    }
+    unset($item);
+  }
+
+  public function render (): string
+  {
+    if (empty($this->items)) {
+      return '';
+    }
+    $inputs = [];
+    foreach ($this->items as $key => $item) {
+      $inputs['filter_item_'.$key] = [
+        'name'    => ($item['name'] ?? $key),
+        'desc'    => ($item['desc'] ?? $item['name'] ?? $key).' '.$item['filter'],
+        'icon'    => ($item['icon'] ?? NULL),
+        'checked' => $item['checked'],
+      ];
+    }
+    $smarty = get_smarty();
+    $smarty->assign('NAME',   $this->name);
+    $smarty->assign('INPUTS', $inputs);
+    return $smarty->fetch(get_template_path('management/filter-element.tpl'));
+  }
+
+  public function getFilters (string $type, array &$filters): bool
+  {
+    if ($this->operator == '&') {
+      foreach ($this->items as $item) {
+        if ($item['checked']) {
+          $filters[] = $item['filter'];
+        }
+      }
+    } else {
+      $subfilters = [];
+      foreach ($this->items as $item) {
+        if ($item['checked']) {
+          $subfilters[] = $item['filter'];
+        }
+      }
+      if (!empty($subfilters)) {
+        $filter = new ldapFilter($this->operator, $subfilters);
+        $filters[] = (string)$filter;
+      }
+    }
+    return FALSE;
+  }
+}
diff --git a/include/management/class_DateFilterElement.inc b/include/management/class_DateFilterElement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..57e3dbd3b461cf13cca4bb446d1374d7278ca51b
--- /dev/null
+++ b/include/management/class_DateFilterElement.inc
@@ -0,0 +1,83 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Filter on member types
+ */
+class DateFilterElement extends FilterElement
+{
+  protected $attribute;
+  protected $label;
+  protected $min;
+  protected $max;
+  protected $types;
+
+  public function __construct (managementFilter $parent, string $attribute, string $label, string $defaultMin = NULL, string $defaultMax = NULL, array $types = [])
+  {
+    global $config;
+
+    parent::__construct($parent);
+
+    $this->attribute  = $attribute;
+    $this->label      = $label;
+    $this->types      = $types;
+    $this->min        = $defaultMin;
+    $this->max        = $defaultMax;
+  }
+
+  public function update ()
+  {
+    if (!empty($_POST['nt_'.$this->attribute])) {
+      $this->min = $_POST['nt_'.$this->attribute];
+    } else {
+      $this->min = '';
+    }
+    if (!empty($_POST['ot_'.$this->attribute])) {
+      $this->max = $_POST['ot_'.$this->attribute];
+    } else {
+      $this->max = '';
+    }
+  }
+
+  public function render (): string
+  {
+    $smarty = get_smarty();
+    $smarty->assign('NAME',       $this->label);
+    $smarty->assign('attribute',  $this->attribute);
+    $smarty->assign('nt_value',   $this->min);
+    $smarty->assign('ot_value',   $this->max);
+    return $smarty->fetch(get_template_path('management/filter-element-date.tpl'));
+  }
+
+  public function getFilters (string $type, array &$filters): bool
+  {
+    if (!empty($this->types) && !in_array_ics($type, $this->types)) {
+      return FALSE;
+    }
+    if (!empty($this->min)) {
+      $filters[] = '('.$this->attribute.'>='.LdapGeneralizedTime::toString(new DateTime($this->min)).')';
+    }
+    if (!empty($this->max)) {
+      $filters[] = '('.$this->attribute.'<='.LdapGeneralizedTime::toString(new DateTime($this->max)).')';
+    }
+    return FALSE;
+  }
+}
diff --git a/include/management/class_EntrySortIterator.inc b/include/management/class_EntrySortIterator.inc
new file mode 100644
index 0000000000000000000000000000000000000000..158bc96e8b47f4b01147c0db24408dc03fe293d4
--- /dev/null
+++ b/include/management/class_EntrySortIterator.inc
@@ -0,0 +1,105 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief This class contains all the function needed to sort list
+ * go up, go down , back , next. etc...
+ */
+class EntrySortIterator implements Iterator
+{
+  protected $data;
+
+  /*!
+   * \brief EntrySortIterator constructor
+   *
+   * \param array $entries entries array
+   *
+   * \param Column $column Column to sort by
+   *
+   * \param bool $direction Direction
+   */
+  public function __construct (array $entries, Column $column = NULL, bool $direction = FALSE)
+  {
+    // Sort for attribute
+    if (is_object($column)) {
+      uasort(
+        $entries,
+        function ($ao, $bo) use ($column)
+        {
+          return $column->compare($ao, $bo);
+        }
+      );
+    }
+
+    // Invert if direction is set
+    if ($direction) {
+      $this->data = array_reverse($entries, TRUE);
+    } else {
+      $this->data = $entries;
+    }
+  }
+
+  /*!
+   * \brief Put the array pointer to the first element
+   */
+  function rewind ()
+  {
+    reset($this->data);
+  }
+
+  /*!
+   * \brief Get the current data element
+   *
+   * \return The current element pointed by array pointer
+   */
+  function current ()
+  {
+    return current($this->data);
+  }
+
+  /*!
+   * \brief Get the key element
+   *
+   * \return the key element of the array
+   */
+  function key ()
+  {
+    return key($this->data);
+  }
+
+  /*!
+   * \brief Get the next data element
+   */
+  function next ()
+  {
+    next($this->data);
+  }
+
+  /*!
+   * \brief Check if the data array is valid
+   *
+   * \return TRUE if the array is valid, return FALSE otherwise
+   */
+  function valid ()
+  {
+    return (key($this->data) !== NULL);
+  }
+}
diff --git a/include/management/class_FilterElement.inc b/include/management/class_FilterElement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a796ea8e34949311b088f86e83d8ff92117c6c74
--- /dev/null
+++ b/include/management/class_FilterElement.inc
@@ -0,0 +1,49 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief This class handles an element from the management filter box
+ */
+class FilterElement
+{
+  protected $parent;
+
+  public function __construct (managementFilter $parent)
+  {
+    $this->parent = $parent;
+  }
+
+  /* Reads POST */
+  public function update ()
+  {
+  }
+
+  public function render (): string
+  {
+    return '';
+  }
+
+  /* Fills LDAP filters for the given type. Returns TRUE if type should be skipped altogether. */
+  public function getFilters (string $type, array &$filters): bool
+  {
+    return FALSE;
+  }
+}
diff --git a/include/management/class_FixedFilterElement.inc b/include/management/class_FixedFilterElement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..aeb43f580a033c5743b58cb3d09c7dda1faf87bf
--- /dev/null
+++ b/include/management/class_FixedFilterElement.inc
@@ -0,0 +1,52 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class FixedFilterElement extends FilterElement
+{
+  protected $filter;
+
+  public function __construct (managementFilter $parent, string $filter)
+  {
+    parent::__construct($parent);
+
+    $this->filter = $filter;
+  }
+
+  public function render (): string
+  {
+    $inputs = [
+      [
+        'name'  => $this->filter,
+        'desc'  => $this->filter,
+      ]
+    ];
+    $smarty = get_smarty();
+    $smarty->assign('NAME',   _('Fixed'));
+    $smarty->assign('INPUTS', $inputs);
+    return $smarty->fetch(get_template_path('management/filter-element-fixed.tpl'));
+  }
+
+  public function getFilters (string $type, array &$filters): bool
+  {
+    $filters[] = $this->filter;
+    return FALSE;
+  }
+}
diff --git a/include/management/class_ListingEntry.inc b/include/management/class_ListingEntry.inc
new file mode 100644
index 0000000000000000000000000000000000000000..8fdc42aa5f7186369287e744f1f496e0af0ae0ac
--- /dev/null
+++ b/include/management/class_ListingEntry.inc
@@ -0,0 +1,130 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class ListingEntry implements ArrayAccess
+{
+  /*!
+   * \brief LDAP dn if any, unique id otherwise
+   */
+  public $dn;
+
+  /*!
+   * \brief DN to use for ACL checks, usually the same as $dn
+   */
+  public $aclBase;
+
+  /*!
+   * \brief Row number
+   */
+  public $row;
+
+  /*!
+   * \brief Object type
+   */
+  public $type;
+
+  private $attrs;
+  protected $listing;
+
+  /* Cache where columns may store stuff */
+  public $cache = [];
+
+  public function __construct (managementListing $listing, string $type, string $dn, array $attrs, int $row = NULL)
+  {
+    $this->listing  = $listing;
+    $this->type     = $type;
+    $this->dn       = $dn;
+    $this->aclBase  = $dn;
+    $this->attrs    = $attrs;
+    $this->row      = $row;
+  }
+
+  public function offsetSet ($offset, $value)
+  {
+    $this->attrs[$offset] = $value;
+  }
+
+  public function offsetExists ($offset)
+  {
+    return isset($this->attrs[$offset]);
+  }
+
+  public function offsetUnset ($offset)
+  {
+    unset($this->attrs[$offset]);
+  }
+
+  public function offsetGet ($offset)
+  {
+    return (isset($this->attrs[$offset]) ? $this->attrs[$offset] : NULL);
+  }
+
+  public function getPid (): string
+  {
+    return $this->listing->pid;
+  }
+
+  public function isTemplate (): bool
+  {
+    return preg_match('/^template_/', $this->type);
+  }
+
+  public function getTemplatedType (): string
+  {
+    return preg_replace('/^template_/', '', $this->type);
+  }
+
+  public function getTemplatedFields (): array
+  {
+    return templateHandling::fieldsFromLDAP($this->attrs);
+  }
+
+  public function checkAcl (string $acls): bool
+  {
+    global $ui;
+
+    $infos  = objects::infos($this->getTemplatedType());
+    $rights = $ui->get_permissions($this->aclBase, $infos['aclCategory'].'/'.($this->isTemplate() ? 'template' : $infos['mainTab']));
+    foreach (str_split($acls) as $acl) {
+      if (strpos($rights, $acl) === FALSE) {
+        return FALSE;
+      }
+    }
+
+    return TRUE;
+  }
+
+  public function snapshotCreationAllowed (): bool
+  {
+    global $ui;
+
+    $infos  = objects::infos($this->getTemplatedType());
+    return $ui->allow_snapshot_create($this->aclBase, $infos['aclCategory']);
+  }
+
+  public function snapshotRestoreAllowed (): bool
+  {
+    global $ui;
+
+    $infos  = objects::infos($this->getTemplatedType());
+    return $ui->allow_snapshot_restore($this->aclBase, $infos['aclCategory'], FALSE);
+  }
+}
diff --git a/include/management/class_ManagementConfigurationDialog.inc b/include/management/class_ManagementConfigurationDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..d0dfa4d89a3a8231e14c07234d16a9199c654a92
--- /dev/null
+++ b/include/management/class_ManagementConfigurationDialog.inc
@@ -0,0 +1,240 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class ManagementColumnAttribute extends CompositeAttribute
+{
+  function __construct ($label, $description, $ldapName, $attributes, $acl = "")
+  {
+    parent::__construct($description, $ldapName, $attributes, FALSE, FALSE, $acl, $label);
+  }
+}
+
+/*!
+ * \brief Management configuration dialog
+ */
+class ManagementConfigurationDialog extends ManagementDialog
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName' => 'ManagementConfigurationDialog',
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    global $class_mapping;
+
+    // Load column types
+    $types = [];
+    foreach (array_keys($class_mapping) as $class) {
+      if (preg_match('/Column$/', $class) && is_a($class, 'Column', TRUE)) {
+        $types[] = $class;
+      }
+    }
+    sort($types);
+
+    return [
+      'main' => [
+        'class' => ['fullwidth'],
+        'name'  => _('Management configuration'),
+        'attrs' => [
+          new OrderedArrayAttribute(
+            new ManagementColumnAttribute(
+              _('Columns'),
+              _('Columns displayed for this management list'),
+              'managementColumns',
+              [
+                new SelectAttribute(
+                  _('Type'), _('Type of column'),
+                  'columnType', TRUE,
+                  $types, 'LinkColumn'
+                ),
+                new StringAttribute(
+                  _('Attribute'), _('LDAP attributes to display, comma separated. Special values "nameAttr" and "mainAttr" also work.'),
+                  'columnAttribute', FALSE
+                ),
+                new StringAttribute(
+                  _('Label'), _('Column title'),
+                  'columnLabel', FALSE
+                ),
+              ],
+              'ManagementConfiguration'
+            ),
+            TRUE, // ordered
+            [],
+            TRUE // edition
+          ),
+          new BooleanAttribute(
+            _('Persistent'), _('Should this configuration be saved in the LDAP as your default configuration for this management page'),
+            'saveInLdapUser', FALSE,
+            FALSE,
+            'ManagementConfiguration'
+          ),
+          new ButtonAttribute(
+            _('Forget my persistent configuration'), _('Delete the persistent configuration for this management page so that the default one is used'),
+            'resetInLdapUser', _('Forget'),
+            NULL, '',
+            'ManagementConfiguration'
+          ),
+          new BooleanAttribute(
+            _('Global default'), _('Should this configuration be saved in the LDAP as the default configuration for this management page for all users'),
+            'saveInLdap', FALSE,
+            FALSE,
+            'fdManagementConfig'
+          ),
+          new ButtonAttribute(
+            _('Forget global default'), _('Delete the global default configuration for this management page so that the default one is used'),
+            'resetInLdap', _('Forget'),
+            NULL, '',
+            'fdManagementConfig'
+          ),
+        ]
+      ],
+    ];
+  }
+
+  function __construct (management $parent)
+  {
+    global $config;
+
+    parent::__construct(NULL, NULL, $parent);
+
+    $this->attributesAccess['saveInLdap']->setInLdap(FALSE);
+    $this->attributesAccess['saveInLdapUser']->setInLdap(FALSE);
+    if (!$this->attrIsWriteable('saveInLdap')) {
+      $this->attributesAccess['saveInLdap']->setVisible(FALSE);
+    }
+    $this->attributesAccess['resetInLdap']->setInLdap(FALSE);
+    $this->attributesAccess['resetInLdapUser']->setInLdap(FALSE);
+    if (!$this->attrIsWriteable('resetInLdap')) {
+      $this->attributesAccess['resetInLdap']->setVisible(FALSE);
+    }
+
+    if (!$config->hasManagementConfig(get_class($this->parent), TRUE)) {
+      $this->attributesAccess['resetInLdapUser']->setVisible(FALSE);
+    }
+    if (!$config->hasManagementConfig(get_class($this->parent), FALSE)) {
+      $this->attributesAccess['resetInLdap']->setVisible(FALSE);
+    }
+
+    $this->attributesAccess['managementColumns']->setInLdap(FALSE);
+    $this->attributesAccess['managementColumns']->setLinearRendering(FALSE);
+    $columnInfos  = $this->parent->getColumnConfiguration();
+    $value        = [];
+    foreach ($columnInfos as $column) {
+      if (!isset($column[1]['attributes'])) {
+        $column[1]['attributes'] = '';
+      } elseif (is_array($column[1]['attributes'])) {
+        $column[1]['attributes'] = json_encode($column[1]['attributes']);
+      }
+      if (!isset($column[1]['label'])) {
+        $column[1]['label'] = '';
+      }
+      $value[] = [$column[0], $column[1]['attributes'], $column[1]['label']];
+    }
+    $this->attributesAccess['managementColumns']->setValue($value);
+  }
+
+  function attrIsReadable ($attr): bool
+  {
+    return $this->attrIsWriteable($attr);
+  }
+
+  function attrIsWriteable ($attr): bool
+  {
+    global $config, $ui;
+
+    $noAclAttrs   = ['managementColumns', 'saveInLdapUser', 'resetInLdapUser'];
+    $configAttrs  = ['saveInLdap', 'resetInLdap'];
+
+    if ((is_object($attr) && in_array($attr->getLdapName(), $noAclAttrs)) || in_array($attr, $noAclAttrs)) {
+      return TRUE;
+    } elseif ((is_object($attr) && in_array($attr->getLdapName(), $configAttrs)) || in_array($attr, $configAttrs)) {
+      $acl = $ui->get_permissions(CONFIGRDN.$config->current['BASE'], 'configuration/configInLdap', 'fdManagementConfig', $this->readOnly());
+      return (strpos($acl, 'w') !== FALSE);
+    } else {
+      return parent::attrIsWriteable($attr);
+    }
+  }
+
+  function handle_resetInLdapUser ()
+  {
+    global $config;
+    $errors = $config->updateManagementConfig(get_class($this->parent), NULL, TRUE);
+    msg_dialog::displayChecks($errors);
+    if (empty($errors)) {
+      $this->attributesAccess['resetInLdapUser']->setVisible(FALSE);
+    }
+  }
+
+  function handle_resetInLdap ()
+  {
+    global $config;
+    $errors = $config->updateManagementConfig(get_class($this->parent), NULL, FALSE);
+    msg_dialog::displayChecks($errors);
+    if (empty($errors)) {
+      $this->attributesAccess['resetInLdap']->setVisible(FALSE);
+    }
+  }
+
+  public function render (): string
+  {
+    global $config, $ui;
+
+    $smarty = get_smarty();
+    $smarty->assign('ManagementConfigurationACL', 'rw');
+    $smarty->assign('fdManagementConfigACL', $ui->get_permissions(CONFIGRDN.$config->current['BASE'], 'configuration/configInLdap', 'fdManagementConfig', $this->readOnly()));
+    return parent::render();
+  }
+
+  public function save (): array
+  {
+    global $config;
+    $columnInfos  = [];
+    $values       = $this->managementColumns;
+    foreach ($values as $value) {
+      $column = [$value[0], []];
+      if (!empty($value[1])) {
+        $jsonDecoded = json_decode($value[1], TRUE);
+        if ($jsonDecoded !== NULL) {
+          $column[1]['attributes'] = $jsonDecoded;
+        } else {
+          $column[1]['attributes'] = $value[1];
+        }
+      }
+      if (!empty($value[2])) {
+        $column[1]['label'] = $value[2];
+      }
+      $columnInfos[] = $column;
+    }
+    $this->parent->setColumnConfiguration($columnInfos);
+
+    if ($this->saveInLdapUser) {
+      return $config->updateManagementConfig(get_class($this->parent), $columnInfos, TRUE);
+    }
+
+    if ($this->saveInLdap) {
+      return $config->updateManagementConfig(get_class($this->parent), $columnInfos);
+    }
+
+    return [];
+  }
+}
diff --git a/include/management/class_ManagementDialog.inc b/include/management/class_ManagementDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a6414653c2a7400c518df7c151b49d824077976c
--- /dev/null
+++ b/include/management/class_ManagementDialog.inc
@@ -0,0 +1,87 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Management dialog
+ */
+class ManagementDialog extends simplePlugin
+{
+  protected $post_cancel = 'edit_cancel';
+  protected $post_finish = 'edit_finish';
+
+  function __construct (string $dn = NULL, $object = NULL, management $parent = NULL, bool $mainTab = FALSE, array $attributesInfo = NULL)
+  {
+    parent::__construct($dn, $object, $parent, $mainTab, $attributesInfo);
+  }
+
+  public function readPost ()
+  {
+    parent::readPost();
+    if (isset($_POST[$this->post_cancel])) {
+      $this->handleCancel();
+    } elseif (isset($_POST[$this->post_finish])) {
+      $this->handleFinish();
+    }
+  }
+
+  protected function handleFinish ()
+  {
+    $msgs = $this->check();
+    if (count($msgs)) {
+      msg_dialog::displayChecks($msgs);
+      return;
+    } else {
+      $errors = $this->save();
+      if (count($errors)) {
+        msg_dialog::displayChecks($errors);
+        return;
+      } else {
+        $this->parent->removeLocks();
+        $this->parent->closeDialogs();
+      }
+    }
+  }
+
+  protected function handleCancel ()
+  {
+    $this->parent->removeLocks();
+    $this->parent->closeDialogs();
+  }
+
+  public function render (): string
+  {
+    return parent::render().$this->getFooter();
+  }
+
+  /*! \brief  Returns the plugin footer (save cancel), displayed in the template.
+    @return String  HTML footer part.
+   */
+  protected function getFooter (): string
+  {
+    if (!$this->displayPlugin) {
+      return '';
+    }
+    return  '<p class="plugbottom">'.
+            ' <input type="submit" name="'.$this->post_finish.'" value="'.msgPool::saveButton().'"/>'.
+            ' <input type="submit" formnovalidate="formnovalidate" name="'.$this->post_cancel.'" value="'.msgPool::cancelButton().'"/>'.
+            '</p>';
+  }
+}
diff --git a/include/management/class_TabFilterElement.inc b/include/management/class_TabFilterElement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..6ca274c33e2eb528a19ce6e369e6270cc05fc6eb
--- /dev/null
+++ b/include/management/class_TabFilterElement.inc
@@ -0,0 +1,94 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class TabFilterElement extends FilterElement
+{
+  protected $tabs;
+
+  public function __construct (managementFilter $parent)
+  {
+    global $config;
+
+    parent::__construct($parent);
+
+    $this->tabs = [];
+    foreach ($this->parent->parent->objectTypes as $type) {
+      $infos = objects::infos($type);
+      foreach ($config->data['TABS'][$infos['tabGroup']] as $plug) {
+        $class = $plug['CLASS'];
+        if ($class == $infos['mainTab']) {
+          continue;
+        }
+        if (isset($this->tabs[$class])) {
+          continue;
+        }
+        if (class_available($class)) {
+          $classInfos = pluglist::pluginInfos($class);
+          if (isset($classInfos['plFilterObject'])) {
+            $this->tabs[$class] = [
+              'filter'  => $classInfos['plFilterObject'],
+              'infos'   => $classInfos,
+              'checked' => FALSE,
+            ];
+          }
+        }
+      }
+    }
+  }
+
+  public function update ()
+  {
+    foreach ($this->tabs as $class => &$tab) {
+      $tab['checked'] = isset($_POST['filter_tab_'.$class]);
+    }
+    unset($tab);
+  }
+
+  public function render (): string
+  {
+    if (empty($this->tabs)) {
+      return '';
+    }
+    $inputs = [];
+    foreach ($this->tabs as $class => $tab) {
+      $inputs['filter_tab_'.$class] = [
+        'name'    => $tab['infos']['plShortName'],
+        'desc'    => $tab['infos']['plShortName'].' '.$tab['filter'],
+        'icon'    => (isset($tab['infos']['plSmallIcon']) ? $tab['infos']['plSmallIcon'] : NULL),
+        'checked' => $tab['checked'],
+      ];
+    }
+    $smarty = get_smarty();
+    $smarty->assign('NAME',   _('Tabs'));
+    $smarty->assign('INPUTS', $inputs);
+    return $smarty->fetch(get_template_path('management/filter-element.tpl'));
+  }
+
+  public function getFilters (string $type, array &$filters): bool
+  {
+    foreach ($this->tabs as $tab) {
+      if ($tab['checked']) {
+        $filters[] = $tab['filter'];
+      }
+    }
+    return FALSE;
+  }
+}
diff --git a/include/management/class_management.inc b/include/management/class_management.inc
new file mode 100644
index 0000000000000000000000000000000000000000..27f806e8c115addc6ebab784c8b89f6e73d0e7e5
--- /dev/null
+++ b/include/management/class_management.inc
@@ -0,0 +1,1420 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Management base class
+ */
+class management implements FusionDirectoryDialog
+{
+  /* Object types we are currently managing */
+  public $objectTypes;
+
+  /* managementListing instance which manages the entries */
+  public $listing;
+
+  /* managementFilter instance which manages the filters */
+  public $filter;
+
+  /* Copy&Paste */
+  protected $cpHandler        = NULL;
+  protected $cpPastingStarted = FALSE;
+  protected $skipCpHandler    = FALSE;
+
+  /* Snapshots */
+  protected $snapHandler        = NULL;
+  public static $skipSnapshots  = FALSE;
+
+  // The currently used object(s) (e.g. in edit, removal)
+  protected $currentDn  = '';
+  protected $currentDns = [];
+
+  // The last used object(s).
+  protected $previousDn   = '';
+  protected $previousDns  = [];
+
+  // The opened object.
+  /**
+   * @var ?simpleTabs
+   */
+  protected $tabObject    = NULL;
+  protected $dialogObject = NULL;
+
+  // The last opened object.
+  protected $last_tabObject     = NULL;
+  protected $last_dialogObject  = NULL;
+
+  protected $renderCache;
+
+  public $headline;
+  public $title;
+  public $icon;
+
+  protected $actions        = [];
+  protected $actionHandlers = [];
+
+  protected $exporters = [];
+
+  public $neededAttrs = [];
+
+  public static $skipTemplates = TRUE;
+
+  /* Disable and hide configuration system */
+  protected $skipConfiguration = FALSE;
+
+  protected $columnConfiguration;
+
+  /* Default columns */
+  public static $columns = [
+    ['ObjectTypeColumn', []],
+    ['LinkColumn',       ['attributes' => 'nameAttr',    'label' => 'Name']],
+    ['LinkColumn',       ['attributes' => 'description', 'label' => 'Description']],
+    ['ActionsColumn',    ['label' => 'Actions']],
+  ];
+
+  function __construct (
+    $objectTypes = FALSE,
+    array $filterElementDefinitions = [
+      ['TabFilterElement',  []],
+    ]
+  )
+  {
+    global $config, $class_mapping;
+
+    if ($objectTypes === FALSE) {
+      $plInfos = pluglist::pluginInfos(get_class($this));
+      $objectTypes  = $plInfos['plManages'];
+    }
+
+    if (!preg_match('/^geticon/', $this->icon)) {
+      $this->icon = get_template_path($this->icon);
+    }
+
+    /* Ignore non existing objectTypes. This happens when an optional plugin is missing. */
+    foreach ($objectTypes as $key => $type) {
+      try {
+        objects::infos($type);
+        $objectTypes[$key] = strtoupper($type);
+      } catch (NonExistingObjectTypeException $e) {
+        unset($objectTypes[$key]);
+      }
+    }
+
+    $this->objectTypes = array_values($objectTypes);
+
+    $this->setUpHeadline();
+    $this->setUpListing();
+    $this->setUpFilter($filterElementDefinitions);
+
+    // Add copy&paste and snapshot handler.
+    if (!$this->skipCpHandler) {
+      $this->cpHandler = new CopyPasteHandler();
+    }
+    if (!static::$skipSnapshots && ($config->get_cfg_value('enableSnapshots') == 'TRUE')) {
+      $this->snapHandler = new SnapshotHandler();
+    }
+
+    // Load exporters
+    foreach (array_keys($class_mapping) as $class) {
+      if (preg_match('/Exporter$/', $class)) {
+        $info = call_user_func([$class, 'getInfo']);
+        if ($info != NULL) {
+          $this->exporters = array_merge($this->exporters, $info);
+        }
+      }
+    }
+
+    $this->configureActions();
+  }
+
+  protected function setUpListing ()
+  {
+    $this->listing  = new managementListing($this);
+  }
+
+  protected function setUpFilter (array $filterElementDefinitions)
+  {
+    $this->filter   = new managementFilter($this, NULL, $filterElementDefinitions);
+  }
+
+  protected function setUpHeadline ()
+  {
+    $plInfos = pluglist::pluginInfos(get_class($this));
+
+    $this->headline = $plInfos['plShortName'];
+    $this->title    = $plInfos['plTitle'];
+    $this->icon     = $plInfos['plIcon'];
+  }
+
+  protected function configureActions ()
+  {
+    global $config;
+
+    // Register default actions
+    $createMenu = [];
+
+    if (!static::$skipTemplates) {
+      $templateMenu     = [];
+      $fromTemplateMenu = [];
+    }
+
+    foreach ($this->objectTypes as $type) {
+      $infos  = objects::infos($type);
+      $img    = 'geticon.php?context=actions&icon=document-new&size=16';
+      if (isset($infos['icon'])) {
+        $img = $infos['icon'];
+      }
+      $createMenu[] = new Action(
+        'new_'.$type, $infos['name'], $img,
+        '0', 'newEntry',
+        [$infos['aclCategory'].'/'.$infos['mainTab'].'/c']
+      );
+      if (!static::$skipTemplates) {
+        $templateMenu[] = new Action(
+          'new_template_'.$type, $infos['name'], $img,
+          '0', 'newEntryTemplate',
+          [$infos['aclCategory'].'/template/c']
+        );
+        $fromTemplateMenu[] = new Action(
+          'template_apply_'.$type, $infos['name'], $img,
+          '0', 'newEntryFromTemplate',
+          [$infos['aclCategory'].'/template/r', $infos['aclCategory'].'/'.$infos['mainTab'].'/c']
+        );
+      }
+    }
+
+    if (!static::$skipTemplates) {
+      $createMenu =
+        array_merge(
+          [
+            new SubMenuAction(
+              'template', _('Template'), 'geticon.php?context=devices&icon=template&size=16',
+              $templateMenu
+            ),
+            new SubMenuAction(
+              'fromtemplate', _('From template'), 'geticon.php?context=actions&icon=document-new&size=16',
+              $fromTemplateMenu
+            ),
+          ],
+          $createMenu
+        );
+    }
+
+    $this->registerAction(
+      new SubMenuAction(
+        'new', _('Create'), 'geticon.php?context=actions&icon=document-new&size=16',
+        $createMenu
+      )
+    );
+
+    // Add export actions
+    $exportMenu = [];
+    foreach ($this->exporters as $action => $exporter) {
+      $exportMenu[] = new Action(
+        $action, $exporter['label'], $exporter['image'],
+        '0', 'export'
+      );
+    }
+    $this->registerAction(
+      new SubMenuAction(
+        'export', _('Export list'), 'geticon.php?context=actions&icon=document-export&size=16',
+        $exportMenu
+      )
+    );
+
+    $this->registerAction(
+      new Action(
+        'edit', _('Edit'), 'geticon.php?context=actions&icon=document-edit&size=16',
+        '+', 'editEntry'
+      )
+    );
+    $this->actions['edit']->setSeparator(TRUE);
+
+    if (!$this->skipCpHandler) {
+      $this->registerAction(
+        new Action(
+          'cut', _('Cut'), 'geticon.php?context=actions&icon=edit-cut&size=16',
+          '+', 'copyPasteHandler',
+          ['dr']
+        )
+      );
+      $this->registerAction(
+        new Action(
+          'copy', _('Copy'), 'geticon.php?context=actions&icon=edit-copy&size=16',
+          '+', 'copyPasteHandler',
+          ['r']
+        )
+      );
+      $this->registerAction(
+        new Action(
+          'paste', _('Paste'), 'geticon.php?context=actions&icon=edit-paste&size=16',
+          '0', 'copyPasteHandler',
+          ['w']
+        )
+      );
+      $this->actions['paste']->setEnableFunction([$this, 'enablePaste']);
+    }
+
+    if (!static::$skipTemplates) {
+      $this->registerAction(
+        new Action(
+          'template_apply_to', _('Apply template'), 'geticon.php?context=actions&icon=tools-wizard&size=16',
+          '+', 'applyTemplateToEntry',
+          ['/template/r', 'c'],
+          TRUE,
+          FALSE
+        )
+      );
+    }
+
+    if (class_available('archivedObject')) {
+      $action = archivedObject::getManagementAction($this->objectTypes, 'archiveRequested');
+      if ($action !== NULL) {
+        $this->registerAction($action);
+        $this->registerAction(new HiddenAction('archiveConfirmed',  'archiveConfirmed'));
+        $this->registerAction(new HiddenAction('archiveCancel',     'cancelEdit'));
+      }
+    }
+
+    $this->registerAction(
+      new Action(
+        'remove', _('Remove'), 'geticon.php?context=actions&icon=edit-delete&size=16',
+        '+', 'removeRequested',
+        ['d']
+      )
+    );
+
+    if (!static::$skipSnapshots && ($config->get_cfg_value('enableSnapshots') == 'TRUE')) {
+      $this->registerAction(
+        new Action(
+          'snapshot', _('Create snapshot'), 'geticon.php?context=actions&icon=snapshot&size=16',
+          '1', 'createSnapshotDialog',
+          ['/SnapshotHandler/c']
+        )
+      );
+      $this->registerAction(
+        new Action(
+          'restore', _('Restore snapshot'), 'geticon.php?context=actions&icon=document-restore&size=16',
+          '*', 'restoreSnapshotDialog',
+          ['w', '/SnapshotHandler/r']
+        )
+      );
+      $this->actions['snapshot']->setSeparator(TRUE);
+      $this->actions['restore']->setEnableFunction([$this, 'enableSnapshotRestore']);
+    }
+
+    if (!static::$skipTemplates) {
+      $this->registerAction(
+        new Action(
+          'template_apply', _('Create an object from this template'), 'geticon.php?context=actions&icon=document-new&size=16',
+          '1', 'newEntryFromTemplate',
+          ['/template/r', 'c'],
+          FALSE,
+          TRUE,
+          ['template']
+        )
+      );
+    }
+
+    /* Actions from footer are not in any menus and do not need a label */
+    $this->registerAction(new HiddenAction('apply',           'applyChanges'));
+    $this->registerAction(new HiddenAction('save',            'saveChanges'));
+    $this->registerAction(new HiddenAction('cancel',          'cancelEdit'));
+    $this->registerAction(new HiddenAction('cancelDelete',    'cancelEdit'));
+    $this->registerAction(new HiddenAction('removeConfirmed', 'removeConfirmed'));
+    if (!$this->skipConfiguration) {
+      $this->registerAction(new HiddenAction('configure',       'configureDialog'));
+    }
+  }
+
+  /*!
+   *  \brief Register an action to show in the action menu and/or the action column
+   */
+  function registerAction (Action $action)
+  {
+    $action->setParent($this);
+    $this->actions[$action->getName()] = $action;
+    foreach ($action->listActions() as $actionName) {
+      $this->actionHandlers[$actionName] = $action;
+    }
+  }
+
+  public function getColumnConfiguration (): array
+  {
+    global $config;
+
+    if (!isset($this->columnConfiguration)) {
+      // LDAP configuration
+      $this->columnConfiguration = $config->getManagementConfig(get_class($this));
+    }
+
+    if (!isset($this->columnConfiguration)) {
+      // Default configuration
+      $this->columnConfiguration = static::$columns;
+    }
+
+    // Session configuration
+    return $this->columnConfiguration;
+  }
+
+  public function setColumnConfiguration ($columns)
+  {
+    $this->columnConfiguration = $columns;
+    $this->listing->reloadColumns();
+  }
+
+  /*!
+   * \brief  Detects actions/events send by the ui
+   *           and the corresponding targets.
+   */
+  function detectPostActions (): array
+  {
+    if (!is_object($this->listing)) {
+      throw new FusionDirectoryException('No valid listing object');
+    }
+    $action = ['targets' => [], 'action' => '', 'subaction' => NULL];
+    if ($this->showTabFooter()) {
+      if (isset($_POST['edit_cancel'])) {
+        $action['action'] = 'cancel';
+      } elseif (isset($_POST['edit_finish'])) {
+        $action['action'] = 'save';
+      } elseif (isset($_POST['edit_apply'])) {
+        $action['action'] = 'apply';
+      }
+    } elseif (!$this->dialogOpened()) {
+      if (isset($_POST['delete_confirmed'])) {
+        $action['action'] = 'removeConfirmed';
+      } elseif (isset($_POST['delete_cancel'])) {
+        $action['action'] = 'cancelDelete';
+      } elseif (isset($_POST['archive_confirmed'])) {
+        $action['action'] = 'archiveConfirmed';
+      } elseif (isset($_POST['archive_cancel'])) {
+        $action['action'] = 'archiveCancel';
+      } else {
+        $action = $this->listing->getAction();
+      }
+    }
+
+    return $action;
+  }
+
+  /*!
+   *  \brief  Calls the registered method for a given action/event.
+   */
+  function handleAction (array $action)
+  {
+    // Start action
+    if (isset($action['subaction']) && isset($this->actionHandlers[$action['action'].'_'.$action['subaction']])) {
+      return $this->actionHandlers[$action['action'].'_'.$action['subaction']]->execute($this, $action);
+    } elseif (isset($this->actionHandlers[$action['action']])) {
+      return $this->actionHandlers[$action['action']]->execute($this, $action);
+    }
+  }
+
+  protected function handleSubAction (array $action): bool
+  {
+    if (preg_match('/^tab_/', $action['subaction'])) {
+      $tab = preg_replace('/^tab_/', '', $action['subaction']);
+      if (isset($this->tabObject->by_object[$tab])) {
+        $this->tabObject->current = $tab;
+      } else {
+        trigger_error('Unknown tab: '.$tab);
+      }
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  /* For management we have to render directly in readPost in some cases */
+  public function readPost ()
+  {
+    $this->renderCache = $this->execute();
+  }
+
+  public function update (): bool
+  {
+    if ($this->renderCache === NULL) {
+      if (!$this->dialogOpened()) {
+        // Update list
+        $this->listing->update();
+
+        // Init snapshot list for renderSnapshotActions
+        if (is_object($this->snapHandler)) {
+          $this->snapHandler->initSnapshotCache($this->listing->getBase());
+        }
+      }
+    }
+    return TRUE;
+  }
+
+  public function render (): string
+  {
+    if ($this->renderCache === NULL) {
+      if ($this->tabObject instanceOf simpleTabs) {
+        /* Display tab object */
+        $display = $this->tabObject->render();
+        $display .= $this->getTabFooter();
+        $this->renderCache = $this->getHeader().$display;
+      } elseif (is_object($this->dialogObject)) {
+        /* Display dialog object */
+        $display = $this->dialogObject->render();
+        $display .= $this->getTabFooter();
+        $this->renderCache = $this->getHeader().$display;
+      } else {
+        /* Display list */
+        $this->renderCache = $this->renderList();
+      }
+    }
+    return $this->renderCache;
+  }
+
+  /*!
+   * \brief  Execute this plugin
+   *          Handle actions/events, locking, snapshots, dialogs, tabs,...
+   */
+  protected function execute ()
+  {
+    // Ensure that html posts and gets are kept even if we see a 'Entry islocked' dialog.
+    session::set('LOCK_VARS_TO_USE', ['/^act$/','/^listing/','/^PID$/']);
+
+    /* Display the copy & paste dialog, if it is currently open */
+    $ret = $this->copyPasteHandler();
+    if ($ret) {
+      return $this->getHeader().$ret;
+    }
+
+    // Handle actions (POSTs and GETs)
+    $action = $this->detectPostActions();
+    if (!empty($action['action'])) {
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $action, 'Action');
+      try {
+        $str = $this->handleAction($action);
+        if (!empty($str)) {
+          return $this->getHeader().$str;
+        }
+      } catch (FusionDirectoryException $e) {
+        $error = new FusionDirectoryError(htmlescape($e->getMessage()), 0, $e);
+        $error->display();
+      }
+    }
+
+    /* Save tab or dialog object */
+    if ($this->tabObject instanceOf simpleTabs) {
+      $this->tabObject->readPost();
+      $this->tabObject->update();
+    } elseif (is_object($this->dialogObject)) {
+      try {
+        $this->dialogObject->readPost();
+        if (is_object($this->dialogObject)) {
+          /* Check again as readPost might close it */
+          if (!$this->dialogObject->update()) {
+            $this->closeDialogs();
+          }
+        }
+      } catch (FusionDirectoryException $e) {
+        $error = new FusionDirectoryError(htmlescape($e->getMessage()), 0, $e);
+        $error->display();
+        $this->closeDialogs();
+      }
+    }
+
+    return NULL;
+  }
+
+  function renderList (): string
+  {
+    global $config, $ui;
+
+    // Rendering things using smarty themselves first
+    $listRender   = $this->listing->render();
+    $filterRender = $this->renderFilter();
+    $actionMenu   = $this->renderActionMenu();
+
+    $smarty = get_smarty();
+    $smarty->assign('usePrototype', 'true');
+    $smarty->assign('LIST',         $listRender);
+    $smarty->assign('FILTER',       $filterRender);
+    $smarty->assign('ACTIONS',      $actionMenu);
+    $smarty->assign('SIZELIMIT',    $ui->getSizeLimitHandler()->renderWarning());
+    $smarty->assign('NAVIGATION',   $this->listing->renderNavigation($this->skipConfiguration));
+    $smarty->assign('BASE',         $this->listing->renderBase());
+    $smarty->assign('HEADLINE',     $this->headline);
+
+    return $this->getHeader().$smarty->fetch(get_template_path('management/management.tpl'));
+  }
+
+  protected function renderFilter (): string
+  {
+    return $this->filter->render();
+  }
+
+  protected function renderActionMenu (): string
+  {
+    $menuActions = [];
+    foreach ($this->actions as $action) {
+      // Build ul/li list
+      $action->fillMenuItems($menuActions);
+    }
+
+    if (empty($menuActions)) {
+      return '';
+    }
+
+    $smarty = get_smarty();
+    $smarty->assign('actions', $menuActions);
+    return $smarty->fetch(get_template_path('management/actionmenu.tpl'));
+  }
+
+  function renderActionColumn (ListingEntry $entry): string
+  {
+    // Go thru all actions
+    $result = '';
+    foreach ($this->actions as $action) {
+      $result .= $action->renderColumnIcons($entry);
+    }
+
+    return $result;
+  }
+
+  function fillActionRowClasses (&$classes, ListingEntry $entry)
+  {
+    foreach ($this->actions as $action) {
+      $action->fillRowClasses($classes, $entry);
+    }
+  }
+
+  /*!
+   * \brief  Removes ldap object locks created by this class.
+   *         Whenever an object is edited, we create locks to avoid
+   *         concurrent modifications.
+   *         This locks will automatically removed here.
+   */
+  public function removeLocks ()
+  {
+    if (!empty($this->currentDn) && ($this->currentDn != 'new')) {
+      Lock::deleteByObject($this->currentDn);
+    }
+    if (count($this->currentDns)) {
+      Lock::deleteByObject($this->currentDns);
+    }
+  }
+
+  function dialogOpened (): bool
+  {
+    return (is_object($this->tabObject) || is_object($this->dialogObject));
+  }
+
+  /*!
+   * \brief Sets smarty headline and returns the plugin header which is displayed whenever a tab object is opened.
+   */
+  protected function getHeader (): string
+  {
+    global $smarty;
+
+    $smarty->assign('headline', $this->title);
+    $smarty->assign('headline_image', $this->icon);
+
+    if (is_object($this->tabObject) && ($this->currentDn != '')) {
+      return '<div class="pluginfo">'.$this->currentDn."</div>\n";
+    }
+    return '';
+  }
+
+  function openTabObject ($object)
+  {
+    $this->tabObject          = $object;
+    $this->tabObject->parent  = &$this;
+  }
+
+  /*!
+   * \brief  This method closes dialogs
+   *          and cleans up the cached object info and the ui.
+   */
+  public function closeDialogs ()
+  {
+    $this->previousDn   = $this->currentDn;
+    $this->currentDn    = '';
+    $this->previousDns  = $this->currentDns;
+    $this->currentDns   = [];
+
+    $this->last_tabObject     = $this->tabObject;
+    $this->tabObject          = NULL;
+    $this->last_dialogObject  = $this->dialogObject;
+    $this->dialogObject       = NULL;
+  }
+
+  protected function listAclCategories (): array
+  {
+    $cat = [];
+    foreach ($this->objectTypes as $type) {
+      $infos  = objects::infos($type);
+      $cat[]  = $infos['aclCategory'];
+    }
+    return array_unique($cat);
+  }
+
+  /*!
+   * \brief Whether footer buttons should appear
+   */
+  protected function showTabFooter (): bool
+  {
+    // Do not display tab footer for non tab objects
+    if (!($this->tabObject instanceOf simpleTabs)) {
+      return FALSE;
+    }
+
+    // Check if there is a dialog opened - We don't need any buttons in this case.
+    if ($this->tabObject->dialogOpened()) {
+      return FALSE;
+    }
+
+    return TRUE;
+  }
+
+  /*!
+   * \brief  Generates the footer which is used whenever a tab object is displayed.
+   */
+  protected function getTabFooter (): string
+  {
+    // Do not display tab footer for non tab objects
+    if (!$this->showTabFooter()) {
+      return '';
+    }
+
+    $smarty = get_smarty();
+    $smarty->assign('readOnly', $this->tabObject->readOnly());
+    $smarty->assign('showApply', ($this->currentDn != 'new'));
+    return $smarty->fetch(get_template_path('management/tabfooter.tpl'));
+  }
+
+  function handleTemplateApply ($cancel = FALSE)
+  {
+    if (static::$skipTemplates) {
+      return;
+    }
+    if ($cancel) {
+      $msgs = [];
+    } else {
+      $msgs = $this->tabObject->save();
+    }
+    if (count($msgs)) {
+      msg_dialog::displayChecks($msgs);
+      return;
+    } else {
+      if (!$cancel) {
+        logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDn, 'Template applied!');
+      }
+      Lock::deleteByObject($this->currentDn);
+      if (empty($this->currentDns)) {
+        $this->closeDialogs();
+      } else {
+        $this->last_tabObject = $this->tabObject;
+        $this->tabObject      = NULL;
+        $this->currentDn      = array_shift($this->currentDns);
+        $this->dialogObject->setNextTarget($this->currentDn);
+        $this->dialogObject->readPost();
+      }
+    }
+  }
+
+  function enablePaste ($action, ListingEntry $entry = NULL): bool
+  {
+    if ($entry === NULL) {
+      return $this->cpHandler->entries_queued();
+    } else {
+      return FALSE;
+    }
+  }
+
+  /* Action handlers */
+
+  /*!
+   * \brief  This method intiates the object creation.
+   *
+   * \param  array  $action A combination of both 'action' and 'target':
+   *                        action: The name of the action which was the used as trigger.
+   *                        target: A list of object dns, which should be affected by this method.
+   */
+  function newEntry (array $action)
+  {
+    $type = $action['subaction'];
+
+    $this->currentDn = 'new';
+
+    // Open object
+    $this->openTabObject(objects::create($type));
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDn, 'Create entry initiated');
+  }
+
+  function newEntryTemplate (array $action)
+  {
+    if (static::$skipTemplates) {
+      return;
+    }
+    $type = preg_replace('/^template_/', '', $action['subaction']);
+
+    $this->currentDn = 'new';
+
+    // Open object
+    $this->openTabObject(objects::createTemplate($type));
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDn, 'Create template entry initiated');
+  }
+
+  function newEntryFromTemplate (array $action)
+  {
+    if (static::$skipTemplates) {
+      return;
+    }
+    if (isset($action['targets'][0])) {
+      $dn = $action['targets'][0];
+    } else {
+      $dn = NULL;
+    }
+    if ($action['subaction'] == 'apply') {
+      if ($dn === NULL) {
+        return;
+      }
+      $type = $this->listing->getEntry($dn)->getTemplatedType();
+    } else {
+      $type = preg_replace('/^apply_/', '', $action['subaction']);
+    }
+    $this->dialogObject = new templateDialog($this, $type, $dn);
+  }
+
+  function applyTemplateToEntry (array $action)
+  {
+    global $ui;
+    if (static::$skipTemplates) {
+      return;
+    }
+    if (empty($action['targets'])) {
+      return;
+    }
+    $this->currentDns = $action['targets'];
+
+    // check locks
+    if ($locks = Lock::get($this->currentDns)) {
+      return Lock::genLockedMessage($locks, FALSE, _('Apply anyway'));
+    }
+
+    // Add locks
+    Lock::add($this->currentDns);
+
+    // Detect type and check that all targets share the same type
+    $type = NULL;
+
+    foreach ($this->currentDns as $dn) {
+      $entry = $this->listing->getEntry($dn);
+      if ($entry === NULL) {
+        trigger_error('Could not find '.$dn.', action canceled');
+        $this->currentDns = [];
+        return;
+      }
+
+      if ($entry->isTemplate()) {
+        $error = new FusionDirectoryError(htmlescape(_('Applying a template to a template is not possible')));
+        $error->display();
+        $this->currentDns = [];
+        return;
+      }
+
+      if (!isset($type)) {
+        $type = $entry->type;
+      } elseif ($entry->type != $type) {
+        $error = new FusionDirectoryError(htmlescape(_('All selected entries need to share the same type to be able to apply a template to them')));
+        $error->display();
+        $this->currentDns = [];
+        return;
+      }
+    }
+
+    $this->currentDn = array_shift($this->currentDns);
+
+    $this->dialogObject = new templateDialog($this, $type, NULL, $this->currentDn);
+  }
+
+  /*! \brief  Queue selected objects to be archived.
+   *          Checks Locks and ask for confirmation.
+   */
+  public function archiveRequested (array $action)
+  {
+    global $ui;
+
+    if (empty($action['targets'])) {
+      return;
+    }
+    $this->currentDns = $action['targets'];
+
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $action['targets'], 'Entry archive requested');
+
+    // Check locks
+    if ($locks = Lock::get($this->currentDns)) {
+      return Lock::genLockedMessage($locks, FALSE, _('Archive anyway'));
+    }
+
+    // Add locks
+    Lock::add($this->currentDns);
+
+    $objects = [];
+    foreach ($this->currentDns as $dn) {
+      $entry  = $this->listing->getEntry($dn);
+      if ($entry->isTemplate()) {
+        $error = new FusionDirectoryError(htmlescape(_('Archiving a template is not possible')));
+        $error->display();
+        $this->removeLocks();
+        $this->currentDns = [];
+        return;
+      }
+      $infos  = objects::infos($entry->getTemplatedType());
+      $objects[] = [
+        'name'  => $entry[$infos['nameAttr']][0],
+        'dn'    => $dn,
+        'icon'  => $infos['icon'],
+        'type'  => $infos['name']
+      ];
+    }
+
+    $smarty = get_smarty();
+    $smarty->assign('objects', $objects);
+    return $smarty->fetch(get_template_path('simple-archive.tpl'));
+  }
+
+  public function archiveConfirmed (array $action)
+  {
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDns, 'Archiving');
+
+    $success = 0;
+    foreach ($this->currentDns as $dn) {
+      $entry = $this->listing->getEntry($dn);
+
+      $errors = archivedObject::archiveObject($entry->type, $dn);
+      if (empty($errors)) {
+        $success++;
+      } else {
+        msg_dialog::displayChecks($errors);
+      }
+      Lock::deleteByObject($dn);
+    }
+
+    if ($success > 0) {
+      msg_dialog::display(
+        _('Archive success'),
+        htmlescape(sprintf(_('%d entries were successfully archived'), $success)),
+        INFO_DIALOG
+      );
+    }
+
+    $this->currentDns = [];
+  }
+
+  /*!
+   * \brief  This method opens an existing object to be edited.
+   *
+   * \param  array  $action A combination of both 'action' and 'targets':
+   *                        action: The name of the action which was the used as trigger.
+   *                        targets: A list of object dns, which should be affected by this method.
+   */
+  function editEntry (array $action)
+  {
+    global $ui;
+
+    // Do not create a new tabObject while there is already one opened,
+    //  the user may have just pressed F5 to reload the page.
+    if (is_object($this->tabObject)) {
+      return;
+    }
+
+    $target = array_pop($action['targets']);
+
+    $entry = $this->listing->getEntry($target);
+    if ($entry === NULL) {
+      trigger_error('Could not find '.$target.', open canceled');
+      return;
+    }
+
+    // Get the dn of the object and create lock
+    $this->currentDn = $target;
+    if ($locks = Lock::get($this->currentDn, TRUE)) {
+      return Lock::genLockedMessage($locks, TRUE);
+    }
+    Lock::add($this->currentDn);
+
+    // Open object
+    $this->openTabObject(objects::open($this->currentDn, $entry->getTemplatedType()));
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDn, 'Edit entry initiated');
+    if (isset($action['subaction'])
+      && ($this->handleSubAction($action) === FALSE)) {
+      trigger_error('Was not able to handle subaction: '.$action['subaction']);
+    }
+  }
+
+  /*!
+   * \brief  Editing an object was canceled.
+   *          Close dialogs/tabs and remove locks.
+   */
+  function cancelEdit ()
+  {
+    if (($this->tabObject instanceOf simpleTabs) && ($this->dialogObject instanceOf templateDialog)) {
+      $this->handleTemplateApply(TRUE);
+      return;
+    }
+    $this->removeLocks();
+    $this->closeDialogs();
+  }
+
+  /*!
+   * \brief  Save object modifications and closes dialogs (returns to object listing).
+   *          - Calls 'simpleTabs::save' to save back object modifications (e.g. to ldap).
+   *          - Calls 'management::closeDialogs' to return to the object listing.
+   */
+  function saveChanges ()
+  {
+    if ($this->tabObject instanceOf simpleTabs) {
+      $this->tabObject->readPost();
+      $this->tabObject->update();
+      if ($this->dialogObject instanceOf templateDialog) {
+        $this->handleTemplateApply();
+      } else {
+        $msgs = $this->tabObject->save();
+        if (count($msgs)) {
+          msg_dialog::displayChecks($msgs);
+        } else {
+          logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDns, 'Entry saved');
+          $this->removeLocks();
+          $this->closeDialogs();
+        }
+      }
+    }
+  }
+
+  /*!
+   *  \brief  Save object modifications and keep dialogs opened
+   */
+  function applyChanges ()
+  {
+    if ($this->tabObject instanceOf simpleTabs) {
+      $this->tabObject->readPost();
+      $this->tabObject->update();
+      $msgs = $this->tabObject->save();
+      if (count($msgs)) {
+        msg_dialog::displayChecks($msgs);
+      } else {
+        logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDns, 'Modifications applied');
+        $this->tabObject->re_init();
+        /* Avoid applying the POST a second time */
+        $_POST = [];
+      }
+    }
+  }
+
+  /*! \brief  Queue selected objects to be removed.
+   *          Checks ACLs, Locks and ask for confirmation.
+   */
+  function removeRequested (array $action)
+  {
+    global $ui;
+    $disallowed       = [];
+    $this->currentDns = [];
+
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $action['targets'], 'Entry deletion requested');
+
+    // Check permissons for each target
+    foreach ($action['targets'] as $dn) {
+      $entry = $this->listing->getEntry($dn);
+      try {
+        if ($entry->checkAcl('d')) {
+          $this->currentDns[] = $dn;
+        } else {
+          $disallowed[] = $dn;
+        }
+      } catch (NonExistingObjectTypeException $e) {
+        trigger_error('Unknown object type received :'.$e->getMessage());
+      }
+    }
+    if (count($disallowed)) {
+      $error = new FusionDirectoryPermissionError(msgPool::permDelete($disallowed));
+      $error->display();
+    }
+
+    // We've at least one entry to delete.
+    if (count($this->currentDns)) {
+      // Check locks
+      if ($locks = Lock::get($this->currentDns)) {
+        return Lock::genLockedMessage($locks, FALSE, _('Delete anyway'));
+      }
+
+      // Add locks
+      Lock::add($this->currentDns);
+
+      $objects = [];
+      foreach ($this->currentDns as $dn) {
+        $entry  = $this->listing->getEntry($dn);
+        $infos  = objects::infos($entry->getTemplatedType());
+        if ($entry->isTemplate()) {
+          $infos['nameAttr'] = 'cn';
+        }
+        $objects[] = [
+          'name'  => $entry[$infos['nameAttr']][0],
+          'dn'    => $dn,
+          'icon'  => $infos['icon'],
+          'type'  => $infos['name']
+        ];
+      }
+
+      return $this->removeConfirmationDialog($objects);
+    }
+  }
+
+  /*! \brief Display confirmation dialog
+   */
+  protected function removeConfirmationDialog (array $objects)
+  {
+    $smarty = get_smarty();
+    $smarty->assign('objects', $objects);
+    $smarty->assign('multiple', TRUE);
+    return $smarty->fetch(get_template_path('simple-remove.tpl'));
+  }
+
+  /*! \brief  Deletion was confirmed, delete the objects queued.
+   *          Checks ACLs just in case.
+   */
+  function removeConfirmed (array $action)
+  {
+    global $ui;
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDns, 'Entry deletion confirmed');
+
+    foreach ($this->currentDns as $dn) {
+      $entry = $this->listing->getEntry($dn);
+      if (empty($entry)) {
+        continue;
+      }
+      if ($entry->checkAcl('d')) {
+        // Delete the object
+        $this->currentDn = $dn;
+        $this->openTabObject(objects::open($this->currentDn, $entry->getTemplatedType()));
+        $errors = $this->tabObject->delete();
+        msg_dialog::displayChecks($errors);
+
+        // Remove the lock for the current object.
+        Lock::deleteByObject($this->currentDn);
+      } else {
+        $error = new FusionDirectoryPermissionError(msgPool::permDelete($dn));
+        $error->display();
+        logging::log('security', 'management/'.get_class($this), $dn, [], 'Tried to trick deletion.');
+      }
+    }
+
+    // Cleanup
+    $this->removeLocks();
+    $this->closeDialogs();
+  }
+
+  function configureDialog (array $action)
+  {
+    if (!$this->skipConfiguration) {
+      $this->dialogObject = new ManagementConfigurationDialog($this);
+    }
+  }
+
+  /*! \brief  This method is used to queue and process copy&paste actions.
+   *          Allows to copy, cut and paste mutliple entries at once.
+   */
+  function copyPasteHandler (array $action = ['action' => ''])
+  {
+    global $ui;
+
+    // Exit if copy&paste handler is disabled.
+    if (!is_object($this->cpHandler)) {
+      return FALSE;
+    }
+
+    // Save user input
+    $this->cpHandler->readPost();
+
+    // Add entries to queue
+    if (($action['action'] == 'copy') || ($action['action'] == 'cut')) {
+      $this->cpHandler->cleanup_queue();
+      foreach ($action['targets'] as $dn) {
+        $entry = $this->listing->getEntry($dn);
+        if (($action['action'] == 'copy') && $entry->checkAcl('r')) {
+          $this->cpHandler->add_to_queue($dn, 'copy', $entry->getTemplatedType());
+          logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry copied!');
+        }
+        if (($action['action'] == 'cut') && $entry->checkAcl('rd')) {
+          $this->cpHandler->add_to_queue($dn, 'cut', $entry->getTemplatedType());
+          logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry cut!');
+        }
+      }
+    }
+
+    // Initiate pasting
+    if ($action['action'] == 'paste') {
+      $this->cpPastingStarted = TRUE;
+    }
+
+    // Display any c&p dialogs, eg. object modifications required before pasting.
+    if ($this->cpPastingStarted && $this->cpHandler->entries_queued()) {
+      $this->cpHandler->update();
+      $data = $this->cpHandler->render();
+      if (!empty($data)) {
+        return $data;
+      }
+    }
+
+    // Automatically disable pasting process since there is no entry left to paste.
+    if (!$this->cpHandler->entries_queued()) {
+      $this->cpPastingStarted = FALSE;
+      $this->cpHandler->resetPaste();
+    }
+
+    return '';
+  }
+
+  /*!
+   * \brief  Opens the snapshot creation dialog for the given target.
+   */
+  function createSnapshotDialog (array $action)
+  {
+    global $config, $ui;
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $action['targets'], 'Snapshot creation initiated!');
+
+    $this->currentDn = array_pop($action['targets']);
+    if (empty($this->currentDn)) {
+      return;
+    }
+    $entry = $this->listing->getEntry($this->currentDn);
+    if ($entry->snapshotCreationAllowed()) {
+      $this->dialogObject = new SnapshotCreateDialog($this->currentDn, $this, '');
+    } else {
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('You are not allowed to create a snapshot for %s.'),
+          $this->currentDn
+        ))
+      );
+      $error->display();
+    }
+  }
+
+  /*!
+   * \brief  Displays the "Restore snapshot dialog" for a given target.
+   *          If no target is specified, open the restore removed object dialog.
+   */
+  function restoreSnapshotDialog (array $action)
+  {
+    global $config, $ui;
+
+    if (empty($action['targets'])) {
+      // No target, open the restore removed object dialog.
+      $this->currentDn  = $this->listing->getBase();
+      $aclCategories    = $this->listAclCategories();
+    } else {
+      // Display the restore points for a given object.
+      $this->currentDn = $action['targets'][0];
+      if (empty($this->currentDn)) {
+        return;
+      }
+      $aclCategories = [objects::infos($this->listing->getEntry($this->currentDn)->getTemplatedType())['aclCategory']];
+    }
+
+    if ($ui->allow_snapshot_restore($this->currentDn, $aclCategories, empty($action['targets']))) {
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDn, 'Snapshot restoring initiated!');
+      $this->dialogObject = new SnapshotRestoreDialog($this->currentDn, $this, empty($action['targets']), $aclCategories);
+    } else {
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('You are not allowed to restore a snapshot for %s.'),
+          $this->currentDn
+        ))
+      );
+      $error->display();
+    }
+  }
+
+
+  function export (array $action)
+  {
+    if (!isset($this->exporters[$action['action']])) {
+      trigger_error('Unknown exporter '.$action['action']);
+      return;
+    }
+    $exporter = $this->exporters[$action['action']];
+    $file     = $exporter['class']::export($this->listing);
+    send_binary_content($file, $exporter['filename'], $exporter['mime']);
+  }
+
+  /* End of action handlers */
+
+  /* Methods related to Snapshots */
+
+  function getSnapshotBases (): array
+  {
+    $bases = [];
+    foreach ($this->objectTypes as $type) {
+      $infos  = objects::infos($type);
+      $bases[] = $infos['ou'].$this->listing->getBase();
+    }
+
+    // No bases specified? Try base
+    if (!count($bases)) {
+      $bases[] = $this->listing->getBase();
+    }
+
+    return array_unique($bases);
+  }
+
+  /*!
+   * \brief Get all deleted snapshots
+   */
+  function getAllDeletedSnapshots (): array
+  {
+    $bases = $this->getSnapshotBases();
+    $tmp = [];
+    foreach ($bases as $base) {
+      $tmp = array_merge($tmp, $this->snapHandler->getAllDeletedSnapshots($base));
+    }
+    return $tmp;
+  }
+
+  /*
+   * \brief Return available snapshots for the given base
+   *
+   * \param string $dn The DN
+   */
+  function getAvailableSnapsShots (string $dn): array
+  {
+    return $this->snapHandler->getAvailableSnapsShots($dn);
+  }
+
+  /*
+   * \brief Whether snapshot restore action should be enabled for an entry
+   */
+  function enableSnapshotRestore ($action, ListingEntry $entry = NULL): bool
+  {
+    if ($entry !== NULL) {
+      /* For entries */
+      return $this->snapHandler->hasSnapshots($entry->dn);
+    } else {
+      /* For action menu */
+      return $this->snapHandler->hasDeletedSnapshots($this->getSnapshotBases());
+    }
+  }
+
+  /*!
+   * \brief  Creates a new snapshot entry
+   * If source arg is not set, default to 'FD'.
+   */
+  function createSnapshot (string $dn, string $description, string $snapshotSource = 'FD')
+  {
+    global $ui;
+
+    if (empty($dn) || ($this->currentDn !== $dn)) {
+      trigger_error('There was a problem with the snapshot workflow');
+      return;
+    }
+    $entry = $this->listing->getEntry($dn);
+    if ($entry->snapshotCreationAllowed()) {
+      $this->snapHandler->createSnapshot($dn, $description, $entry->type, $snapshotSource);
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snapshot created!');
+    } else {
+      $error = new FusionDirectoryPermissionError(htmlescape(sprintf(_('You are not allowed to restore a snapshot for %s.'), $dn)));
+      $error->display();
+    }
+  }
+
+  /*!
+   * \brief  Restores a snapshot object.
+   *
+   * \param  String  $dn  The DN of the snapshot
+   */
+  function restoreSnapshot (string $dn)
+  {
+    global $ui;
+    if (!empty($dn) && $ui->allow_snapshot_restore($dn, $this->dialogObject->aclCategory, $this->dialogObject->global)) {
+      $dn = $this->snapHandler->restoreSnapshot($dn);
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snapshot restored');
+      $this->closeDialogs();
+      if ($dn !== FALSE) {
+        $this->listing->focusDn($dn);
+        $entry = $this->listing->getEntry($dn);
+        $this->currentDn = $dn;
+        Lock::add($this->currentDn);
+
+        // Open object
+        $this->openTabObject(objects::open($this->currentDn, $entry->getTemplatedType()));
+        $this->saveChanges();
+      }
+    } else {
+      $error = new FusionDirectoryPermissionError(htmlescape(sprintf(_('You are not allowed to restore a snapshot for %s.'), $dn)));
+      $error->display();
+    }
+  }
+
+  /*!
+   * \brief Delete a snapshot
+   *
+   * \param string $dn DN of the snapshot
+   */
+  function removeSnapshot (string $dn)
+  {
+    global $ui;
+    if (!empty($dn) && $ui->allow_snapshot_delete($dn, $this->dialogObject->aclCategory)) {
+      $this->snapHandler->removeSnapshot($dn);
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snapshot deleted');
+    } else {
+      $error = new FusionDirectoryPermissionError(htmlescape(sprintf(_('You are not allowed to delete a snapshot for %s.'), $dn)));
+      $error->display();
+    }
+  }
+
+  static function mainInc ($classname = NULL, $objectTypes = FALSE)
+  {
+    global $remove_lock, $cleanup, $display;
+
+    if ($classname === NULL) {
+      $classname = get_called_class();
+    }
+
+    /* Remove locks */
+    if ($remove_lock && session::is_set($classname)) {
+      $macl = session::get($classname);
+      $macl->removeLocks();
+    }
+
+    if ($cleanup) {
+      /* Clean up */
+      session::un_set($classname);
+    } else {
+      if (!session::is_set($classname) || (isset($_GET['reset']) && $_GET['reset'] == 1)) {
+        /* Create the object if missing or reset requested */
+        $managementObject = new $classname($objectTypes);
+      } else {
+        /* Retrieve the object from session */
+        $managementObject = session::get($classname);
+      }
+      /* Execute and display */
+      $managementObject->readPost();
+      $managementObject->update();
+      $display = $managementObject->render();
+
+      /* Store the object in the session */
+      session::set($classname, $managementObject);
+    }
+  }
+}
diff --git a/include/management/class_managementFilter.inc b/include/management/class_managementFilter.inc
new file mode 100644
index 0000000000000000000000000000000000000000..aa58142c3658af696abb09ecc911e9ea4d2660d9
--- /dev/null
+++ b/include/management/class_managementFilter.inc
@@ -0,0 +1,320 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief This class handles the management filter box
+ */
+class managementFilter
+{
+  protected $types;
+
+  protected $searchAttributes = [];
+  protected $scope = 'one';
+  protected $showTemplates = FALSE;
+
+  protected $search = '';
+
+  protected $filterElements = [];
+
+  protected $fixedScope;
+
+  /* The management class */
+  public $parent;
+
+  public $pid;
+
+  /*!
+   * \brief Create a management filter
+   *
+   * \param string $parent management instance
+   */
+  function __construct (management $parent, bool $fixedScope = NULL, array $filterElementDefinitions = [])
+  {
+    global $config;
+
+    $this->parent = $parent;
+
+    $this->pid = preg_replace('/[^0-9]/', '', microtime(TRUE));
+
+    foreach ($this->parent->objectTypes as $type) {
+      $this->types['filter_type_'.$type] = [
+        'show'    => TRUE,
+        'filters' => [],
+        'infos'   => objects::infos($type),
+      ];
+    }
+
+    $this->filterElements = [];
+    foreach ($filterElementDefinitions as $filterElementDefinition) {
+      list($class, $args) = $filterElementDefinition;
+      $this->filterElements[] = new $class($this, ...$args);
+    }
+
+    $this->fixedScope = $fixedScope;
+  }
+
+  function setScope (string $scope)
+  {
+    $this->scope = $scope;
+  }
+
+  protected function showScope (): bool
+  {
+    if ($this->fixedScope !== NULL) {
+      return !$this->fixedScope;
+    }
+    return $this->parent->listing->getBaseMode();
+  }
+
+  function addElement (FilterElement $element)
+  {
+    $this->filterElements[] = $element;
+  }
+
+  function update (string $base)
+  {
+    global $ui;
+
+    if (isset($_POST['FILTER_PID']) && ($_POST['FILTER_PID'] == $this->pid)) {
+      // Load post values and adapt filter, base and scope accordingly
+      foreach ($this->types as $key => &$data) {
+        $data['show'] = isset($_POST[$key]);
+      }
+      unset($data);
+
+      $this->showTemplates = isset($_POST['filter_type_TEMPLATE']);
+
+      if ($this->showScope()) {
+        $this->scope = (isset($_POST['SCOPE']) ? 'sub' : 'one');
+      }
+
+      $this->search = (isset($_POST['SEARCH']) ? $_POST['SEARCH'] : '');
+
+      foreach ($this->filterElements as $element) {
+        $element->update();
+      }
+    }
+
+    foreach ($this->parent->objectTypes as $type) {
+      $attrs = objects::getSearchedAttributes($type);
+
+      $this->searchAttributes[$type] = [];
+      $this->parent->listing->fillSearchedAttributes($type, $attrs);
+      foreach ($attrs as $attr => $acl) {
+        $rights = $ui->get_permissions($base, $acl, $attr);
+        if (strpos($rights, 'r') !== FALSE) {
+          $this->searchAttributes[$type][] = $attr;
+        }
+      }
+    }
+  }
+
+  /*!
+   * \brief Render
+   */
+  function render (): string
+  {
+    $smarty = get_smarty();
+
+    $smarty->assign('SCOPE',      $this->scope);
+    $smarty->assign('SHOWSCOPE',  $this->showScope());
+    $smarty->assign('FILTER_PID', $this->pid);
+    $smarty->assign('SEARCH',     $this->search);
+    $smarty->assign('TYPES',      $this->types);
+
+    $searchAttrs = [];
+    foreach ($this->searchAttributes as $type => $attrs) {
+      foreach ($attrs as $attr) {
+        $searchAttrs[] = strtolower($type).'/'.$attr;
+      }
+    }
+    $smarty->assign('SEARCHDESC', sprintf(_('Searches in %s'), implode(', ', $searchAttrs)));
+
+    $parentClass = get_class($this->parent);
+    if (!$parentClass::$skipTemplates) {
+      $smarty->assign('TEMPLATES',  $this->showTemplates);
+    }
+    $elements = [];
+    foreach ($this->filterElements as $element) {
+      $elements[] = $element->render();
+    }
+    $smarty->assign('FILTERS',  $elements);
+
+    // load the file from the theme folder
+    $file = get_template_path('management/filter.tpl');
+
+    // Load template
+    return $smarty->fetch($file);
+  }
+
+  function query (array $attrs, string $base): array
+  {
+    global $ui;
+
+    $objectTypeCount  = [];
+    $entries          = [];
+    $row              = 0;
+    $ui->getSizeLimitHandler()->setLimitExceeded(FALSE);
+    foreach ($this->parent->objectTypes as $type) {
+      $infos      = $this->types['filter_type_'.$type]['infos'];
+      if ($this->scope == 'one') {
+        $searchBase = (empty($infos['ou']) ? $base : $infos['ou'].$base);
+      } else {
+        $searchBase = $base;
+      }
+
+      $attrsAsked = $attrs;
+      if (!empty($infos['mainAttr']) && !isset($attrsAsked[$infos['mainAttr']])) {
+        /* Ask for mainAttr */
+        $attrsAsked[$infos['mainAttr']] = '*';
+      }
+      if (!empty($infos['nameAttr']) && !isset($attrsAsked[$infos['nameAttr']])) {
+        /* Ask for nameAttr */
+        $attrsAsked[$infos['nameAttr']] = '*';
+      }
+
+      foreach ($attrsAsked as $attr => $data) {
+        // TODO: find a better way to avoid Exceptions
+        $category = $ui->getAttributeCategory($type, $attr);
+        if ($category === FALSE) {
+          unset($attrsAsked[$attr]);
+        }
+      }
+
+      $elementFilters = [];
+      if (!empty($this->search)) {
+        if (preg_match('/^\(.+\)$/', $this->search)) {
+          $elementFilters[] = $this->search;
+        } else {
+          $searchAttributesTmp    = $this->searchAttributes[$type];
+          if ($this->showTemplates) {
+            $searchAttributesTmp[]  = '_template_cn';
+          }
+          $elementFilters[] = '(|('.implode('=*'.ldap_escape_f($this->search).'*)(', $searchAttributesTmp).'=*'.ldap_escape_f($this->search).'*))';
+        }
+      }
+
+      $typeElementFilters = $elementFilters;
+      foreach ($this->filterElements as $element) {
+        $skip = $element->getFilters($type, $typeElementFilters);
+        if ($skip === TRUE) {
+          continue 2;
+        }
+      }
+      $filter = '';
+      if (!empty($typeElementFilters)) {
+        $filter = '(&'.implode('', $typeElementFilters).')';
+      }
+
+      $parentClass = get_class($this->parent);
+      if (!$parentClass::$skipTemplates && $this->showTemplates) {
+        try {
+          $ldapEntries = objects::ls($type, $attrsAsked, (($this->scope == 'one') ? 'ou=templates,'.$searchBase : $searchBase), $filter, TRUE, $this->scope, TRUE);
+
+          $objectTypeCount['template_'.$type] = count($ldapEntries);
+          foreach ($ldapEntries as $dn => $entry) {
+            $entries[$dn] = new ListingEntry($this->parent->listing, 'template_'.$type, $dn, $entry, $row++);
+          }
+        } catch (FusionDirectoryException $e) {
+          $warning = new FusionDirectoryWarning(
+            nl2br(htmlescape(sprintf(
+              _("Could not search for \"%s\" templates:\n%s"),
+              $this->types['filter_type_'.$type]['infos']['name'],
+              $e->getMessage()
+            ))),
+            0,
+            $e
+          );
+          $warning->display();
+        }
+      }
+
+      if (!$this->types['filter_type_'.$type]['show']) {
+        continue;
+      }
+
+      try {
+        $ldapEntries = objects::ls($type, $attrsAsked, $searchBase, $filter, TRUE, $this->scope, FALSE, TRUE);
+
+        $ldapEntries = $this->filterEntries($ldapEntries);
+      } catch (FusionDirectoryException $e) {
+        $warning = new FusionDirectoryWarning(
+          nl2br(htmlescape(sprintf(
+            _("Could not search for \"%s\":\n%s"),
+            $this->types['filter_type_'.$type]['infos']['name'],
+            $e->getMessage()
+          ))),
+          0,
+          $e
+        );
+        $warning->display();
+        $this->types['filter_type_'.$type]['show'] = FALSE;
+        continue;
+      }
+
+      $objectTypeCount[$type] = count($ldapEntries);
+      foreach ($ldapEntries as $dn => $entry) {
+        if (isset($entries[$dn])) {
+          trigger_error('Same dn '.$dn.' found as several object types');
+        }
+        $entries[$dn] = new ListingEntry($this->parent->listing, $type, $dn, $entry, $row++);
+      }
+    }
+
+    return [$entries, $objectTypeCount];
+  }
+
+  protected function filterEntries (array $ldapEntries): array
+  {
+    if (!empty($this->parent->whiteList)) {
+      foreach ($ldapEntries as $dn => $entry) {
+        if (in_array($dn, $this->parent->whiteList['dn'])) {
+          continue;
+        }
+        foreach ($this->parent->whiteList['branches'] as $branch) {
+          if (preg_match('/'.preg_quote($branch, '/').'$/', $dn)) {
+            continue 2;
+          }
+        }
+        unset($ldapEntries[$dn]);
+      }
+    }
+    if (isset($this->parent->blackList)) {
+      foreach ($this->parent->blackList as $attr_name => $attr_values) {
+        foreach ($attr_values as $match) {
+          foreach ($ldapEntries as $dn => $entry) {
+            if (isset($entry[$attr_name])) {
+              $test = $entry[$attr_name];
+              if (!is_array($test)) {
+                $test = [$test];
+              }
+              if (in_array($match, $test)) {
+                unset($ldapEntries[$dn]);
+              }
+            }
+          }
+        }
+      }
+    }
+
+    return $ldapEntries;
+  }
+}
diff --git a/include/management/class_managementListing.inc b/include/management/class_managementListing.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a80f5f6028b519513da134b3b543c2b3e7f40b64
--- /dev/null
+++ b/include/management/class_managementListing.inc
@@ -0,0 +1,628 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \file class_managementListing.inc
+ * Source code for class managementListing
+ */
+
+/*!
+ * \brief This class handles the entries list for a management instance
+ */
+class managementListing
+{
+  public $pid;
+
+  protected $entries      = [];
+  protected $entriesIndex = [];
+  protected $base;
+
+  protected $sortDirection  = NULL;
+  protected $sortColumn     = NULL;
+
+  protected $baseMode         = TRUE;
+  protected $multiSelect      = TRUE;
+  protected $bases            = [];
+  protected $header           = [];
+  protected $objectTypeCount  = [];
+  protected $baseSelector;
+
+  /* The management class */
+  public $parent;
+
+  protected $columns;
+
+  protected $showFooter;
+
+  /*!
+   * \brief Create a listing
+   *
+   * \param string $parent management instance
+   */
+  function __construct (management $parent, bool $baseMode = TRUE, bool $multiSelect = TRUE)
+  {
+    global $config;
+
+    $this->parent       = $parent;
+    $this->baseMode     = $baseMode;
+    $this->multiSelect  = $multiSelect;
+
+    // Initialize pid
+    $this->pid = preg_replace('/[^0-9]/', '', microtime(TRUE));
+
+    $this->setUpBaseSelector();
+
+    // Move footer information
+    $this->showFooter = ($config->get_cfg_value('listSummary') == 'TRUE');
+
+    $this->reloadColumns();
+  }
+
+  function setUpBaseSelector ()
+  {
+    global $config, $ui;
+
+    // Set base for filter
+    if ($this->baseMode) {
+      $this->base = $ui->getCurrentBase();
+      $this->refreshBasesList();
+
+      // Instanciate base selector
+      $this->baseSelector = new baseSelector($this->bases, $this->base);
+    } else {
+      $this->base = $config->current['BASE'];
+    }
+  }
+
+  function getBaseMode (): bool
+  {
+    return $this->baseMode;
+  }
+
+  function getMultiSelect (): bool
+  {
+    return $this->multiSelect;
+  }
+
+  function reloadColumns ()
+  {
+    $columnInfos = $this->parent->getColumnConfiguration();
+
+    $this->columns  = [];
+    $first          = TRUE;
+    foreach ($columnInfos as $columnInfo) {
+      $column = Column::build($this, $columnInfo[0], $columnInfo[1]);
+      if ($first && !empty($columnInfo[1]['attributes'])) {
+        $column->setTemplateAttributes(['cn']);
+        $first = FALSE;
+      }
+      $this->columns[] = $column;
+    }
+  }
+
+  function getColumns (): array
+  {
+    return $this->columns;
+  }
+
+  function renderHeader ()
+  {
+    $this->header = [];
+
+    // Initialize sort?
+    $sortInit = FALSE;
+    if (!isset($this->sortDirection)) {
+      $this->sortColumn     = 0;
+      $this->sortDirection  = [];
+      $sortInit             = TRUE;
+    }
+
+    foreach ($this->columns as $index => $column) {
+      // Initialize everything to one direction
+      if ($sortInit) {
+        $this->sortDirection[$index] = FALSE;
+      }
+
+      $this->header[$index] = [
+        'props'     => $column->getHtmlProps(),
+        'sortable'  => $column->isSortable(),
+        'label'     => $column->getLabel(),
+      ];
+      if ($index == $this->sortColumn) {
+        if ($column->isSortable()) {
+          $this->header[$index]['sortdirection'] = $this->sortDirection[$index];
+        } elseif ($sortInit) {
+          /* sortColumn is not sortable, try next one */
+          $this->sortColumn++;
+        }
+      }
+    }
+  }
+
+  /*!
+   * \brief Render
+   */
+  function render (): string
+  {
+    global $ui;
+
+    // Check for exeeded sizelimit
+    if (($message = $ui->getSizeLimitHandler()->check()) != '') {
+      return $message;
+    }
+
+    $this->renderHeader();
+
+    $smarty = get_smarty();
+    $smarty->assign('PID',          $this->pid);
+    $smarty->assign('PLUG',         $_GET['plug']);
+    $smarty->assign('multiSelect',  $this->multiSelect);
+    $smarty->assign('showFooter',   $this->showFooter);
+    $smarty->assign('headers',      $this->header);
+
+    $smarty->assign('columnCount', (count($this->columns) + ($this->multiSelect ? 1 : 0)));
+
+    // Complete list by sorting entries and appending them to the output
+    $entryIterator = $this->getIterator();
+
+    $rows = [];
+    foreach ($entryIterator as $entry) {
+      $row = [
+        'cells'   => [],
+        'classes' => [],
+      ];
+      foreach ($this->columns as $column) {
+        $row['cells'][] = [
+          'props'   => $column->getHtmlCellProps(),
+          'render'  => $column->renderCell($entry)
+        ];
+        $column->fillRowClasses($row['classes'], $entry);
+      }
+
+      $row['index']   = $entry->row;
+
+      $rows[] = $row;
+    }
+    $smarty->assign('rows', $rows);
+
+    // Add the footer if requested
+    if ($this->showFooter) {
+      $types = [];
+      foreach ($this->parent->objectTypes as $type) {
+        if (isset($this->objectTypeCount[$type])) {
+          $infos = objects::infos($type);
+          $types[] = [
+            'name'      => $infos['name'],
+            'icon'      => $infos['icon'],
+            'count'     => $this->objectTypeCount[$type],
+          ];
+        }
+        if (isset($this->objectTypeCount['template_'.$type])) {
+          $infos = objects::infos($type);
+          $types[] = [
+            'name'      => sprintf(_('%s template'), $infos['name']),
+            'icon'      => 'geticon.php?context=devices&icon=template&size=16',
+            'count'     => $this->objectTypeCount['template_'.$type],
+          ];
+        }
+      }
+      $smarty->assign('objectCounts', $types);
+    }
+
+    /* If the user ignored the sizelimit warning he may get more entries than what PHP can handle */
+    $error = ldapSizeLimit::checkMaxInputVars(
+      count($this->entries),
+      _('The number of listed entries (%d) is greater than or too close to configured max_input_vars PHP ini setting (%d). Please change max_input_vars ini setting to a higher value.')
+    );
+    if ($error !== FALSE) {
+      $error->display();
+    }
+
+    return $smarty->fetch(get_template_path('management/list.tpl'));
+  }
+
+  function getIterator (): Iterator
+  {
+    return new EntrySortIterator($this->entries, $this->columns[$this->sortColumn] ?? NULL, $this->sortDirection[$this->sortColumn] ?? FALSE);
+  }
+
+  /*!
+   * \brief Updates base and sorting according to POST and GET infos
+   */
+  function updateBase ()
+  {
+    global $ui;
+
+    // Take care of base selector
+    if ($this->baseMode) {
+      $this->baseSelector->update();
+
+      // Check if a wrong base was supplied
+      if (!$this->baseSelector->checkLastBaseUpdate()) {
+        $error = new FusionDirectoryError(msgPool::check_base());
+        $error->display();
+      }
+
+      // Save base
+      $this->base = $this->baseSelector->getBase();
+      $ui->setCurrentBase($this->base);
+    }
+
+    // Do not do anything if this is not our PID
+    if ($this->baseMode || !(isset($_REQUEST['PID']) && ($_REQUEST['PID'] != $this->pid))) {
+      // Filter GET with "act" attributes
+      if (isset($_GET['act'])) {
+        $key = validate($_GET['act']);
+        if (preg_match('/^SORT_([0-9]+)$/', $key, $match)) {
+          $this->setSortColumn($match[1]);
+
+          // Allow header to update itself according to the new sort settings
+          $this->renderHeader();
+        }
+      }
+
+      if ($this->baseMode) {
+        // Override base if we got signals from the navigation elements
+        $action = '';
+        foreach (array_keys($_POST) as $key) {
+          if (preg_match('/^(ROOT|BACK|HOME)_x$/', $key, $match)) {
+            $action = $match[1];
+            break;
+          }
+        }
+
+        // Navigation handling
+        if ($action == 'ROOT') {
+          $this->setBase(key($this->bases));
+        } elseif ($action == 'BACK') {
+          $parentBase = preg_replace('/^[^,]+,/', '', $this->base);
+          $this->tryAndSetBase($parentBase);
+        } elseif ($action == 'HOME') {
+          $ui = get_userinfo();
+          $this->tryAndSetBase($ui->getBase());
+        }
+      }
+    }
+  }
+
+  /*!
+   * \brief Update a listing
+   */
+  function update (string $dn = NULL)
+  {
+    if ($dn === NULL) {
+      $this->updateBase();
+    }
+
+    // Update filter
+    $this->parent->filter->update($this->base);
+
+    // Update filter and refresh entries
+    $attrs = $this->parent->neededAttrs;
+    foreach ($this->columns as $column) {
+      $column->fillNeededAttributes($attrs);
+    }
+    if ($dn !== NULL) {
+      $this->parent->filter->setScope('base');
+      list($this->entries, $this->objectTypeCount) = $this->parent->filter->query($attrs, $dn);
+      $this->parent->filter->setScope('one');
+    } else {
+      list($this->entries, $this->objectTypeCount) = $this->parent->filter->query($attrs, $this->base);
+    }
+    /* Store the order of the entries to access them by index later */
+    $this->entriesIndex = array_keys($this->entries);
+  }
+
+  /*!
+   * \brief Set a new base valor
+   *
+   * \param string $base
+   */
+  function setBase (string $base)
+  {
+    global $ui;
+    $this->base = $base;
+    if ($this->baseMode) {
+      $this->baseSelector->setBase($this->base);
+      $ui->setCurrentBase($this->base);
+    }
+  }
+
+  function tryAndSetBase ($base)
+  {
+    if (isset($this->bases[$base])) {
+      $this->setBase($base);
+    }
+  }
+
+  /*!
+   * \brief Accessor of the base
+   *
+   * \return the base
+   */
+  function getBase (): string
+  {
+    return $this->base;
+  }
+
+  function renderBase (): string
+  {
+    if (!$this->baseMode) {
+      return '';
+    }
+
+    return $this->baseSelector->render();
+  }
+
+  function renderNavigation (bool $skipConfiguration = FALSE): array
+  {
+    global $ui;
+
+    if ($this->baseMode) {
+      $enableBack = TRUE;
+      $enableRoot = TRUE;
+      $enableHome = TRUE;
+
+      /* Check if base = first available base */
+      $deps = array_keys($this->bases);
+
+      if (!count($deps) || $deps[0] == $this->base) {
+        $enableBack = FALSE;
+        $enableRoot = FALSE;
+      }
+
+      /* Check if we are in users home  department */
+      if (!count($deps) || ($this->base == $ui->getBase()) || !in_array_ics($ui->getBase(), $deps)) {
+        $enableHome = FALSE;
+      }
+
+      $actions = [
+        [
+          'id'      => 'ROOT',
+          'desc'    => _('Go to root department'),
+          'name'    => _('Root'),
+          'icon'    => 'geticon.php?context=actions&icon=go-first&size=16',
+          'enabled' => $enableRoot,
+          'class'   => '',
+        ],
+        [
+          'id'      => 'BACK',
+          'desc'    => _('Go up one department'),
+          'name'    => _('Up'),
+          'icon'    => 'geticon.php?context=actions&icon=go-up&size=16',
+          'enabled' => $enableBack,
+          'class'   => '',
+        ],
+        [
+          'id'      => 'HOME',
+          'desc'    => _('Go to user\'s department'),
+          'name'    => _('Home'),
+          'icon'    => 'geticon.php?context=actions&icon=go-home&size=16',
+          'enabled' => $enableHome,
+          'class'   => '',
+        ],
+      ];
+    } else {
+      $actions = [];
+    }
+
+    $actions[] = [
+      'id'      => 'REFRESH',
+      'desc'    => _('Reload list'),
+      'name'    => _('Reload'),
+      'icon'    => 'geticon.php?context=actions&icon=view-refresh&size=16',
+      'enabled' => TRUE,
+      'class'   => 'optional',
+    ];
+
+    if (!$skipConfiguration) {
+      $actions[] = [
+        'id'      => 'listing_configure',
+        'desc'    => _('Configure this management list'),
+        'name'    => _('Configure'),
+        'icon'    => 'geticon.php?context=categories&icon=settings&size=16',
+        'enabled' => TRUE,
+        'class'   => '',
+      ];
+    }
+
+    return $actions;
+  }
+
+  /*!
+   * \brief Get action
+   */
+  function getAction (): array
+  {
+    global $config;
+
+    $result = ['targets' => [], 'action' => '', 'subaction' => NULL];
+
+    // Do not do anything if this is not our PID, or there's even no PID available...
+    if (!isset($_REQUEST['dn']) && (!isset($_REQUEST['PID']) || $_REQUEST['PID'] != $this->pid)) {
+      return $result;
+    }
+
+    if (isset($_GET['act'])) {
+      // Filter GET with "act" attributes
+      $key = validate($_GET['act']);
+      if (preg_match('/^listing_([[:alnum:]_\.]+)_([0-9]+)$/', $key, $m)) {
+        $target = $m[2];
+        if (isset($this->entriesIndex[$target])) {
+          $result['action']     = $m[1];
+          $result['targets'][]  = $this->entriesIndex[$target];
+        }
+      } elseif (isset($_REQUEST['dn']) && preg_match('/^listing_([[:alnum:]_\.]+)$/', $key, $m)) {
+        /* Pre-render list to init things if a dn is gonna be opened on first load */
+        $dn = urldecode($_REQUEST['dn']);
+        $this->focusDn($dn);
+        $this->render();
+
+        $result['action']     = $m[1];
+        $result['targets'][]  = $dn;
+        // Make sure no other management class intercept the same dn
+        unset($_REQUEST['dn']);
+      }
+    } else {
+      // Filter POST with "act" attributes -> posted from action menu
+      if (isset($_POST['act']) && ($_POST['act'] != '')) {
+        $result['action'] = validate($_POST['act']);
+      }
+
+      // Filter POST with "listing_" attributes
+      foreach (array_keys($_POST) as $key) {
+        // Capture selections
+        if (preg_match('/^listing_selected_([0-9]+)$/', $key, $m)) {
+          $target = $m[1];
+          if (isset($this->entriesIndex[$target])) {
+            $result['targets'][] = $this->entriesIndex[$target];
+          }
+          continue;
+        }
+
+        // Capture action with target - this is a one shot
+        if (preg_match('/^listing_([[:alnum:]_\.]+)_([0-9]+)(|_x)$/', $key, $m)) {
+          $target = $m[2];
+          if (isset($this->entriesIndex[$target])) {
+            $result['action']   = $m[1];
+            $result['targets']  = [$this->entriesIndex[$target]];
+          }
+          break;
+        }
+
+        // Capture action without target
+        if (preg_match('/^listing_([[:alnum:]_\.]+)(|_x)$/', $key, $m)) {
+          $result['action'] = $m[1];
+          continue;
+        }
+      }
+    }
+
+    if (strpos($result['action'], '_') !== FALSE) {
+      list($result['action'], $result['subaction']) = explode('_', $result['action'], 2);
+    }
+    return $result;
+  }
+
+  /*!
+   * \brief Set base close to this dn and load only him
+   */
+  function focusDn (string $dn)
+  {
+    /* Detect the longer base valid for this dn */
+    $longerBase = '';
+    foreach (array_keys($this->bases) as $base) {
+      if (preg_match('/'.preg_quote($base, '/').'$/i', $dn)
+        && (strlen($base) > strlen($longerBase))) {
+        $longerBase = $base;
+      }
+    }
+    $this->setBase($longerBase);
+    $this->update($dn);
+  }
+
+  /*!
+   * \brief Refresh the bases list
+   */
+  function refreshBasesList ()
+  {
+    global $config;
+    $ui = get_userinfo();
+
+    // Fill internal bases list
+    $this->bases = [];
+
+    $categories = [];
+    foreach ($this->parent->objectTypes as $otype) {
+      $i = objects::infos($otype);
+      $categories[$i['aclCategory']] = $i['aclCategory'];
+    }
+
+    $deps = $ui->get_module_departments(array_values($categories));
+    $departmentTree = $config->getDepartmentTree();
+    foreach ($departmentTree as $key => $dep) {
+      if (in_array_ics($key, $deps)) {
+        $this->bases[$key] = $dep;
+      }
+    }
+
+    if (!empty($this->bases) && !isset($this->bases[$this->base])) {
+      $this->base = key($this->bases);
+    }
+
+    // Populate base selector if already present
+    if ($this->baseSelector && $this->baseMode) {
+      $this->baseSelector->setBases($this->bases);
+      $this->baseSelector->setBase($this->base);
+      $this->baseSelector->update(TRUE);
+    }
+  }
+
+  /*!
+   * \brief Get entry
+   *
+   * \param string $dn The DN
+   */
+  function getEntry (string $dn)
+  {
+    if (isset($this->entries[$dn])) {
+      return $this->entries[$dn];
+    }
+    return NULL;
+  }
+
+  /*!
+   * \brief Set sort column
+   *
+   * \param int $column Index of column to sort by
+   * \param bool $direction Whether to sort up or down
+   */
+  public function setSortColumn (int $column, bool $direction = NULL)
+  {
+    if ($direction === NULL) {
+      // Switch to new column or invert search order?
+      $direction = (($this->sortColumn == $column) && !$this->sortDirection[$column]);
+    }
+    $this->sortColumn             = $column;
+    $this->sortDirection[$column] = $direction;
+  }
+
+  function fillSearchedAttributes (string $type, array &$attrs)
+  {
+    global $ui;
+
+    $searchedAttributes = [];
+    foreach ($this->columns as $column) {
+      $column->fillSearchedAttributes($searchedAttributes);
+    }
+
+    $searchedAttributes = array_unique($searchedAttributes);
+
+    foreach ($searchedAttributes as $attr) {
+      if (!isset($attrs[$attr])) {
+        $category = $ui->getAttributeCategory($type, $attr);
+        if ($category !== FALSE) {
+          $attrs[$attr] = $category;
+        }
+      }
+    }
+  }
+}
diff --git a/include/management/class_selectManagement.inc b/include/management/class_selectManagement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..c702f2bb3ad2bea2c9fc7c56ab11b97f3ec6a95e
--- /dev/null
+++ b/include/management/class_selectManagement.inc
@@ -0,0 +1,90 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Management class for selection dialogs
+ */
+class selectManagement extends management
+{
+  protected $skipCpHandler      = TRUE;
+  public static $skipSnapshots  = TRUE;
+
+  protected $multiSelect = TRUE;
+  public $blackList;
+  public $whiteList;
+
+  /* Default columns */
+  public static $columns = [
+    ['ObjectTypeColumn', []],
+    ['LinkColumn',       ['attributes' => 'nameAttr',    'label' => 'Name']],
+    ['LinkColumn',       ['attributes' => 'description', 'label' => 'Description']],
+  ];
+
+  function __construct (
+    $objectTypes        = FALSE,
+    bool $multiSelect   = TRUE,
+    array $neededAttrs  = [],
+    array $blackList    = [],
+    array $whiteList    = [],
+    array $filterElementDefinitions = [
+      ['TabFilterElement',  []],
+    ])
+  {
+    $this->neededAttrs  = $neededAttrs;
+    $this->multiSelect  = $multiSelect;
+    $this->blackList    = $blackList;
+    $this->whiteList    = $whiteList;
+    parent::__construct($objectTypes, $filterElementDefinitions);
+  }
+
+  protected function setUpListing ()
+  {
+    $this->listing  = new managementListing($this, TRUE, $this->multiSelect);
+  }
+
+  protected function setUpHeadline ()
+  {
+    $this->headline = _('Please select the desired entries');
+  }
+
+  protected function configureActions ()
+  {
+    $this->registerAction(new HiddenAction('configure',       'configureDialog'));
+  }
+
+  function renderList (): string
+  {
+    $list = parent::renderList();
+
+    $smarty = get_smarty();
+    $smarty->assign('MULTISELECT',  $this->multiSelect);
+
+    return $list.$smarty->fetch(get_template_path('management/select-footer.tpl'));
+  }
+
+  /*!
+   * \brief Let header handling to parent
+   */
+  protected function getHeader (): string
+  {
+    return '';
+  }
+}
diff --git a/include/management/class_templateDialog.inc b/include/management/class_templateDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..1ac23736401f3bde43b44a233408f2d1412df741
--- /dev/null
+++ b/include/management/class_templateDialog.inc
@@ -0,0 +1,136 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2013-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Template dialog handling
+ */
+class templateDialog implements FusionDirectoryDialog
+{
+  protected $management;
+  protected $type;
+  protected $template = NULL;
+  protected $templates;
+  protected $target = NULL;
+  protected $closed = FALSE;
+
+  protected $tabObject;
+
+  protected $post_finish = 'template_continue';
+  protected $post_cancel = 'template_cancel';
+
+  function __construct ($management, $type, $dn = NULL, $target = NULL)
+  {
+    $this->management       = $management;
+    $this->type             = $type;
+    $this->templates        = objects::getTemplates($this->type);
+    if ($dn !== NULL) {
+      if (isset($this->templates[$dn])) {
+        $this->template = new template($this->type, $dn);
+      } else {
+        trigger_error('Unknown template "'.$dn.'"');
+      }
+    }
+    $this->target = $target;
+  }
+
+  function readPost ()
+  {
+    if (isset($_POST[$this->post_cancel])) {
+      $this->handleCancel();
+      return;
+    }
+
+    if (($this->target === NULL) &&
+        is_object($this->template) &&
+        (isset($_POST[$this->post_finish]) || isset($_GET[$this->post_finish]))
+        ) {
+      $this->template->readPost();
+      $this->template->update();
+      $this->handleFinish();
+      return;
+    }
+
+    if (
+      isset($_POST['template']) &&
+      isset($this->templates[$_POST['template']])
+      ) {
+      if (is_object($this->template)) {
+        trigger_error('redefining template object');
+      }
+      $this->template = new template($this->type, $_POST['template']);
+      /* This method can loop if there are several targets */
+      unset($_POST['template']);
+    }
+    if (is_object($this->template)) {
+      $this->template->readPost();
+      $this->template->update();
+      if ($this->target !== NULL) {
+        $this->management->openTabObject($this->template->apply($this->target));
+        $this->management->handleTemplateApply();
+        return;
+      } else {
+        if (empty($this->template->getNeeded())) {
+          $this->handleFinish();
+          return;
+        }
+      }
+    }
+  }
+
+  public function update (): bool
+  {
+    return !$this->closed;
+  }
+
+  function setNextTarget ($target)
+  {
+    $this->target = $target;
+    $this->template->reset();
+  }
+
+  public function render (): string
+  {
+    $smarty = get_smarty();
+    if (is_object($this->template)) {
+      $templateOutput = $this->template->render();
+      if ($this->template->dialogOpened()) {
+        return $templateOutput;
+      } else {
+        $smarty->assign('template_dialog', $templateOutput);
+      }
+    } else {
+      $smarty->assign('templates', $this->templates);
+    }
+    $display = $smarty->fetch(get_template_path('template.tpl'));
+    return $display;
+  }
+
+  protected function handleFinish ()
+  {
+    $this->management->closeDialogs();
+    $this->management->openTabObject($this->template->apply());
+  }
+
+  protected function handleCancel ()
+  {
+    $this->management->removeLocks();
+    $this->closed = TRUE;
+  }
+}
diff --git a/include/select/objectSelect/class_objectSelect.inc b/include/management/columns/class_ActionsColumn.inc
similarity index 63%
rename from include/select/objectSelect/class_objectSelect.inc
rename to include/management/columns/class_ActionsColumn.inc
index 4c805485f67a39c5d182909dbe88b4103167e9a1..ac7e39ac40d860f5a866a0e2da4b1e2363b1d7a9 100644
--- a/include/select/objectSelect/class_objectSelect.inc
+++ b/include/management/columns/class_ActionsColumn.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2017-2018  FusionDirectory
 
   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
@@ -19,16 +19,22 @@
 */
 
 /*!
- * \brief Object selection
+ * \brief Column showing the actions available on the object
  */
-class objectSelect extends userSelect
+class ActionsColumn extends Column
 {
-  protected $objectTypes = [
-    'user', 'ogroup',
-    'application',
-    'terminal', 'workstation', 'server', 'printer', 'phone',
-    'simpleSecurityObject'
-  ];
-  protected $autoFilterAttributes = ['dn', 'cn', 'uid', 'description', 'mail'];
+  function isSortable (): bool
+  {
+    return FALSE;
+  }
+
+  function fillRowClasses (array &$classes, ListingEntry $entry)
+  {
+    $this->parent->parent->fillActionRowClasses($classes, $entry);
+  }
+
+  function renderCell (ListingEntry $entry): string
+  {
+    return $this->parent->parent->renderActionColumn($entry);
+  }
 }
-?>
diff --git a/include/management/columns/class_Column.inc b/include/management/columns/class_Column.inc
new file mode 100644
index 0000000000000000000000000000000000000000..f40ce0b4fb1a1b667dd5d6c8eda47709d8d1066c
--- /dev/null
+++ b/include/management/columns/class_Column.inc
@@ -0,0 +1,241 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column base class
+ */
+class Column
+{
+  /*! \brief Array of attributes to look for, ordered by priority
+   * The first non-empty attribute will be displayed
+   * */
+  protected $attributes;
+  /*! \brief Same thing for templates, if it differs */
+  protected $templateAttributes = NULL;
+  protected $label;
+  protected $type = 'string';
+
+
+  /* management class instance */
+  protected $parent = NULL;
+
+  /*!
+   * \brief Builds a column object from given data
+   *
+   * \param managementListing $parent the managementListing instance
+   * \param string $type a column class
+   * \param array $data an associative array with "attributes" and "label"
+   * */
+  static function build (managementListing $parent, string $type, array $data): Column
+  {
+    $attributes = NULL;
+    $label      = NULL;
+    if (isset($data['attributes'])) {
+      $attributes = $data['attributes'];
+      if (!is_array($attributes)) {
+        $attributes = array_map('trim', explode(',', $attributes));
+      }
+    }
+    if (isset($data['label'])) {
+      $label = $data['label'];
+    }
+
+    return new $type($parent, $attributes, $label);
+  }
+
+  function __construct (managementListing $parent, array $attributes = NULL, string $label = NULL)
+  {
+    $this->parent = $parent;
+    $this->label  = $label;
+    $this->setAttributesVar('attributes', $attributes);
+  }
+
+  protected function setAttributesVar (string $var, array $attributes = NULL)
+  {
+    $this->$var = $attributes;
+  }
+
+  function setTemplateAttributes (array $attributes = NULL)
+  {
+    $this->setAttributesVar('templateAttributes', $attributes);
+  }
+
+  function isSortable (): bool
+  {
+    return TRUE;
+  }
+
+  function isExportable (): bool
+  {
+    return !empty($this->attributes);
+  }
+
+  function getHtmlProps (): string
+  {
+    return '';
+  }
+
+  function getHtmlCellProps (): string
+  {
+    return '';
+  }
+
+  function getLabel (): string
+  {
+    if (isset($this->label)) {
+      return _($this->label);
+    } else {
+      return ' ';
+    }
+  }
+
+  function fillNeededAttributes (array &$attrs)
+  {
+    if (isset($this->attributes)) {
+      foreach ($this->attributes as $attr) {
+        if (($attr == 'mainAttr') || ($attr == 'nameAttr')) {
+          /* nameAttr and mainAttr as always set as needed in managementFilter */
+          continue;
+        } elseif ($attr == 'dn') {
+          /* Handle special case of dn */
+          $attrs[$attr] = 'raw';
+        } else {
+          /* Get all values from other attributes */
+          $attrs[$attr] = '*';
+        }
+      }
+    }
+  }
+
+  function fillSearchedAttributes (array &$attrs)
+  {
+    if (isset($this->attributes)) {
+      foreach ($this->attributes as $attr) {
+        if (($attr == 'mainAttr') || ($attr == 'nameAttr')) {
+          /* nameAttr and mainAttr as always searched for */
+          continue;
+        }
+        if ($attr != 'dn') {
+          $attrs[] = $attr;
+        }
+      }
+    }
+  }
+
+  function fillRowClasses (array &$classes, ListingEntry $entry)
+  {
+  }
+
+  protected function getAttributeValues (ListingEntry $entry): array
+  {
+    $attrs = $this->attributes;
+    if (isset($this->templateAttributes) && $entry->isTemplate()) {
+      $attrs = $this->templateAttributes;
+    }
+    if (isset($attrs)) {
+      foreach ($attrs as $attr) {
+        if (($attr == 'mainAttr') || ($attr == 'nameAttr')) {
+          $infos  = objects::infos($entry->getTemplatedType());
+          $attr   = $infos[$attr];
+        }
+        if (isset($entry[$attr])) {
+          if (is_array($entry[$attr])) {
+            return $entry[$attr];
+          } else {
+            /* Should only happen for dn */
+            return [$entry[$attr]];
+          }
+        }
+      }
+    }
+    return [];
+  }
+
+  function renderCell (ListingEntry $entry): string
+  {
+    $values = $this->getAttributeValues($entry);
+    if (empty($values)) {
+      return '&nbsp;';
+    } else {
+      return implode("<br/>\n",
+        array_map(
+          function ($value) use ($entry)
+          {
+            return $this->renderSingleValue($entry, $value);
+          },
+          $values
+        )
+      );
+    }
+  }
+
+  protected function renderSingleValue (ListingEntry $entry, string $value): string
+  {
+    return htmlescape($value);
+  }
+
+  function getRawExportValues (ListingEntry $entry): array
+  {
+    return $this->getAttributeValues($entry);
+  }
+
+  function compare (ListingEntry $ao, ListingEntry $bo): int
+  {
+    $a = $this->getAttributeValues($ao)[0] ?? '';
+    $b = $this->getAttributeValues($bo)[0] ?? '';
+
+    // Take a look at the several types
+    switch ($this->type) {
+      case 'department':
+        return strnatcmp($a, $b);
+
+      case 'integer':
+        return $b - $a;
+
+      case 'date':
+        if ($a == '') {
+          $a = '31.12.0000';
+        }
+        if ($b == '') {
+          $b = '31.12.0000';
+        }
+        list($d, $m, $y) = explode('.', $a);
+        $a = (int)sprintf('%04d%02d%02d', $y, $m, $d);
+        list($d, $m, $y) = explode('.', $b);
+        $b = (int)sprintf('%04d%02d%02d', $y, $m, $d);
+        return $b - $a;
+
+      case 'ip':
+        $parts_a = explode('.', $a, 4);
+        $parts_b = explode('.', $b, 4);
+        for ($i = 0; $i < 4; $i++) {
+          if ((int)($parts_a[$i]) != (int)($parts_b[$i])) {
+            return (int)($parts_a[$i]) - (int)($parts_b[$i]);
+          }
+        }
+        return 0;
+
+      // Sort for string by default
+      case 'string':
+      default:
+        return strcoll($a, $b);
+    }
+  }
+}
diff --git a/include/management/columns/class_EpochDaysColumn.inc b/include/management/columns/class_EpochDaysColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..8b058937aa3bf9314cea11af6dfdae7494cc02f2
--- /dev/null
+++ b/include/management/columns/class_EpochDaysColumn.inc
@@ -0,0 +1,43 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2023  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+* \brief Column rendering EpochDays attributes
+*/
+class EpochDaysColumn extends LinkColumn
+{
+  protected $type = 'integer';
+
+  protected function renderSingleValue (ListingEntry $entry, string $value): string
+  {
+    if (!empty($value)) {
+      // Multiply epoch day received as value by numbers of seconds in a day.
+      $epochInSeconds = (int) $value * 86400;
+      // casting is required for DateTime; It expects string.
+      $value = (string) $epochInSeconds;
+      $dateObject = DateTime::createFromFormat('U', $value, new DateTimeZone('UTC'));
+      if (is_object($dateObject)) {
+        return $this->renderLink($entry, $dateObject->format('d.m.Y'));
+      }
+    }
+    return '&nbsp;';
+  }
+}
diff --git a/include/management/columns/class_LdapGeneralizedTimeColumn.inc b/include/management/columns/class_LdapGeneralizedTimeColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..b64a49b0cae7d25b2d29245f78e152bda9b99393
--- /dev/null
+++ b/include/management/columns/class_LdapGeneralizedTimeColumn.inc
@@ -0,0 +1,39 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column rendering LdapGeneralizedTime attributes
+ */
+class LdapGeneralizedTimeColumn extends LinkColumn
+{
+  protected $type = 'string';
+
+  protected function renderSingleValue (ListingEntry $entry, string $value): string
+  {
+    if ($value != '') {
+      $dateObject = LdapGeneralizedTime::fromString($value);
+      if (is_object($dateObject)) {
+        return $this->renderLink($entry, $dateObject->format('Y-m-d, H:i:s'));
+      }
+    }
+    return '&nbsp;';
+  }
+}
diff --git a/include/management/columns/class_LinkColumn.inc b/include/management/columns/class_LinkColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..5891b2fe0f6c0c2f6396453edb84ae736fa92060
--- /dev/null
+++ b/include/management/columns/class_LinkColumn.inc
@@ -0,0 +1,43 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column rendering a link to edit the object
+ */
+class LinkColumn extends Column
+{
+  function renderCell (ListingEntry $entry): string
+  {
+    return $this->renderLink($entry, parent::renderCell($entry));
+  }
+
+  protected function renderLink (ListingEntry $entry, $htmlValue): string
+  {
+    if ($this->parent->parent instanceof selectManagement) {
+      if ($this->parent->getMultiSelect()) {
+        return '<label title="'.$entry->dn.'" for="listing_selected_'.$entry->row.'">'.$htmlValue.'</label>';
+      } else {
+        return '<a href="?plug='.$_GET['plug'].'&amp;PID='.$entry->getPid().'&amp;act=listing_select_'.$entry->row.'&amp;add_finish=1" title="'.$entry->dn.'">'.$htmlValue.'</a>';
+      }
+    } else {
+      return '<a href="?plug='.$_GET['plug'].'&amp;PID='.$entry->getPid().'&amp;act=listing_edit_'.$entry->row.'" title="'.$entry->dn.'">'.$htmlValue.'</a>';
+    }
+  }
+}
diff --git a/include/management/columns/class_ObjectTypeColumn.inc b/include/management/columns/class_ObjectTypeColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a29b7b084f95654a36a59e6030b115f6c5ad9cb9
--- /dev/null
+++ b/include/management/columns/class_ObjectTypeColumn.inc
@@ -0,0 +1,59 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column showing the icon of the objectType
+ */
+class ObjectTypeColumn extends Column
+{
+  function isSortable (): bool
+  {
+    return FALSE;
+  }
+
+  function renderCell (ListingEntry $entry): string
+  {
+    if (isset($this->attributes)) {
+      $isTemplate = FALSE;
+      $types      = $this->getAttributeValues($entry);
+    } else {
+      $isTemplate = $entry->isTemplate();
+      if ($entry->type) {
+        $types = [$entry->type];
+      } else {
+        $types = [];
+      }
+    }
+    if ($isTemplate) {
+      $infos = objects::infos($entry->getTemplatedType());
+      return '<img title="'.htmlescape($entry->dn).'" src="'.htmlescape('geticon.php?context=devices&icon=template&size=16').'" alt="'.htmlescape(sprintf(_('%s template'), $infos['name'])).'"/>';
+    } elseif (!empty($types)) {
+      $cell = '';
+      foreach ($types as $type) {
+        $infos = objects::infos($type);
+        $title = (isset($this->attributes) ? $infos['name'] : $entry->dn);
+        $cell .= '<img title="'.htmlescape($title).'" src="'.htmlescape($infos['icon']).'" alt="'.htmlescape($infos['name']).'"/>';
+      }
+      return $cell;
+    } else {
+      return '&nbsp;';
+    }
+  }
+}
diff --git a/include/management/columns/class_PropertiesColumn.inc b/include/management/columns/class_PropertiesColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..21fcea1ff4352334b2869d0196cccf2d6aad836d
--- /dev/null
+++ b/include/management/columns/class_PropertiesColumn.inc
@@ -0,0 +1,160 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column showing the activated tabs of the object
+ */
+class PropertiesColumn extends Column
+{
+  protected $tabs;
+
+  function __construct (managementListing $parent, array $attributes = NULL, string $label = NULL)
+  {
+    global $config;
+
+    parent::__construct($parent, NULL, $label);
+
+    $this->tabs = [];
+
+    foreach ($this->parent->parent->objectTypes as $type) {
+      $infos = objects::infos($type);
+      $this->tabs[$type] = [];
+      foreach ($config->data['TABS'][$infos['tabGroup']] as $plug) {
+        if ($plug['CLASS'] == $infos['mainTab']) {
+          continue;
+        }
+        if (class_available($plug['CLASS'])) {
+          $this->tabs[$type][] = $plug['CLASS'];
+        }
+      }
+    }
+  }
+
+  function fillNeededAttributes (array &$attrs)
+  {
+    foreach ($this->tabs as $classes) {
+      foreach ($classes as $class) {
+        $class::fillAccountAttrsNeeded($attrs);
+      }
+    }
+  }
+
+  function renderCell (ListingEntry $entry): string
+  {
+    $tabInfos = $this->computeIcons($entry);
+    $result   = '';
+    foreach ($tabInfos as $tabInfo) {
+      if (empty($tabInfo['icon'])) {
+        $result .= '<img src="images/empty.png" alt="" class="optional '.$tabInfo['tab'].'"/>';
+      } else {
+        $result .= '<input type="image" src="'.htmlescape($tabInfo['icon']).'" '.
+                    'alt="'.htmlescape($tabInfo['title']).'" title="'.htmlescape($tabInfo['title']).'" '.
+                    'name="listing_edit_tab_'.$tabInfo['tab'].'_'.$entry->row.'"/>';
+      }
+    }
+
+    return $result;
+  }
+
+  function compare (ListingEntry $ao, ListingEntry $bo): int
+  {
+    if ($ao->getTemplatedType() != $bo->getTemplatedType()) {
+      return strcmp($ao->getTemplatedType(), $bo->getTemplatedType());
+    }
+
+    // Extract values from ao and bo
+    $a = $this->computeSortString($ao);
+    $b = $this->computeSortString($bo);
+
+    return strcmp($a, $b);
+  }
+
+  protected function computeSortString (ListingEntry $entry): string
+  {
+    if (isset($entry->cache[__CLASS__]['sort'])) {
+      return $entry->cache[__CLASS__]['sort'];
+    }
+
+    $icons = $this->computeIcons($entry);
+    $entry->cache[__CLASS__]['sort'] = implode('', array_map(
+      function($tab)
+      {
+        return (empty($tab['icon']) ? 0 : 1);
+      },
+      $icons
+    ));
+
+    return $entry->cache[__CLASS__]['sort'];
+  }
+
+  protected function computeIcons (ListingEntry $entry): array
+  {
+    global $ui;
+
+    if (isset($entry->cache[__CLASS__]['icons'])) {
+      return $entry->cache[__CLASS__]['icons'];
+    }
+
+    $infos = objects::infos($entry->getTemplatedType());
+    $icons = [];
+
+    /* Main tab is always there */
+    $pInfos = pluglist::pluginInfos($infos['mainTab']);
+    $icons[]  = [
+      'icon'  => (isset($pInfos['plSmallIcon']) ? $pInfos['plSmallIcon'] : $infos['icon']),
+      'title' => $pInfos['plShortName'],
+      'tab'   => $infos['mainTab'],
+    ];
+    if (!empty($entry)) {
+      if ($entry->isTemplate()) {
+        $attrs = $entry->getTemplatedFields();
+      } else {
+        $attrs = $entry;
+      }
+      foreach ($this->tabs[$entry->getTemplatedType()] as $class) {
+        if (empty($ui->get_permissions($entry->dn, $infos['aclCategory'].'/'.$class))) {
+          /* Skip tabs we have no ACL rights on */
+          continue;
+        }
+
+        $status = $class::isAccount($attrs);
+        if ($status !== FALSE) {
+          $pInfos = pluglist::pluginInfos($class);
+          if (isset($pInfos['plSmallIcon'])) {
+            $icons[] = [
+              'icon'  => $pInfos['plSmallIcon'],
+              'title' => $pInfos['plShortName'],
+              'tab'   => $class,
+            ];
+          } else {
+            logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $pInfos['plShortName']." ($class)", 'No icon for');
+          }
+        } else {
+          $icons[] = [
+            'tab' => $class,
+          ];
+        }
+      }
+    }
+
+    $entry->cache[__CLASS__]['icons'] = $icons;
+    return $entry->cache[__CLASS__]['icons'];
+  }
+}
diff --git a/include/management/columns/class_SubNodeColumn.inc b/include/management/columns/class_SubNodeColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..cc794f1f6060d1d82f09ae073a2b41f190210348
--- /dev/null
+++ b/include/management/columns/class_SubNodeColumn.inc
@@ -0,0 +1,77 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column showing an attribute from subnodes
+ */
+class SubNodeColumn extends LinkColumn
+{
+  function fillNeededAttributes (array &$attrs)
+  {
+    $attrs['dn'] = 'raw';
+  }
+
+  function fillSearchedAttributes (array &$attrs)
+  {
+  }
+
+  protected function getAttributeValues (ListingEntry $entry): array
+  {
+    global $config;
+
+    $attrs = $this->attributes;
+    if (isset($this->templateAttributes) && $entry->isTemplate()) {
+      $attrs = $this->templateAttributes;
+    }
+
+    if (!isset($attrs)) {
+      return [];
+    }
+
+    $cacheentry = implode('', $attrs);
+
+    if (isset($entry->cache[__CLASS__][$cacheentry]['values'])) {
+      return $entry->cache[__CLASS__][$cacheentry]['values'];
+    }
+
+    $values = [];
+
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($entry->dn);
+    $ldap->search('(objectClass=*)', $attrs, 'subtree');
+    while ($node = $ldap->fetch(TRUE)) {
+      if ($node['dn'] === $entry->dn) {
+        continue;
+      }
+      foreach ($attrs as $attr) {
+        if (isset($node[$attr])) {
+          for ($i = 0; $i < $node[$attr]['count']; ++$i) {
+            $values[] = $node[$attr][$i];
+          }
+        }
+      }
+    }
+
+    $entry->cache[__CLASS__][$cacheentry]['values'] = $values;
+
+    return $values;
+  }
+}
diff --git a/include/management/columns/class_UnixTimestampColumn.inc b/include/management/columns/class_UnixTimestampColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..601380f1f1968c0af3772363b4c507c0dc3d2e7a
--- /dev/null
+++ b/include/management/columns/class_UnixTimestampColumn.inc
@@ -0,0 +1,39 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column rendering unix timestamp
+ */
+class UnixTimestampColumn extends LinkColumn
+{
+  protected $type = 'integer';
+
+  protected function renderSingleValue (ListingEntry $entry, string $value): string
+  {
+    if ($value != '') {
+      $dateObject = DateTime::createFromFormat('U', $value, new DateTimeZone('UTC'));
+      if (is_object($dateObject)) {
+        return $this->renderLink($entry, $dateObject->format('d.m.Y'));
+      }
+    }
+    return '&nbsp;';
+  }
+}
diff --git a/include/management/snapshot/class_SnapshotAttribute.inc b/include/management/snapshot/class_SnapshotAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..895e2e677e4819632053b2149fb7aba3d6cd4c85
--- /dev/null
+++ b/include/management/snapshot/class_SnapshotAttribute.inc
@@ -0,0 +1,137 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Attribute which list the snapshots
+ */
+class SnapshotsAttribute extends OrderedArrayAttribute
+{
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = '')
+  {
+    \FusionDirectory\Core\SimplePlugin\Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    $this->edit_enabled = FALSE;
+    $this->order        = FALSE;
+    $this->attribute    = FALSE;
+    $this->setInLdap(FALSE);
+  }
+
+  function setParent (&$plugin)
+  {
+    parent::setParent($plugin);
+    if (is_object($this->plugin)) {
+      if ($this->plugin->global) {
+        $this->setHeaders([
+          _('DN'),
+          _('Date'),
+          _('Description'),
+          ''
+        ]);
+      } else {
+        $this->setHeaders([
+          _('Date'),
+          _('Description'),
+          ''
+        ]);
+      }
+    }
+  }
+
+  function loadPostValue ()
+  {
+    if ($this->isVisible()) {
+      parent::loadPostValue();
+      parent::applyPostValue();
+    }
+  }
+
+  protected function handleEdit ($key)
+  {
+  }
+
+  function applyPostValue ()
+  {
+  }
+
+  function addValue (string $dn, $entry = NULL)
+  {
+    if ($entry !== NULL) {
+      $this->value[] = $entry;
+      $this->reIndexValues();
+    }
+  }
+
+  function renderButtons ()
+  {
+    return '';
+  }
+
+  protected function getAttributeArrayValue ($key, $value)
+  {
+    $values = [
+      date(_('Y-m-d, H:i:s'), preg_replace('/\-.*$/', '', $value['gosaSnapshotTimestamp'][0])),
+      $value['description'][0]
+    ];
+    if ($this->plugin->global) {
+      array_unshift($values, $value['gosaSnapshotDN'][0]);
+    }
+    return $values;
+  }
+
+  protected function genRowIcons ($key, $value)
+  {
+    $id = $this->getHtmlId();
+    list ($img, $nbicons) = parent::genRowIcons($key, $value);
+    $img = $this->renderInputField(
+      'image', $id.'_restore_'.$key,
+      [
+        'src'   => 'geticon.php?context=actions&icon=document-restore&size=16',
+        'title' => _('Restore'),
+        'alt'   => _('Restore'),
+        'class' => 'center'
+      ],
+      FALSE
+    ).$img;
+    $nbicons++;
+
+    return  [$img, $nbicons];
+  }
+
+  protected function handlePostValueActions ($id, $postValue)
+  {
+    if (parent::handlePostValueActions($id, $postValue)) {
+      return TRUE;
+    }
+    if (preg_match('/^'.$id.'_restore_/', $postValue)) {
+      $key = preg_replace('/^'.$id.'_restore_/', '', $postValue);
+      $key = preg_replace('/_[xy]$/', '', $key);
+
+      $this->plugin->triggerRestore($this->value[$key]['dn']);
+      return TRUE;
+    }
+    return FALSE;
+  }
+
+  function delPostValue ($key)
+  {
+    $this->plugin->triggerDelete($this->value[$key]['dn']);
+  }
+}
diff --git a/include/management/snapshot/class_SnapshotCreateDialog.inc b/include/management/snapshot/class_SnapshotCreateDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..7860e00e624835106b468d1b42ffa858ab6aff2d
--- /dev/null
+++ b/include/management/snapshot/class_SnapshotCreateDialog.inc
@@ -0,0 +1,169 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Snapshot creation dialog
+ */
+class SnapshotCreateDialog extends ManagementDialog
+{
+  public $aclCategory;
+
+  static function plInfo (): array
+  {
+    return [
+      'plShortName' => 'SnapshotCreateDialog',
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      'main' => [
+        'name'  => _('Creating an object snapshot'),
+        'attrs' => [
+          new DisplayAttribute(
+            _('Object'), _('DN of the object you are creating a snapshot of'),
+            'object_dn', FALSE
+          ),
+          new DisplayAttribute(
+            _('Timestamp'), _('Timestamp of this snapshot creation'),
+            'timestamp', FALSE
+          ),
+          new TextAreaAttribute(
+            _('Reason'), _('Reason for creating this snapshot'),
+            'description', TRUE,
+            '',
+            'SnapshotHandler'
+          ),
+        ]
+      ],
+      'dataSource' => [
+        'name'  => _('dataSource - only available via web-service.'),
+        'attrs' => [
+            new SelectAttribute(
+              'Data source', _('Origin / Source of the data'),
+              'snapshotSource', FALSE,
+            ),
+        ]
+      ],
+    ];
+  }
+
+  function __construct (string $dn, management $parent, string $aclCategory)
+  {
+    parent::__construct(NULL, NULL, $parent);
+    // The attribut will be passed to parent for later saving, dataSource might require same logic.
+    $this->attributesAccess['description']->setInLdap(FALSE);
+    $this->attributesAccess['snapshotSource']->setInLdap(FALSE);
+    $this->attributesAccess['snapshotSource']->setVisible(FALSE);
+
+    $recordedDataSources = $this->getLdapRecordedDataSources();
+    if (!empty($recordedDataSources)) {
+      $this->attributesAccess['snapshotSource']->setChoices($recordedDataSources);
+    }
+
+    $this->object_dn    = $dn;
+    $this->aclCategory  = $aclCategory;
+  }
+
+  /*
+   * Retrieve the data sources from configuration.
+   */
+  public function getLdapRecordedDataSources () : array
+  {
+    global $config;
+
+    $recordedDataSources = [];
+    if (isset($config->current['SNAPSHOTSOURCEDATA']) && !empty($config->current['SNAPSHOTSOURCEDATA'])) {
+      $recordedDataSources = $config->current['SNAPSHOTSOURCEDATA'];
+    }
+
+    return $recordedDataSources;
+  }
+
+  /*!
+   * \brief Get LDAP base to use for ACL checks
+   */
+  function getAclBase (bool $callParent = TRUE): string
+  {
+    return $this->object_dn;
+  }
+
+  /*! \brief Check if logged in user have enough right to write this attribute value
+   *
+   * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
+   */
+  function attrIsWriteable ($attr): bool
+  {
+    global $ui;
+
+    if (!is_object($attr)) {
+      $attr = $this->attributesAccess[$attr];
+    }
+    if ($attr->getLdapName() == 'description') {
+      return in_array('c', $ui->get_snapshot_permissions($this->object_dn, $this->aclCategory));
+    } else {
+      return parent::attrIsWriteable($attr);
+    }
+  }
+
+  function renderAttributes (bool $readOnly = FALSE)
+  {
+    global $ui;
+    $smarty = get_smarty();
+
+    $permissions = $ui->get_snapshot_permissions($this->object_dn, $this->aclCategory);
+    $acl = '';
+    if (in_array('c', $permissions)) {
+      $acl .= 'crw';
+    }
+    $smarty->assign('SnapshotHandlerACL', $acl);
+
+    return parent::renderAttributes($readOnly);
+  }
+
+  public function update (): bool
+  {
+    $this->timestamp  = date(_('Y-m-d, H:i:s'));
+    return parent::update();
+  }
+
+  function save (): array
+  {
+    // snapshotSource is always set but can be empty and must be defaulted.
+    if (empty($this->snapshotSource)) {
+      $this->snapshotSource = 'FD';
+    }
+    $this->parent->createSnapshot($this->object_dn, $this->description, $this->snapshotSource);
+    return [];
+  }
+
+  function fillHookAttrs (array &$addAttrs)
+  {
+    parent::fillHookAttrs($addAttrs);
+    foreach (array_keys($this->attributesAccess) as $attr) {
+      if (!isset($addAttrs[$attr])) {
+        $addAttrs[$attr] = $this->$attr;
+      }
+    }
+  }
+}
diff --git a/include/class_SnapshotHandler.inc b/include/management/snapshot/class_SnapshotHandler.inc
similarity index 60%
rename from include/class_SnapshotHandler.inc
rename to include/management/snapshot/class_SnapshotHandler.inc
index 7fbf9449a0cbdca754bfe9adcc429fe96c93a45c..61744b61dd46db5920a9eff8eac9ff2915ce1ae0 100644
--- a/include/class_SnapshotHandler.inc
+++ b/include/management/snapshot/class_SnapshotHandler.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -30,9 +31,9 @@
  */
 class SnapshotHandler
 {
-  var $snapshotBases  = [];
-
   protected $enabled;
+  protected $snapshotRDN;
+  protected $snapshotsCache;
 
   static function plInfo ()
   {
@@ -61,9 +62,10 @@ class SnapshotHandler
       $this->snapshotRDN = $config->get_cfg_value('snapshotBase');
       $ldap = $config->get_ldap_link();
       $ldap->cd($config->current['BASE']);
-      $ldap->create_missing_trees($this->snapshotRDN);
-      if (!$ldap->success()) {
-        msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), $this->snapshotRDN, '', get_class()), LDAP_ERROR);
+      try {
+        $ldap->create_missing_trees($this->snapshotRDN);
+      } catch (FusionDirectoryError $error) {
+        $error->display();
       }
     }
   }
@@ -78,26 +80,6 @@ class SnapshotHandler
     return $this->enabled;
   }
 
-  /*!
-   * \brief Set a new snapshot bases
-   *
-   * \param array $bases
-   */
-  function setSnapshotBases ($bases)
-  {
-    $this->snapshotBases = $bases;
-  }
-
-  /*!
-   * \brief Get the current snapshot bases
-   *
-   * \return array $bases
-   */
-  function getSnapshotBases ()
-  {
-    return $this->snapshotBases;
-  }
-
   /* \brief Get the snapshot dn of an object dn
    */
   protected function snapshot_dn ($dn)
@@ -110,9 +92,9 @@ class SnapshotHandler
   /*!
    * \brief Check if there are deleted snapshots
    */
-  function hasDeletedSnapshots ()
+  function hasDeletedSnapshots ($bases)
   {
-    foreach ($this->getSnapshotBases() as $base) {
+    foreach ($bases as $base) {
       if (count($this->getAllDeletedSnapshots($base)) > 0) {
         return TRUE;
       }
@@ -187,7 +169,7 @@ class SnapshotHandler
 
     /* Put results into a list and add description if missing */
     $objects = [];
-    while ($entry = $ldap->fetch()) {
+    while ($entry = $ldap->fetch(TRUE)) {
       if (!isset($entry['description'][0])) {
         $entry['description'][0]  = "";
       }
@@ -212,13 +194,17 @@ class SnapshotHandler
    *
    * \param string $dn The DN
    *
-   * \param array $description Snapshot description
+   * \param string $description Snapshot description
+   *
+   * \param string $objectType Type of snapshotted object
+   *
+   * \param string $snapshotSource source of the data.
    */
-  function createSnapshot ($dn, $description = [])
+  function createSnapshot ($dn, string $description, string $objectType, string $snapshotSource = 'FD')
   {
     global $config;
     if (!$this->enabled()) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot are disabled but tried to create snapshot');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snapshot are disabled but tried to create snapshot');
       return;
     }
 
@@ -233,7 +219,7 @@ class SnapshotHandler
 
     /* check if the dn exists */
     if (!$ldap->dn_exists($dn)) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Tried to snapshot non-existing dn');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Tried to snapshot non-existing dn');
       return;
     }
 
@@ -246,18 +232,28 @@ class SnapshotHandler
     /* Create object */
     $data = '';
     foreach ($dns as $tmp_dn) {
-      $data .= $ldap->generateLdif($tmp_dn, '(!(objectClass=gosaDepartment))', 'sub');
-      if (!$ldap->success()) {
-        msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), $tmp_dn, '', get_class()), LDAP_ERROR);
+      try {
+        $data .= $ldap->generateLdif($tmp_dn, '(!(objectClass=gosaDepartment))', 'sub');
+      } catch (LDIFExportException $e) {
+        $error = new FusionDirectoryError(
+          htmlescape(sprintf(
+            _('Failed to create snapshot: %s'),
+            $e->getMessage()
+          ))
+        );
+        $error->display();
+        return;
       }
     }
 
-    $target   = [];
+    $target = [];
 
-    $target['objectClass']            = ['top', 'gosaSnapshotObject'];
-    $target['gosaSnapshotData']       = gzcompress($data, 6);
-    $target['gosaSnapshotDN']         = $dn;
-    $target['description']            = $description;
+    $target['objectClass']          = ['top', 'gosaSnapshotObject'];
+    $target['gosaSnapshotData']     = gzcompress($data, 6);
+    $target['gosaSnapshotDN']       = $dn;
+    $target['description']          = $description;
+    $target['fdSnapshotObjectType'] = $objectType;
+    $target['fdSnapshotDataSource'] = $snapshotSource;
 
     /* Insert the new snapshot
        But we have to check first, if the given gosaSnapshotTimestamp
@@ -272,13 +268,74 @@ class SnapshotHandler
 
     /* Insert this new snapshot */
     $ldap->cd($this->snapshotRDN);
-    $ldap->create_missing_trees($this->snapshotRDN);
-    $ldap->create_missing_trees($new_base);
+    try {
+      $ldap->create_missing_trees($this->snapshotRDN);
+      $ldap->create_missing_trees($new_base);
+    } catch (FusionDirectoryError $error) {
+      $error->display();
+    }
     $ldap->cd($new_dn);
     $ldap->add($target);
 
     if (!$ldap->success()) {
-      msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), $new_base, '', get_class()), LDAP_ERROR);
+      $error = new FusionDirectoryLdapError($new_dn, LDAP_ADD, $ldap->get_error(), $ldap->get_errno());
+      $error->display();
+    }
+    logging::log('snapshot', 'create', $new_dn, array_keys($target), $ldap->get_error());
+  }
+
+  // function verifing the configuration retention for snapshots.
+  // Remove snapshots from the user if retention rules approves.
+  public function verifySnapshotRetention (string $dn) : void
+  {
+    global $config;
+
+    // In case the snap configuration has not set any numbers
+    if (isset($config->current['SNAPSHOTMINRETENTION']) && !empty($config->current['SNAPSHOTMINRETENTION'])) {
+      $snapMinRetention  = $config->current['SNAPSHOTMINRETENTION'];
+    } else {
+      $snapMinRetention  = 0;
+    }
+
+    if (isset($config->current['SNAPSHOTRETENTIONDAYS']) && !empty($config->current['SNAPSHOTRETENTIONDAYS'])) {
+      $snapRetentionDays = $config->current['SNAPSHOTRETENTIONDAYS'];
+    } else {
+      $snapRetentionDays = -1;
+    }
+
+    // calculate the epoch date on which snaps can be delete.
+    if ($snapRetentionDays !== -1) {
+      $todayMinusRetention = time() - ($snapRetentionDays * 24 * 60 * 60);
+      $snapDateToDelete = strtotime(date('Y-m-d H:i:s', $todayMinusRetention));
+
+      $dnSnapshotsList = $this->getSnapshots($dn, TRUE);
+      $snapToDelete = [];
+      $snapCount = 0;
+
+      // Generate an arrays with snapshot to delete due to overdate.
+      if (isset($dnSnapshotsList) && !empty($dnSnapshotsList)) {
+        foreach ($dnSnapshotsList as $snap) {
+          $snapCount += 1;
+          // let's keep seconds instead of nanosecs
+          $snapEpoch = preg_split('/-/', $snap['gosaSnapshotTimestamp'][0]);
+          if ($snapEpoch[0] < $snapDateToDelete) {
+            $snapToDelete[] = $snap['dn'];
+          }
+        }
+      }
+
+      // The not empty is not mandatory but is more ressource friendly
+      if (!empty($snapToDelete) && ($snapCount > $snapMinRetention)) {
+        $snapToKeep = $snapCount - $snapMinRetention;
+        // Sort snapToDelete by old first DN timestamp is the only thing different.
+        sort($snapToDelete);
+        for ($i = 0; $i < $snapToKeep; $i++) {
+          // not empty required because array keeps on being iterated even if NULL object.
+          if (!empty($snapToDelete[$i])) {
+            $this->removeSnapshot($snapToDelete[$i]);
+          }
+        }
+      }
     }
   }
 
@@ -294,8 +351,10 @@ class SnapshotHandler
     $ldap->cd($config->current['BASE']);
     $ldap->rmdir_recursive($dn);
     if (!$ldap->success()) {
-      msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn), LDAP_ERROR);
+      $error = new FusionDirectoryLdapError($dn, LDAP_DEL, $ldap->get_error(), $ldap->get_errno());
+      $error->display();
     }
+    logging::log('snapshot', 'delete', $dn, [], $ldap->get_error());
   }
 
   /*!
@@ -321,12 +380,12 @@ class SnapshotHandler
     $ldap->cd($new_base);
     $ldap->search(
       '(&(objectClass=gosaSnapshotObject)(gosaSnapshotDN='.ldap_escape_f($dn).'))',
-      ['gosaSnapshotTimestamp','gosaSnapshotDN','description'],
+      ['gosaSnapshotTimestamp','gosaSnapshotDN','description','fdSnapshotObjectType'],
       'one'
     );
 
     /* Put results into a list and add description if missing */
-    while ($entry = $ldap->fetch()) {
+    while ($entry = $ldap->fetch(TRUE)) {
       if (!isset($entry['description'][0])) {
         $entry['description'][0]  = "";
       }
@@ -357,10 +416,10 @@ class SnapshotHandler
     $ldap->cd($new_base);
     $ldap->search(
       '(objectClass=gosaSnapshotObject)',
-      ['gosaSnapshotTimestamp','gosaSnapshotDN','description'],
+      ['gosaSnapshotTimestamp','gosaSnapshotDN','description','fdSnapshotObjectType'],
       'one'
     );
-    while ($entry = $ldap->fetch()) {
+    while ($entry = $ldap->fetch(TRUE)) {
       $chk = str_replace($new_base, "", $entry['dn']);
       if (preg_match("/,ou=/", $chk)) {
         continue;
@@ -374,8 +433,7 @@ class SnapshotHandler
 
     /* Check if entry still exists */
     foreach ($tmp as $key => $entry) {
-      $ldap->cat($entry['gosaSnapshotDN'][0]);
-      if ($ldap->count()) {
+      if ($ldap->dn_exists($entry['gosaSnapshotDN'][0])) {
         unset($tmp[$key]);
       }
     }
@@ -393,35 +451,43 @@ class SnapshotHandler
   {
     global $config;
     if (!$this->enabled()) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot are disabled but tried to restore snapshot');
-      return [];
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snapshot are disabled but tried to restore snapshot');
+      return FALSE;
     }
 
     $ldap = $config->get_ldap_link();
 
     /* Get the snapshot */
-    $ldap->cat($dn, ['gosaSnapshotData'], '(gosaSnapshotData=*)');
+    $ldap->cat($dn, ['gosaSnapshotData','gosaSnapshotDN'], '(gosaSnapshotData=*)');
     if ($attrs = $ldap->fetch()) {
       /* Prepare import string */
       $data = gzuncompress($attrs['gosaSnapshotData'][0]);
       if ($data === FALSE) {
-        msg_dialog::display(_('Error'), _('There was a problem uncompressing snapshot data'), ERROR_DIALOG);
-        return [];
+        $error = new FusionDirectoryError(htmlescape(_('There was a problem uncompressing snapshot data')));
+        $error->display();
+        return FALSE;
       }
     } else {
-      msg_dialog::display(_('Error'), _('Snapshot data could not be fetched'), ERROR_DIALOG);
-      return [];
+      $error = new FusionDirectoryError(htmlescape(_('Snapshot data could not be fetched')));
+      $error->display();
+      return FALSE;
     }
 
     /* Import the given data */
     try {
       $ldap->import_complete_ldif($data, FALSE, FALSE);
+      logging::log('snapshot', 'restore', $dn, [], $ldap->get_error());
       if (!$ldap->success()) {
-        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, "", get_class()), LDAP_ERROR);
+        $error = new FusionDirectoryLdapError($dn, NULL, $ldap->get_error(), $ldap->get_errno());
+        $error->display();
+        return FALSE;
       }
+      return $attrs['gosaSnapshotDN'][0];
     } catch (LDIFImportException $e) {
-      msg_dialog::display(_('LDAP error'), $e->getMessage(), ERROR_DIALOG);
+      $error = new FusionDirectoryError($e->getMessage(), 0, $e);
+      $error->display();
+      logging::log('snapshot', 'restore', $dn, [], $e->getMessage());
+      return FALSE;
     }
   }
 }
-?>
diff --git a/include/management/snapshot/class_SnapshotRestoreDialog.inc b/include/management/snapshot/class_SnapshotRestoreDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..3efec4422ceaa1f1009e1bb3f2ee47d75f5c7400
--- /dev/null
+++ b/include/management/snapshot/class_SnapshotRestoreDialog.inc
@@ -0,0 +1,201 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Snapshot restoration dialog
+ */
+class SnapshotRestoreDialog extends ManagementDialog
+{
+  public $global;
+  public $aclCategory;
+
+  protected $snapDn;
+  protected $snapAction;
+
+  static function plInfo (): array
+  {
+    return [
+      'plShortName' => 'SnapshotRestoreDialog',
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      'main' => [
+        'name'  => _('Restoring snapshots'),
+        'class' => ['fullwidth'],
+        'attrs' => [
+          new DisplayAttribute(
+            _('Object'), _('DN of the object you are creating a snapshot of'),
+            'object_dn', FALSE
+          ),
+          new SnapshotsAttribute(
+            _('Snapshots'), _('Existing snapshots for this object'),
+            'snapshots', FALSE,
+            [],
+            'SnapshotHandler'
+          ),
+        ]
+      ],
+    ];
+  }
+
+  function __construct (string $dn, management $parent, bool $global, array $aclCategories)
+  {
+    $this->global       = $global;
+    parent::__construct(NULL, NULL, $parent);
+    $this->object_dn    = $dn;
+    $this->aclCategory  = $aclCategories;
+    if ($this->global) {
+      $this->attributesAccess['object_dn']->setVisible(FALSE);
+    }
+    $this->updateList();
+  }
+
+  function getAclBase (bool $callParent = TRUE): string
+  {
+    return $this->object_dn;
+  }
+
+  function updateList ()
+  {
+    if ($this->global) {
+      $this->snapshots = $this->parent->getAllDeletedSnapshots();
+    } else {
+      $this->snapshots = $this->parent->getAvailableSnapsShots($this->object_dn);
+    }
+  }
+
+  function render (): string
+  {
+    global $ui;
+    if ($this->dialog == 'delete') {
+      $objects = [
+        [
+          'name'  => 'snapshot',
+          'dn'    => $this->snapDn,
+          'icon'  => 'geticon.php?context=actions&icon=document-restore&size=16',
+          'type'  => 'Snapshot'
+        ]
+      ];
+
+      // Display confirmation dialog.
+      $smarty = get_smarty();
+      $smarty->assign('objects', $objects);
+      $str = $smarty->fetch(get_template_path('simple-remove.tpl'));
+    } elseif ($this->dialog == 'restore') {
+      $objects = [
+        [
+          'name'  => 'snapshot',
+          'dn'    => $this->snapDn,
+          'icon'  => 'geticon.php?context=actions&icon=document-restore&size=16',
+          'type'  => 'Snapshot'
+        ]
+      ];
+
+      // Display confirmation dialog.
+      $smarty = get_smarty();
+      $smarty->assign('objects', $objects);
+      $str = $smarty->fetch(get_template_path('restore-confirm.tpl'));
+    } else {
+      $smarty = get_smarty();
+      $permissions = $ui->get_snapshot_permissions($this->getAclBase(), $this->aclCategory);
+      $acl = '';
+      if (in_array('r', $permissions)) {
+        $acl .= 'r';
+      }
+      if (in_array(($this->global ? 'restore_deleted' : 'restore_over'), $permissions)) {
+        $acl .= 'w';
+      }
+      if (in_array('d', $permissions)) {
+        $acl .= 'd';
+      }
+      $smarty->assign('SnapshotHandlerACL', $acl);
+      $str = parent::render();
+      $str .= '<p class="plugbottom">'.
+             '  <input type="submit" formnovalidate="formnovalidate" name="'.$this->post_cancel.'" value="'.msgPool::backButton().'"/>'.
+             '</p>';
+    }
+
+    return $str;
+  }
+
+  function attrIsWriteable ($attr): bool
+  {
+    global $ui;
+
+    if (!is_object($attr)) {
+      $attr = $this->attributesAccess[$attr];
+    }
+    if ($attr->getLdapName() == 'snapshots') {
+      return in_array(($this->global ? 'restore_deleted' : 'restore_over'), $ui->get_snapshot_permissions($this->getAclBase(), $this->aclCategory));
+    } else {
+      return parent::attrIsWriteable($attr);
+    }
+  }
+
+  function triggerRestore ($dn)
+  {
+    $this->dialog = 'restore';
+    $this->snapDn = $dn;
+  }
+
+  function triggerDelete ($dn)
+  {
+    $this->dialog = 'delete';
+    $this->snapDn = $dn;
+  }
+
+  function readPost ()
+  {
+    if ($this->dialog == 'delete') {
+      if (isset($_POST['delete_confirmed'])) {
+        $this->parent->removeSnapshot($this->snapDn);
+        $this->closeDialog();
+      } elseif (isset($_POST['delete_cancel'])) {
+        $this->closeDialog();
+      }
+    } elseif ($this->dialog == 'restore') {
+      if (isset($_POST['restore_confirmed'])) {
+        $this->parent->restoreSnapshot($this->snapDn);
+        $this->closeDialog();
+      } elseif (isset($_POST['restore_cancel'])) {
+        $this->closeDialog();
+      }
+    } else {
+      parent::readPost();
+    }
+  }
+
+  function closeDialog ()
+  {
+    parent::closeDialog();
+    $this->snapDn = NULL;
+    $this->updateList();
+  }
+
+  function save (): array
+  {
+    return [];
+  }
+}
diff --git a/include/password-methods/class_password-methods.inc b/include/password-methods/class_passwordMethod.inc
similarity index 63%
rename from include/password-methods/class_password-methods.inc
rename to include/password-methods/class_passwordMethod.inc
index 6a0929ff90ad2237fa7f95953fbc5f6d1333f34e..30a1b74d7bb3bbeb0d4f2aff9f1d55b3c5ad2829 100644
--- a/include/password-methods/class_password-methods.inc
+++ b/include/password-methods/class_passwordMethod.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -20,16 +21,15 @@
 */
 
 /*
- * \file class_pasword-methods.inc
- * Source code for class password-methods
+ * \file class_passwordMethod.inc
+ * Source code for class passwordMethod
  */
 
 /*!
  * \brief This class contains all the basic function for password methods
  */
-class passwordMethod
+abstract class passwordMethod
 {
-  var $attrs    = [];
   var $display  = FALSE;
   var $hash     = '';
 
@@ -48,9 +48,26 @@ class passwordMethod
   /*!
    * \brief Get the Hash name
    */
-  static function get_hash_name ()
+  abstract static function get_hash_name ();
+
+  /*!
+   * \brief Generate template hash
+   *
+   * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
+   */
+  abstract public function generate_hash (string $pwd, bool $locked = FALSE): string;
+
+  /*!
+   * \brief Is available
+   *
+   * \return TRUE
+   */
+  public function is_available (): bool
   {
-    trigger_error("get_hash_name can't be called on main class");
+    return TRUE;
   }
 
   /*!
@@ -58,7 +75,7 @@ class passwordMethod
    *
    * \return boolean TRUE
    */
-  function need_password ()
+  public function need_password (): bool
   {
     return TRUE;
   }
@@ -68,7 +85,7 @@ class passwordMethod
    *
    * \return boolean
    */
-  function is_lockable ()
+  public function is_lockable (): bool
   {
     return $this->lockable;
   }
@@ -78,7 +95,7 @@ class passwordMethod
    *
    * \param string $dn The DN
    */
-  function is_locked ($dn = "")
+  function is_locked ($dn = '', $pwd = ''): bool
   {
     global $config;
     if (!$this->lockable) {
@@ -86,17 +103,14 @@ class passwordMethod
     }
 
     /* Get current password hash */
-    $pwd = "";
     if (!empty($dn)) {
       $ldap = $config->get_ldap_link();
       $ldap->cd($config->current['BASE']);
-      $ldap->cat($dn);
+      $ldap->cat($dn, ['userPassword']);
       $attrs = $ldap->fetch();
       if (isset($attrs['userPassword'][0])) {
         $pwd = $attrs['userPassword'][0];
       }
-    } elseif (isset($this->attrs['userPassword'][0])) {
-      $pwd = $this->attrs['userPassword'][0];
     }
     return preg_match("/^[^\}]*+\}!/", $pwd);
   }
@@ -109,7 +123,7 @@ class passwordMethod
    *
    * \param string $dn
    */
-  function lock_account ($dn = "")
+  function lock_account ($dn = '')
   {
     return $this->generic_modify_account($dn, 'LOCK');
   }
@@ -118,7 +132,7 @@ class passwordMethod
    * \brief Unlocks an account which was locked by 'lock_account()'.
    *        For details about the locking mechanism see 'lock_account()'.
    */
-  function unlock_account ($dn = "")
+  function unlock_account ($dn = '')
   {
     return $this->generic_modify_account($dn, 'UNLOCK');
   }
@@ -127,7 +141,7 @@ class passwordMethod
    * \brief Unlocks an account which was locked by 'lock_account()'.
    *        For details about the locking mechanism see 'lock_account()'.
    */
-  private function generic_modify_account ($dn, $mode)
+  private function generic_modify_account ($dn, string $mode)
   {
     global $config;
     if (!$this->lockable) {
@@ -137,129 +151,121 @@ class passwordMethod
       throw new FusionDirectoryException('Invalid mode "'.$mode.'"');
     }
 
-    /* Get current password hash */
-    $attrs  = $this->attrs;
-    $pwd    = '';
-    $ldap   = $config->get_ldap_link();
-    $ldap->cd($config->current['BASE']);
-    if (!empty($dn)) {
-      $ldap->cat($dn);
-      $attrs = $ldap->fetch();
-    }
-    if (isset($attrs['userPassword'][0])) {
-      $pwd = $attrs['userPassword'][0];
-      $dn  = $attrs['dn'];
-    }
+    /* Open the user */
+    $userObject   = objects::open($dn, 'user');
+    $userMainTab  = $userObject->getBaseObject();
 
-    /* We can only lock/unlock non-empty passwords */
-    if (!empty($pwd)) {
-      /* Check if this entry is already locked. */
-      if (!preg_match("/^[^\}]*+\}!/", $pwd)) {
-        if ($mode == 'UNLOCK') {
-          return TRUE;
-        }
-      } elseif ($mode == 'LOCK') {
+    /* Check if this entry is already (un)locked. */
+    if ($userMainTab->attributesAccess['userPassword']->isLocked()) {
+      if ($mode == 'LOCK') {
         return TRUE;
       }
+    } elseif ($mode == 'UNLOCK') {
+      return TRUE;
+    }
 
-      // (Un)lock the samba account
-      $modify = lock_samba_account($mode, $attrs);
+    /* Fill modification array */
+    $modify = [];
+    foreach ($userObject->by_object as $tab) {
+      if ($tab instanceof UserTabLockingAction) {
+        $tab->fillLockingLDAPAttrs($mode, $modify);
+      }
+    }
 
-      // (Un)lock SSH keys
-      lock_ssh_account($mode, $attrs, $modify);
+    // Call pre hooks
+    $errors = $userMainTab->callHook('PRE'.$mode, [], $ret);
+    if (!empty($errors)) {
+      msg_dialog::displayChecks($errors);
+      return FALSE;
+    }
 
-      // Call pre hooks
-      $userClass = new user($dn);
-      $errors = $userClass->callHook('PRE'.$mode, [], $ret);
-      if (!empty($errors)) {
-        msg_dialog::displayChecks($errors);
-        return FALSE;
-      }
+    /* Get current password hash */
+    $pwd = $userMainTab->attributesAccess['userPassword']->computeLdapValue();
 
-      // (Un)lock the account by modifying the password hash.
-      if ($mode == 'LOCK') {
-        /* Lock entry */
+    // (Un)lock the account by modifying the password hash.
+    if ($mode == 'LOCK') {
+      /* Lock entry */
+      if (empty($pwd)) {
+        $pwd = passwordMethodEmpty::LOCKVALUE;
+      } else {
         $pwd = preg_replace("/(^[^\}]+\})(.*$)/",   "\\1!\\2",  $pwd);
+      }
+    } else {
+      /* Unlock entry */
+      if ($pwd == passwordMethodEmpty::LOCKVALUE) {
+        $pwd = '';
       } else {
-        /* Unlock entry */
         $pwd = preg_replace("/(^[^\}]+\})!(.*$)/",  "\\1\\2",   $pwd);
       }
-      $modify['userPassword'] = $pwd;
-      $ldap->cd($dn);
-      $ldap->modify($modify);
-
-      // Call the password post-lock hook, if defined.
-      if ($ldap->success()) {
-        $userClass = new user($dn);
-        $errors = $userClass->callHook('POST'.$mode, [], $ret);
-        if (!empty($errors)) {
-          msg_dialog::displayChecks($errors);
-        }
-      } else {
-        msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_MOD), LDAP_ERROR);
+    }
+    $modify['userPassword'] = $pwd;
+
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($dn);
+    $ldap->modify($modify);
+
+    // Call the password post-lock hook, if defined.
+    if ($ldap->success()) {
+      $userClass = new user($dn);
+      $errors = $userClass->callHook('POST'.$mode, [], $ret);
+      if (!empty($errors)) {
+        msg_dialog::displayChecks($errors);
       }
-      return $ldap->success();
+    } else {
+      $error = new FusionDirectoryLdapError($dn, LDAP_MOD, $ldap->get_error(), $ldap->get_errno());
+      $error->display();
     }
-    return FALSE;
+    return $ldap->success();
   }
 
 
   /*!
    * \brief This function returns all loaded classes for password encryption
    */
-  static function get_available_methods ()
+  static function get_available_methods (): array
   {
     global $class_mapping;
     $ret  = FALSE;
     $i    = 0;
 
-    /* Only */
-    if (!session::is_set("passwordMethod::get_available_methods")) {
+    if (!session::is_set('passwordMethod::get_available_methods')) {
       foreach (array_keys($class_mapping) as $class) {
-        if (preg_match('/passwordMethod/i', $class) && !preg_match("/^passwordMethod$/i", $class)) {
-          $test = new $class("");
+        if (preg_match('/^passwordMethod.+/i', $class)) {
+          $test = new $class('');
           if ($test->is_available()) {
             $plugs = $test->get_hash_name();
             if (!is_array($plugs)) {
               $plugs = [$plugs];
             }
 
-            foreach ($plugs as $plugname) {
-              $cfg = $test->is_configurable();
+            $cfg  = $test->is_configurable();
 
+            foreach ($plugs as $plugname) {
               $ret['name'][$i]            = $plugname;
               $ret['class'][$i]           = $class;
               $ret['is_configurable'][$i] = $cfg;
               $ret['object'][$i]          = $test;
-              $ret['desc'][$i]            = $test->get_description();
+
               $ret[$i]['name']            = $plugname;
               $ret[$i]['class']           = $class;
               $ret[$i]['object']          = $test;
               $ret[$i]['is_configurable'] = $cfg;
-              $ret[$i]['desc']            = $test->get_description();
+
               $ret[$plugname]             = $class;
               $i++;
             }
           }
         }
       }
-      session::set("passwordMethod::get_available_methods", $ret);
+      session::set('passwordMethod::get_available_methods', $ret);
     }
-    return session::get("passwordMethod::get_available_methods");
-  }
-
-  /*!
-   * \brief Get desciption
-   */
-  function get_description ()
-  {
-    return "";
+    return session::get('passwordMethod::get_available_methods');
   }
 
   /*!
    * \brief Method to check if a password matches a hash
    */
-  function checkPassword ($pwd, $hash)
+  function checkPassword ($pwd, $hash): bool
   {
     return ($hash == $this->generate_hash($pwd));
   }
@@ -268,7 +274,7 @@ class passwordMethod
   /*!
    * \brief Return true if this password method provides a configuration dialog
    */
-  function is_configurable ()
+  function is_configurable (): bool
   {
     return FALSE;
   }
@@ -276,9 +282,9 @@ class passwordMethod
   /*!
    * \brief Provide a subdialog to configure a password method
    */
-  function configure ()
+  function configure (): string
   {
-    return "";
+    return '';
   }
 
 
@@ -299,21 +305,26 @@ class passwordMethod
    *
    * \param string $dn The DN
    */
-  static function get_method ($password_hash, $dn = "")
+  static function get_method ($password_hash, $dn = ''): passwordMethod
   {
     $methods = passwordMethod::get_available_methods();
 
+    if (isset($methods['class']['passwordMethodEmpty']) && (passwordMethodEmpty::_extract_method($password_hash) != '')) {
+      /* Test empty method first as it gets priority */
+      $method = new passwordMethodEmpty();
+      return $method;
+    }
+
     foreach ($methods['class'] as $class) {
-      $method = $class::_extract_method($class, $password_hash);
-      if ($method != "") {
+      $method = $class::_extract_method($password_hash);
+      if ($method != '') {
         $test = new $class($dn);
         $test->set_hash($method);
         return $test;
       }
     }
 
-    $method = new passwordMethodClear($dn);
-    $method->set_hash('clear');
+    $method = new passwordMethodClear();
     return $method;
   }
 
@@ -324,14 +335,14 @@ class passwordMethod
    *
    * \param string $password_hash
    */
-  static function _extract_method ($classname, $password_hash)
+  static function _extract_method ($password_hash): string
   {
-    $hash = $classname::get_hash_name();
+    $hash = static::get_hash_name();
     if (preg_match("/^\{$hash\}/i", $password_hash)) {
       return $hash;
     }
 
-    return "";
+    return '';
   }
 
   /*!
@@ -341,7 +352,7 @@ class passwordMethod
    *
    * \param string $hash
    */
-  static function make_hash ($password, $hash)
+  static function make_hash ($password, $hash): string
   {
     $methods  = passwordMethod::get_available_methods();
     $tmp      = new $methods[$hash]();
@@ -375,10 +386,10 @@ class passwordMethod
    *
    * \param string $password The password
    */
-  static function is_harmless ($password)
+  static function is_harmless ($password): bool
   {
     global $config;
-    if ($config->get_cfg_value("strictPasswordRules") == "TRUE") {
+    if ($config->get_cfg_value('strictPasswordRules') == 'TRUE') {
       // Do we have UTF8 characters in the password?
       return ($password == utf8_decode($password));
     }
@@ -386,4 +397,3 @@ class passwordMethod
     return TRUE;
   }
 }
-?>
diff --git a/include/password-methods/class_password-methods-clear.inc b/include/password-methods/class_passwordMethodClear.inc
similarity index 81%
rename from include/password-methods/class_password-methods-clear.inc
rename to include/password-methods/class_passwordMethodClear.inc
index 95a16473f1e8c48adc8eb97e4f70d0edf2538797..94b5cb36cb94b904f54b72bce4aae5e383bebda6 100644
--- a/include/password-methods/class_password-methods-clear.inc
+++ b/include/password-methods/class_passwordMethodClear.inc
@@ -1,9 +1,9 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -21,18 +21,20 @@
 */
 
 /*!
- * \file class_password-methods-clear.inc
+ * \file class_passwordMethodClear.inc
  * Source code for class passwordMethodClear
  */
 
 /*!
- * \brief This class contains all the functions for clear password methods
+ * \brief This class contains all the functions for clear password method
  * \see passwordMethod
  */
 class passwordMethodClear extends passwordMethod
 {
   protected $lockable = FALSE;
 
+  public $hash = 'clear';
+
   /*!
    * \brief passwordMethodClear Constructor
    */
@@ -40,22 +42,15 @@ class passwordMethodClear extends passwordMethod
   {
   }
 
-  /*!
-   * \brief Is available
-   *
-   * \return TRUE
-   */
-  function is_available ()
-  {
-    return TRUE;
-  }
-
   /*!
    * \brief Generate template hash
    *
    * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
    */
-  function generate_hash ($pwd)
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
   {
     return $pwd;
   }
@@ -65,8 +60,6 @@ class passwordMethodClear extends passwordMethod
    */
   static function get_hash_name ()
   {
-    return "clear";
+    return 'clear';
   }
-
 }
-?>
diff --git a/include/password-methods/class_password-methods-crypt.inc b/include/password-methods/class_passwordMethodCrypt.inc
similarity index 78%
rename from include/password-methods/class_password-methods-crypt.inc
rename to include/password-methods/class_passwordMethodCrypt.inc
index 57c3ec5830e6c330deb1afe873c513cc16d9c5c3..924e0c602ace46070e7292ca532399a58cc8b6b5 100644
--- a/include/password-methods/class_password-methods-crypt.inc
+++ b/include/password-methods/class_passwordMethodCrypt.inc
@@ -1,9 +1,9 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -21,7 +21,7 @@
 */
 
 /*!
- * \file class_password-methods-crypt.inc
+ * \file class_passwordMethodCrypt.inc
  * Source code for class passwordMethodCrypt
  */
 
@@ -44,7 +44,7 @@ class passwordMethodCrypt extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available ()
+  public function is_available (): bool
   {
     return function_exists('crypt');
   }
@@ -53,59 +53,54 @@ class passwordMethodCrypt extends passwordMethod
    * \brief Generate template hash
    *
    * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
    */
-  function generate_hash ($pwd)
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
   {
+    $salt = '';
+
     if ($this->hash == "crypt/standard-des") {
       $salt = "";
       for ($i = 0; $i < 2; $i++) {
-          $salt .= get_random_char();
+        $salt .= get_random_char();
       }
-    }
-
-    if ($this->hash == "crypt/enhanced-des") {
+    } elseif ($this->hash == "crypt/enhanced-des") {
       $salt = "_";
       for ($i = 0; $i < 8; $i++) {
-          $salt .= get_random_char();
+        $salt .= get_random_char();
       }
-    }
-
-    if ($this->hash == "crypt/md5") {
+    } elseif ($this->hash == "crypt/md5") {
       $salt = "\$1\$";
       for ($i = 0; $i < 8; $i++) {
-          $salt .= get_random_char();
+        $salt .= get_random_char();
       }
       $salt .= "\$";
-    }
-
-    if ($this->hash == "crypt/blowfish") {
+    } elseif ($this->hash == "crypt/blowfish") {
       $salt = "\$2a\$07\$";
       for ($i = 0; $i < CRYPT_SALT_LENGTH; $i++) {
-          $salt .= get_random_char();
+        $salt .= get_random_char();
       }
       $salt .= "\$";
-    }
-
-    if ($this->hash == "crypt/sha-256") {
+    } elseif ($this->hash == "crypt/sha-256") {
       $salt = "\$5\$";
       for ($i = 0; $i < 16; $i++) {
-          $salt .= get_random_char();
+        $salt .= get_random_char();
       }
       $salt .= "\$";
-    }
-
-    if ($this->hash == "crypt/sha-512") {
+    } elseif ($this->hash == "crypt/sha-512") {
       $salt = "\$6\$";
       for ($i = 0; $i < 16; $i++) {
-          $salt .= get_random_char();
+        $salt .= get_random_char();
       }
       $salt .= "\$";
     }
 
-    return "{CRYPT}".crypt($pwd, $salt);
+    return '{CRYPT}'.($locked ? '!' : '').crypt($pwd, $salt);
   }
 
-  function checkPassword ($pwd, $hash)
+  function checkPassword ($pwd, $hash): bool
   {
     // Not implemented
     return FALSE;
@@ -151,7 +146,7 @@ class passwordMethodCrypt extends passwordMethod
    *
    * \param string $password_hash
    */
-  static function _extract_method ($classname, $password_hash)
+  static function _extract_method ($password_hash): string
   {
     if (!preg_match('/^{crypt}/i', $password_hash)) {
       return "";
@@ -186,4 +181,3 @@ class passwordMethodCrypt extends passwordMethod
     return "";
   }
 }
-?>
diff --git a/include/password-methods/class_passwordMethodEmpty.inc b/include/password-methods/class_passwordMethodEmpty.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e88a6adfcf5d6f01f075d63c70fe5964f31d867a
--- /dev/null
+++ b/include/password-methods/class_passwordMethodEmpty.inc
@@ -0,0 +1,86 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2003-2010  Cajus Pollmeier
+  Copyright (C) 2011-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \file class_passwordMethodEmpty.inc
+ * Source code for class passwordMethodEmpty
+ */
+
+/*!
+ * \brief This class contains all the functions for empty password method
+ * \see passwordMethod
+ */
+class passwordMethodEmpty extends passwordMethod
+{
+  protected $lockable   = TRUE;
+
+  public $hash = 'empty';
+
+  const LOCKVALUE  = '{CRYPT}!';
+
+  /*!
+   * \brief passwordMethodEmpty Constructor
+   */
+  function __construct ()
+  {
+  }
+
+  /*!
+   * \brief Generate template hash
+   *
+   * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
+   */
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
+  {
+    return ($locked ? static::LOCKVALUE : '');
+  }
+
+  /*!
+   * \brief Get the hash name
+   */
+  static function get_hash_name ()
+  {
+    return 'empty';
+  }
+
+  /*!
+   * \brief Password needed
+   *
+   * \return boolean FALSE
+   */
+  function need_password (): bool
+  {
+    return FALSE;
+  }
+
+  static function _extract_method ($password_hash): string
+  {
+    if (empty($password_hash) || ($password_hash == static::LOCKVALUE)) {
+      return static::get_hash_name();
+    }
+
+    return '';
+  }
+}
diff --git a/include/password-methods/class_password-methods-md5.inc b/include/password-methods/class_passwordMethodMd5.inc
similarity index 76%
rename from include/password-methods/class_password-methods-md5.inc
rename to include/password-methods/class_passwordMethodMd5.inc
index 96e6375e19d14bbed6508a8ccbd56dd8e4e654a5..0b9a534f018c1453dd38f0d3f72827b54ef0020b 100644
--- a/include/password-methods/class_password-methods-md5.inc
+++ b/include/password-methods/class_passwordMethodMd5.inc
@@ -1,9 +1,9 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -21,12 +21,12 @@
 */
 
 /*!
- * \file class_password-methods-md5.inc
+ * \file class_passwordMethodMd5.inc
  * Source code for class passwordMethodMd5
  */
 
 /*!
- * \brief This class contains all the functions for md5 password methods
+ * \brief This class contains all the functions for md5 password method
  * \see passwordMethod
  */
 class passwordMethodMd5 extends passwordMethod
@@ -42,9 +42,9 @@ class passwordMethodMd5 extends passwordMethod
   /*!
    * \brief Is available
    *
-   * \return TRUE if is avaibable, otherwise return false
+   * \return TRUE if is available, otherwise return false
    */
-  function is_available ()
+  public function is_available (): bool
   {
     return function_exists('md5');
   }
@@ -53,10 +53,13 @@ class passwordMethodMd5 extends passwordMethod
    * \brief Generate template hash
    *
    * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
    */
-  function generate_hash ($pwd)
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
   {
-    return  '{MD5}'.base64_encode( pack('H*', md5($pwd)));
+    return  '{MD5}'.($locked ? '!' : '').base64_encode(pack('H*', md5($pwd)));
   }
 
   /*!
@@ -67,4 +70,3 @@ class passwordMethodMd5 extends passwordMethod
     return 'md5';
   }
 }
-?>
diff --git a/include/password-methods/class_password-methods-sasl.inc b/include/password-methods/class_passwordMethodSasl.inc
similarity index 72%
rename from include/password-methods/class_password-methods-sasl.inc
rename to include/password-methods/class_passwordMethodSasl.inc
index 2a618a64bfd7dff8ee3b9d52798c505a90366e13..ba7b9a2d5d47a37b69b37c1289401d3ad82518b1 100644
--- a/include/password-methods/class_password-methods-sasl.inc
+++ b/include/password-methods/class_passwordMethodSasl.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -19,15 +20,15 @@
 */
 
 /*!
- * \file class_password-methods-sasl.inc
- * Source code for class passwordMethodsasl
+ * \file class_passwordMethodSasl.inc
+ * Source code for class passwordMethodSasl
  */
 
 /*!
- * \brief This class contains all the functions for sasl password methods
+ * \brief This class contains all the functions for sasl password method
  * \see passwordMethod
  */
-class passwordMethodsasl extends passwordMethod
+class passwordMethodSasl extends passwordMethod
 {
   // uid, or exop specified field value
   var $uid    = '';
@@ -35,7 +36,7 @@ class passwordMethodsasl extends passwordMethod
   var $exop   = '';
 
   /*!
-   * \brief passwordMethodsasl Constructor
+   * \brief passwordMethodSasl Constructor
    *
    * \param string $dn The DN
    * \param object $userTab The user main tab object
@@ -62,7 +63,8 @@ class passwordMethodsasl extends passwordMethod
         $attrs = $ldap->fetch();
         $this->uid = $attrs[$attr][0];
       } else {
-        msg_dialog::display(_('Error'), sprintf(_('Cannot change password, unknown user "%s"'), $dn), ERROR_DIALOG);
+        $error = new FusionDirectoryError(htmlescape(sprintf(_('Cannot change password, unknown user "%s"'), $dn)));
+        $error->display();
       }
     }
   }
@@ -72,7 +74,7 @@ class passwordMethodsasl extends passwordMethod
    *
    * \return TRUE if is avaibable
    */
-  function is_available ()
+  public function is_available (): bool
   {
     if (empty($this->realm) && empty($this->exop)) {
       return FALSE;
@@ -84,21 +86,25 @@ class passwordMethodsasl extends passwordMethod
    * \brief Generate template hash
    *
    * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
    */
-  function generate_hash ($pwd)
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
   {
     if (empty($this->exop)) {
       if (empty($this->realm)) {
-        msg_dialog::display(_('Error'), _('You need to fill saslRealm or saslExop in the configuration screen in order to use SASL'), ERROR_DIALOG);
+        $error = new FusionDirectoryError(htmlescape(_('You need to fill saslRealm or saslExop in the configuration screen in order to use SASL')));
+        $error->display();
       }
-      return '{SASL}'.$this->uid.'@'.$this->realm;
+      return '{SASL}'.($locked ? '!' : '').$this->uid.'@'.$this->realm;
     } else {
       // may not be the uid, see saslExop option
-      return '{SASL}'.$this->uid;
+      return '{SASL}'.($locked ? '!' : '').$this->uid;
     }
   }
 
-  function checkPassword ($pwd, $hash)
+  function checkPassword ($pwd, $hash): bool
   {
     // We do not store passwords, can’t know if they’re the same
     return FALSE;
@@ -115,12 +121,11 @@ class passwordMethodsasl extends passwordMethod
   /*!
    * \brief Password needed
    *
-   * \return boolean FALSE
+   * \return boolean
    */
-  function need_password ()
+  function need_password (): bool
   {
     global $config;
     return ($config->get_cfg_value('forceSaslPasswordAsk', 'FALSE') == 'TRUE');
   }
 }
-?>
diff --git a/include/password-methods/class_password-methods-sha.inc b/include/password-methods/class_passwordMethodSha.inc
similarity index 67%
rename from include/password-methods/class_password-methods-sha.inc
rename to include/password-methods/class_passwordMethodSha.inc
index e2e13fb60d9adb1c6dfae6691c135d77a31a8ade..0bd2b7ce52bd04a957fd6b087d12f63731e195c0 100644
--- a/include/password-methods/class_password-methods-sha.inc
+++ b/include/password-methods/class_passwordMethodSha.inc
@@ -1,9 +1,9 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -21,18 +21,18 @@
 */
 
 /*
- * \file class_pasword-methods-sha.inc
- * Source code for class passwordMethodsha
+ * \file class_passwordMethodSha.inc
+ * Source code for class passwordMethodSha
  */
 
 /*!
- * \brief This class contains all the functions for sha password methods
+ * \brief This class contains all the functions for sha password method
  * \see passwordMethod
  */
-class passwordMethodsha extends passwordMethod
+class passwordMethodSha extends passwordMethod
 {
   /*!
-   * \brief passwordMethodsha Constructor
+   * \brief passwordMethodSha Constructor
    */
   function __construct ()
   {
@@ -43,7 +43,7 @@ class passwordMethodsha extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available ()
+  public function is_available (): bool
   {
     return (function_exists('sha1') || function_exists('mhash'));
   }
@@ -51,17 +51,19 @@ class passwordMethodsha extends passwordMethod
   /*!
    * \brief Generate template hash
    *
-   * \param string $password Password
+   * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
    */
-  function generate_hash ($password)
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
   {
     if (function_exists('sha1')) {
-      $hash = '{SHA}' . base64_encode(pack('H*', sha1($password)));
+      $hash = '{SHA}'.($locked ? '!' : '').base64_encode(pack('H*', sha1($pwd)));
     } elseif (function_exists('mhash')) {
-      $hash = '{SHA}' . base64_encode(mHash(MHASH_SHA1, $password));
+      $hash = '{SHA}'.($locked ? '!' : '').base64_encode(mHash(MHASH_SHA1, $pwd));
     } else {
-      msg_dialog::display(_('Configuration error'), msgPool::missingext('mhash'), ERROR_DIALOG);
-      return FALSE;
+      throw new FusionDirectoryException(msgPool::missingext('mhash'));
     }
 
     return $hash;
@@ -75,4 +77,3 @@ class passwordMethodsha extends passwordMethod
     return 'sha';
   }
 }
-?>
diff --git a/include/password-methods/class_password-methods-smd5.inc b/include/password-methods/class_passwordMethodSmd5.inc
similarity index 74%
rename from include/password-methods/class_password-methods-smd5.inc
rename to include/password-methods/class_passwordMethodSmd5.inc
index 73886bca0cbaea73dd593af74e7e1133e08b3811..b44b3ea142382abaa2672129fd380485cd4ab8cc 100644
--- a/include/password-methods/class_password-methods-smd5.inc
+++ b/include/password-methods/class_passwordMethodSmd5.inc
@@ -1,9 +1,9 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -21,18 +21,18 @@
 */
 
 /*!
- * \file class_password-methods-smd5.inc
- * Source code for class passwordMethodsmd5
+ * \file class_passwordMethodSmd5.inc
+ * Source code for class passwordMethodSmd5
  */
 
 /*!
- * \brief This class contains all the functions for sdm5 password methods
+ * \brief This class contains all the functions for sdm5 password method
  * \see passwordMethod
  */
-class passwordMethodsmd5 extends passwordMethod
+class passwordMethodSmd5 extends passwordMethod
 {
   /*!
-   * \brief passwordMethodsmd5 Constructor
+   * \brief passwordMethodSmd5 Constructor
    */
   function __construct ()
   {
@@ -43,7 +43,7 @@ class passwordMethodsmd5 extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available ()
+  public function is_available (): bool
   {
     return function_exists('md5');
   }
@@ -52,16 +52,18 @@ class passwordMethodsmd5 extends passwordMethod
    * \brief Generate template hash
    *
    * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
    */
-  function generate_hash ($pwd)
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
   {
     $salt0  = substr(pack('h*', md5(random_int(0, PHP_INT_MAX))), 0, 8);
     $salt   = substr(pack('H*', md5($salt0 . $pwd)), 0, 4);
-    $hash   = '{SMD5}'.base64_encode(pack('H*', md5($pwd . $salt)) . $salt);
-    return $hash;
+    return '{SMD5}'.($locked ? '!' : '').base64_encode(pack('H*', md5($pwd . $salt)) . $salt);
   }
 
-  function checkPassword ($pwd, $hash)
+  function checkPassword ($pwd, $hash): bool
   {
     $hash = base64_decode(substr($hash, 6));
     $salt = substr($hash, 16);
@@ -78,4 +80,3 @@ class passwordMethodsmd5 extends passwordMethod
     return 'smd5';
   }
 }
-?>
diff --git a/include/password-methods/class_password-methods-ssha.inc b/include/password-methods/class_passwordMethodSsha.inc
similarity index 71%
rename from include/password-methods/class_password-methods-ssha.inc
rename to include/password-methods/class_passwordMethodSsha.inc
index 705c2378f321470eca282f4e4217a7350a30c7b9..6cc0c01c85187eb21df73e239d74180acc3234e7 100644
--- a/include/password-methods/class_password-methods-ssha.inc
+++ b/include/password-methods/class_passwordMethodSsha.inc
@@ -1,9 +1,9 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -21,18 +21,18 @@
 */
 
 /*!
- * \file class_password-methods-ssha.inc
- * Source code for class passwordMethodssha
+ * \file class_passwordMethodSsha.inc
+ * Source code for class passwordMethodSsha
  */
 
 /*!
- * \brief This class contains all the functions for ssha password methods
+ * \brief This class contains all the functions for ssha password method
  * \see passwordMethod
  */
-class passwordMethodssha extends passwordMethod
+class passwordMethodSsha extends passwordMethod
 {
   /*!
-   * \brief passwordMethodssha Constructor
+   * \brief passwordMethodSsha Constructor
    */
   function __construct ()
   {
@@ -43,7 +43,7 @@ class passwordMethodssha extends passwordMethod
    *
    * \return TRUE if is avaibable, otherwise return false
    */
-  function is_available ()
+  public function is_available (): bool
   {
     return (function_exists('sha1') || function_exists('mhash'));
   }
@@ -52,25 +52,26 @@ class passwordMethodssha extends passwordMethod
    * \brief Generate template hash
    *
    * \param string $pwd Password
+   * \param bool $locked Should the password be locked
+   *
+   * \return string the password hash
    */
-  function generate_hash ($pwd)
+  public function generate_hash (string $pwd, bool $locked = FALSE): string
   {
     if (function_exists('sha1')) {
       $salt = substr(pack('h*', md5(random_int(0, PHP_INT_MAX))), 0, 8);
       $salt = substr(pack('H*', sha1($salt.$pwd)), 0, 4);
-      $pwd  = '{SSHA}'.base64_encode(pack('H*', sha1($pwd.$salt)).$salt);
-      return $pwd;
+      $pwd  = '{SSHA}'.($locked ? '!' : '').base64_encode(pack('H*', sha1($pwd.$salt)).$salt);
     } elseif (function_exists('mhash')) {
       $salt = mhash_keygen_s2k(MHASH_SHA1, $pwd, substr(pack('h*', md5(random_int(0, PHP_INT_MAX))), 0, 8), 4);
-      $pwd  = '{SSHA}'.base64_encode(mhash(MHASH_SHA1, $pwd.$salt).$salt);
+      $pwd  = '{SSHA}'.($locked ? '!' : '').base64_encode(mhash(MHASH_SHA1, $pwd.$salt).$salt);
     } else {
-      msg_dialog::display(_('Configuration error'), msgPool::missingext('mhash'), ERROR_DIALOG);
-      return FALSE;
+      throw new FusionDirectoryException(msgPool::missingext('mhash'));
     }
     return $pwd;
   }
 
-  function checkPassword ($pwd, $hash)
+  function checkPassword ($pwd, $hash): bool
   {
     $hash = base64_decode(substr($hash, 6));
     $salt = substr($hash, 20);
@@ -80,7 +81,8 @@ class passwordMethodssha extends passwordMethod
     } elseif (function_exists('mhash')) {
       $nhash = mhash(MHASH_SHA1, $pwd.$salt);
     } else {
-      msg_dialog::display(_('Configuration error'), msgPool::missingext('mhash'), ERROR_DIALOG);
+      $error = new FusionDirectoryError(msgPool::missingext('mhash'));
+      $error->display();
       return FALSE;
     }
     return ($nhash == $hash);
@@ -94,4 +96,3 @@ class passwordMethodssha extends passwordMethod
     return 'ssha';
   }
 }
-?>
diff --git a/include/php_setup.inc b/include/php_setup.inc
index 02f5d05f5501ba90196a590f75805577d233de20..0bfbe243a00f7f9828b45cf671491c95541e2add 100644
--- a/include/php_setup.inc
+++ b/include/php_setup.inc
@@ -1,9 +1,8 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -24,12 +23,13 @@
  * \file php_setup.inc
  * Source code for php_setup
  */
-require_once("variables.inc");
+require_once('variables.inc');
+require_once('class_URL.inc');
 
 /*!
  * \brief Escape string for HTML output
  */
-function htmlescape ($str)
+function htmlescape (string $str): string
 {
   return htmlspecialchars($str, ENT_QUOTES | ENT_HTML5, 'UTF-8');
 }
@@ -37,7 +37,7 @@ function htmlescape ($str)
 /*!
  * \brief Unescape string for HTML output, reverse of htmlescape
  */
-function htmlunescape ($html)
+function htmlunescape (string $html): string
 {
   return html_entity_decode($html, ENT_QUOTES | ENT_HTML5, 'UTF-8');
 }
@@ -45,14 +45,14 @@ function htmlunescape ($html)
 function html_trace ($errstr = "")
 {
   static $hideArgs = [
-    'ldap_init'         => [3],
-    'ldap_login_user'   => [1],
-    'change_password'   => [1],
-    'cred_decrypt'      => [0,1],
-    'LDAP/__construct'  => [1],
+    'LDAP/init'           => [3],
+    'userinfo/loginUser'  => [1],
+    'change_password'     => [1],
+    'cred_decrypt'        => [0,1],
+    'LDAP/__construct'    => [1],
   ];
   if (!function_exists('debug_backtrace')) {
-    return  ['', ''];
+    return ['', ''];
   }
   $trace = array_slice(debug_backtrace(), 1);
 
@@ -66,7 +66,7 @@ function html_trace ($errstr = "")
 
   $return_html    = '<table width="100%" style="background-color:#402005;color:white;border:2px solid red;border-spacing:0;border-collapse:collapse;">'.
                     '<tr><td colspan="3">'.
-                    '<h1 style="color:white">'._('PHP error').' "'.$errstr.'"'.$loc.'</h1>'.
+                    '<h1 style="color:white">'.htmlescape(_('PHP error').' "'.$errstr.'"'.$loc).'</h1>'.
                     '</td></tr>';
   $return_mailto  = rawurlencode('=== Trace ===');
   /* Generate trace history */
@@ -75,7 +75,7 @@ function html_trace ($errstr = "")
     $loc  = '';
     $func = '';
     if (isset($ct['class'])) {
-      $loc .= _("class")." ".$ct['class'];
+      $loc .= _('class').' '.$ct['class'];
       $func .= $ct['class'];
       if (isset($ct['function'])) {
         $loc  .= ' / ';
@@ -83,30 +83,35 @@ function html_trace ($errstr = "")
       }
     }
     if (isset($ct['function'])) {
-      $loc .= _("function")." ".$ct['function'];
+      $loc .= _('function').' '.$ct['function'];
       $func .= $ct['function'];
     }
     if (isset($ct['type'])) {
       switch ($ct['type']) {
-        case "::":
-          $type = _("static");
+        case '::':
+          $type = _('static');
+          break;
+
+        case '->':
+          $type = _('method');
           break;
 
-        case "->":
-          $type = _("method");
+        default:
+          $type = 'unknown';
           break;
       }
     } else {
-      $type = "-";
+      $type = '-';
     }
-    $args = "";
+    $args = '';
     if (isset($ct['args'])) {
       if (isset($hideArgs[$func])) {
         $hideArgsIndexes = $hideArgs[$func];
       } else {
         $hideArgsIndexes = [];
       }
-      $f = function ($index, $arg) use (&$f, $hideArgsIndexes) {
+      $f = function ($index, $arg) use (&$f, $hideArgsIndexes)
+      {
         static $i = 0;
         if (($i == 0) && in_array($index, $hideArgsIndexes)) {
           return '***';
@@ -115,38 +120,38 @@ function html_trace ($errstr = "")
           return '…';
         }
         if (is_object($arg)) {
-          return "CLASS:&nbsp;".get_class($arg);
+          return 'CLASS:&nbsp;'.get_class($arg);
         } elseif (is_array($arg)) { /* Avoid converting array to string errors */
           $i++;
-          $ret = "array(".implode(',', array_map($f, array_keys($arg), $arg)).")";
+          $ret = 'array('.implode(',', array_map($f, array_keys($arg), $arg)).')';
           $i--;
           return $ret;
         } else {
           if (strlen("$arg") > 512) {
             $arg = substr("$arg", 0, 512)."…";
           }
-          return '"'.htmlentities("$arg", ENT_COMPAT, 'UTF-8').'"';
+          return '"'.htmlescape("$arg").'"';
         }
       };
       $args = implode(',', array_map($f, array_keys($ct['args']), $ct['args']));
     }
     if (empty($args)) {
-      $args = "-";
+      $args = '-';
     }
     if (isset($ct['file'])) {
       $file = $ct['file'];
     } else {
-      $file = "";
+      $file = '';
     }
     if (isset($ct['line'])) {
       $line = $ct['line'];
     } else {
-      $line = "";
+      $line = '';
     }
     $color = ($index & 1) ? '#404040' : '606060';
-    $return_html .= "<tr style='background-color:$color'><td style='padding-left:20px' width=\"30%\">"._("Trace")."[$index]: $loc</td>";
-    $return_html .= "<td>"._("File").": $file ("._('Line')." $line)</td><td width=\"10%\">"._("Type").": $type</td></tr>";
-    $return_html .= "<tr style='background-color:$color'><td colspan=3 style='padding-left:20px;'>"._("Arguments").": $args</td></tr>";
+    $return_html .= "<tr style='background-color:$color'><td style='padding-left:20px' width=\"30%\">".htmlescape(_("Trace")."[$index]: $loc").'</td>';
+    $return_html .= "<td>".htmlescape(_("File").": $file ("._('Line')." $line)").'</td><td width="10%">'.htmlescape(_("Type").": $type").'</td></tr>';
+    $return_html .= "<tr style='background-color:$color'><td colspan=3 style='padding-left:20px;'>".htmlescape(_("Arguments").": $args").'</td></tr>';
 
     /* Add trace part to mailto body */
     $return_mailto .= rawurlencode(
@@ -195,28 +200,20 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline)
   }
 
   /* Hide ldap size limit messages */
-  if (preg_match('/ldap_error/', $errstr)) {
-    if (preg_match('/sizelimit/', $errstr)) {
-      set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT);
-      return;
-    }
-  }
-
-  /* Error messages are hidden in FusionDirectory, so we only send them to the logging class and abort here */
-  if (isset($config->data) && $config->get_cfg_value('displayerrors') != 'TRUE') {
-
-    /* Write to syslog */
-    if (class_exists('logging') && !preg_match('/No such object/', $errstr)) {
-      logging::log('view', 'error', '', [], "PHP error: $errstr($errfile, line $errline)");
-    }
-
+  if (preg_match('/ldap_error/', $errstr) && preg_match('/sizelimit/', $errstr)) {
     set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT);
     return;
   }
 
   /* Send all errors to logging class, except "Ldap : No such object" messages*/
   if (class_exists('logging') && !preg_match('/No such object/', $errstr)) {
-    logging::log('debug', 'all', $errfile, [], 'Type:'.$errno.', Message:'.$errstr.', File:'.$errfile.', Line: '.$errline);
+    logging::log('error', 'php', $errfile, [], 'Type:'.$errno.', Message:'.$errstr.', File:'.$errfile.', Line: '.$errline);
+  }
+
+  /* Error messages are hidden in FusionDirectory, so we only send them to the logging class and abort here */
+  if (isset($config->data) && $config->get_cfg_value('displayerrors') != 'TRUE') {
+    set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT);
+    return;
   }
 
   /* Create header as needed */
@@ -232,8 +229,7 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline)
                               "*** FusionDirectory bug report ***".
                               "\nFusionDirectory Version: $version".
                               "\n\n".
-                              "Please describe what you did to produce this error as detailed as possible. Can you ".
-                              "reproduce this bug using the demo on http://demo.FusionDirectory.org ?".
+                              "Please describe what you did to produce this error as detailed as possible.".
                               "\n\n".
                               "*** PHP error information ***\n\n");
 
@@ -244,18 +240,18 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline)
             <td>
               <img src="geticon.php?context=status&amp;icon=dialog-warning&amp;size=16" alt="" class="center"/>&nbsp;
               <strong style="font-size:14px">'.
-                _("Generating this page caused the PHP interpreter to raise some errors!").'
+                htmlescape(_('Generating this page caused the PHP interpreter to raise some errors!')).'
               </strong>
             </td>
             <td align=right>
               <a href="mailto:bugs@fusiondirectory.org?subject=FusionDirectory%20bugreport&amp;body=%BUGBODY%">
-                <img src="geticon.php?context=applications&amp;icon=internet-mail&amp;size=16" title="'._("Send bug report to the FusionDirectory Team").
-                '" class="center" alt="'.("Mail icon").'">&nbsp;'._("Send bugreport").'
+                <img src="geticon.php?context=applications&amp;icon=internet-mail&amp;size=16" title="'.htmlescape(_('Send bug report to the FusionDirectory Team')).
+                '" class="center" alt="'.htmlescape(_('Mail icon')).'">&nbsp;'.htmlescape(_('Send bug report')).'
               </a>
             </td>
             <td align="right">
               <button onClick="$(\'errorbox\').toggle();">'.
-                _("Toggle information").'
+                htmlescape(_('Toggle information')).'
               </button>
             </td>
           </tr>
@@ -266,7 +262,7 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline)
 
   /* Create error header */
   $error_collector_mailto .= rawurlencode("=== Error === \n");
-  $error_collector_mailto .= rawurlencode("PHP error: $errstr($errfile, line $errline)\n");
+  $error_collector_mailto .= rawurlencode("PHP error: $errstr ($errfile, line $errline)\n");
   $error_collector_mailto .= rawurlencode("=== /Error === \n\n");
 
   list($html_trace, $mailto_trace) = html_trace($errstr);
@@ -275,7 +271,7 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline)
 
   /* Flush in case of fatal errors */
   if (preg_match('/^fatal/i', $errstr) || (PHP_ERROR_FATAL == 'TRUE')) {
-    session::destroy();
+    session::destroy('Fatal error');
     if (PHP_ERROR_FATAL == 'TRUE') {
       $error_collector = str_replace('display: none;', '', $error_collector);
     }
@@ -288,41 +284,38 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline)
 }
 
 /*!
- * \brief Dummy error handler
- */
-function dummy_error_handler ()
-{
-}
-
-/*! \brief Returns TRUE if SSL was used to contact FD, whether directly or through a proxy
+ * \brief Catches throwables that no one catched
+ *
+ * \param Throwable $throwable
  */
-function sslOn ()
+function fusiondirectoryExceptionHandler (Throwable $throwable)
 {
-  if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
-    return (strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') == 0);
+  try {
+    logging::log('error', 'fatal', '', [], 'Uncaught '.get_class($throwable).': '.$throwable->getMessage());
+  } catch (Throwable $t) {
+    /* Ignore exceptions/errors here */
   }
-  if (isset($_SERVER['HTTPS'])) {
-    return (strcasecmp($_SERVER['HTTPS'], 'on') == 0);
+
+  try {
+    if ($throwable instanceof FatalError) {
+      $throwable->display();
+    } else {
+      $error = new FatalError(htmlescape(sprintf(_('Uncaught %s: %s'), get_class($throwable), $throwable->getMessage())), 0, $throwable);
+      $error->display();
+    }
+  } catch (Throwable $t) {
+    /* Minimal display if exceptions happens when building the pretty one */
+    echo 'Uncaught '.get_class($throwable).': '.$throwable->getMessage();
   }
-  return FALSE;
+
+  exit(255);
 }
 
-/*! \brief Returns SSL URL to redirect to
+/*!
+ * \brief Dummy error handler
  */
-function sslUrl ()
+function dummy_error_handler ()
 {
-  $ssl = 'https://';
-  if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
-    $ssl .= $_SERVER['HTTP_HOST'];
-  } else {
-    $ssl .= $_SERVER['HTTP_X_FORWARDED_HOST'];
-  }
-  if (empty($_SERVER['REQUEST_URI'])) {
-    $ssl .= $_SERVER['PATH_INFO'];
-  } else {
-    $ssl .= $_SERVER['REQUEST_URI'];
-  }
-  return $ssl;
 }
 
 /* Bail out for incompatible/old PHP versions */
@@ -344,28 +337,30 @@ $error_collector        = "";
 $error_collector_mailto = "";
 
 set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE | E_STRICT);
+set_exception_handler('fusiondirectoryExceptionHandler');
 
-$variables_order = "ES";
-ini_set("track_vars", 1);
-ini_set("display_errors", 1);
-ini_set("report_memleaks", 1);
-ini_set("include_path", ".:$BASE_DIR/include:".PHP_DIR.":".PEAR_DIR);
+$variables_order = 'ES';
+ini_set('track_vars',       '1');
+ini_set('display_errors',   '1');
+ini_set('report_memleaks',  '1');
+ini_set('include_path',     ".:$BASE_DIR/include:".PHP_DIR.':'.PEAR_DIR);
 
 /* Do smarty setup */
 require(SMARTY);
 
 $smarty = new Smarty;
 
-$smarty->template_dir = $BASE_DIR.'/ihtml/';
-$smarty->caching      = FALSE;
+$smarty->setTemplateDir($BASE_DIR.'/ihtml/');
+$smarty->caching      = Smarty::CACHING_OFF;
 $smarty->assign('css_files', []);
 $smarty->assign('js_files', []);
 
+$smarty->registerPlugin('modifier', 'base64_encode', 'base64_encode');
+
 $smarty->php_handling = Smarty::PHP_REMOVE;
 
 /* Check for SSL connection */
 $ssl = '';
-if (!sslOn()) {
-  $ssl = sslUrl();
+if (!URL::sslOn()) {
+  $ssl = URL::getSslUrl();
 }
-?>
diff --git a/include/select/class_filterLDAPBlacklist.inc b/include/select/class_filterLDAPBlacklist.inc
deleted file mode 100644
index c8844e14b328f071b7f83b1acbd8b517fa6776a7..0000000000000000000000000000000000000000
--- a/include/select/class_filterLDAPBlacklist.inc
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \brief filterLDAP backend with blacklist/whitelist handling
- */
-class filterLDAPBlacklist {
-
-  static function query ($parent, $base, $scope, $filter, $attributes, $category, $objectStorage = "")
-  {
-    $result = filterLDAP::query($parent, $base, $scope, $filter, $attributes, $category, $objectStorage);
-    return filterLDAPBlacklist::filterByBlacklist($result);
-  }
-
-  static function filterByBlacklist ($entries)
-  {
-    if (session::is_set('filterWhitelist')) {
-      $wlist = session::get('filterWhitelist');
-      if (!empty($wlist)) {
-        foreach ($entries as $id => $entry) {
-          if (in_array($entry['dn'], $wlist['dn'])) {
-            continue;
-          }
-          foreach ($wlist['branches'] as $branch) {
-            if (preg_match('/'.preg_quote($branch, '/').'$/', $entry['dn'])) {
-              continue 2;
-            }
-          }
-          unset($entries[$id]);
-        }
-      }
-    }
-    if (session::is_set('filterBlacklist')) {
-      $blist = session::get('filterBlacklist');
-      foreach ($blist as $attr_name => $attr_values) {
-        foreach ($attr_values as $match) {
-          foreach ($entries as $id => $entry) {
-            if (isset($entry[$attr_name])) {
-              $test = $entry[$attr_name];
-              if (!is_array($test)) {
-                $test = [$test];
-              }
-              if (in_array($match, $test)) {
-                unset($entries[$id]);
-              }
-            }
-          }
-        }
-      }
-    }
-    return array_values($entries);
-  }
-}
-?>
diff --git a/include/select/groupSelect/group-filter.tpl b/include/select/groupSelect/group-filter.tpl
deleted file mode 100644
index f0784fd8400bc9f6053d4464ff210688df008fa0..0000000000000000000000000000000000000000
--- a/include/select/groupSelect/group-filter.tpl
+++ /dev/null
@@ -1,19 +0,0 @@
-<div class="contentboxh">
- <p>{t}Filter{/t}</p>
-</div>
-
-<div class="contentboxb">
-  {$PRIMARY}&nbsp;<label for="PRIMARY">{t}Show primary groups{/t}</label><br/>
-  {$SAMBA}&nbsp;<label for="SAMBA">{t}Show samba groups{/t}</label><br/>
-  {$MAIL}&nbsp;<label for="MAIL">{t}Show mail groups{/t}</label><br/>
-
-  <hr/>
-  {$SCOPE}
-  <hr/>
-
-  <label for="NAME"><img src="geticon.php?context=actions&amp;icon=system-search&amp;size=16"/></label>{$NAME}
-
-  <div>
-    {$APPLY}
-  </div>
-</div>
diff --git a/include/select/groupSelect/group-filter.xml b/include/select/groupSelect/group-filter.xml
deleted file mode 100644
index 6f9ffa483291c80ec2369eced469a2feb6019371..0000000000000000000000000000000000000000
--- a/include/select/groupSelect/group-filter.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<filterdef>
-  <definition>
-    <category>group</category>
-    <template>../include/select/groupSelect/group-filter.tpl</template>
-    <initial>true</initial>
-  </definition>
-
-  <search>
-    <query>
-      <backend>LDAPBlacklist</backend>
-      <filter>(&amp;(objectClass=posixGroup)$NAME(|$PRIMARY$MAIL$SAMBA))</filter>
-      <attribute>dn</attribute>
-      <attribute>objectClass</attribute>
-      <attribute>cn</attribute>
-      <attribute>description</attribute>
-    </query>
-    <scope>auto</scope>
-  </search>
-
-  <element>
-    <type>checkbox</type>
-    <tag>PRIMARY</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=posixGroup)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>MAIL</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=gosaMailAccount)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>SAMBA</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=sambaGroupMapping)</set>
-  </element>
-
-  <element>
-    <type>textfield</type>
-    <tag>NAME</tag>
-    <size>20</size>
-    <maxlength>60</maxlength>
-    <default></default>
-    <unset></unset>
-    <set>(|(cn=*$*)(description=*$*))</set>
-    <alphabet>true</alphabet>
-    <autocomplete>
-      <backend>LDAPBlacklist</backend>
-      <filter>(&amp;(objectClass=posixGroup)(|(cn=*$NAME*)(description=*$NAME*)))</filter>
-      <attribute>cn</attribute>
-      <attribute>description</attribute>
-      <frequency>0.5</frequency>
-      <characters>3</characters>
-    </autocomplete>
-  </element>
-</filterdef>
diff --git a/include/select/userSelect/class_userSelect.inc b/include/select/userSelect/class_userSelect.inc
deleted file mode 100644
index 2d9640afaadbac78358eee14952ae017f606297c..0000000000000000000000000000000000000000
--- a/include/select/userSelect/class_userSelect.inc
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \brief User selection
- */
-class userSelect extends simpleSelectManagement
-{
-  protected $objectTypes          = ['user'];
-  protected $autoFilterAttributes = ['dn', 'cn', 'uid', 'description', 'mail'];
-
-  function parseXML ($file)
-  {
-    $data = parent::parseXML($file);
-    $data['list']['table']['layout'] = '|20px;c||||';
-    $columns = [
-       [
-        'label'         => _('Login'),
-        'sortAttribute' => 'uid',
-        'sortType'      => 'string',
-        'value'         => '%{filter:selectLink(pid,row,dn,uid)}',
-        'export'        => 'true',
-       ],
-    ];
-    array_splice($data['list']['table']['column'], 2, 0, $columns);
-    return $data;
-  }
-}
-
-/*!
- * \brief User selection limited to one user
- */
-class singleUserSelect extends userSelect
-{
-  protected $multiSelect = FALSE;
-}
-?>
diff --git a/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc b/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc
index 7e14879e14e651701a852a3a6fb765c04e832f0a..0e02df61e3f8b6241e28db7edd3352481d047cff 100644
--- a/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc
+++ b/include/simpleplugin/attributes/class_BaseSelectorAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
@@ -21,7 +21,7 @@
 /*! \brief This class allow to handle easily an Base selector attribute
  *
  */
-class BaseSelectorAttribute extends Attribute
+class BaseSelectorAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   private $baseSelector = NULL;
   private $orig_dn      = NULL;
@@ -46,7 +46,7 @@ class BaseSelectorAttribute extends Attribute
     $this->ou = $ou;
   }
 
-  function setManagedAttributes ($dontcare)
+  function setManagedAttributes (array $dontcare)
   {
     trigger_error('method setManagedAttributes is not supported for BaseSelectorAttribute');
   }
@@ -59,9 +59,9 @@ class BaseSelectorAttribute extends Attribute
       if ($this->plugin->is_template) {
         $this->ou = 'ou=templates,'.$this->ou;
       }
-      if ($this->plugin->dn == "new") {
+      if ($this->plugin->dn == 'new') {
         $ui = get_userinfo();
-        $this->setValue(dn2base(session::is_set("CurrentMainBase") ? "cn=dummy,".session::get("CurrentMainBase") : $ui->dn));
+        $this->setValue($ui->getCurrentBase());
       } else {
         $this->setValue(dn2base($this->plugin->dn, $this->ou));
       }
@@ -81,19 +81,19 @@ class BaseSelectorAttribute extends Attribute
 
   function applyPostValue ()
   {
-    if (!$this->disabled && $this->isVisible()) {
+    if (!$this->disabled && $this->isVisible()
+      && ($this->plugin->acl_is_moveable($this->value) || ($this->plugin->dn == 'new'))) {
       /* Refresh base */
-      if  ($this->plugin->acl_is_moveable($this->value) || ($this->plugin->dn == 'new')) {
-        if (!$this->baseSelector->update()) {
-          if ($this->plugin->dn == 'new') {
-            msg_dialog::display(_('Error'), msgPool::permCreate(), ERROR_DIALOG);
-          } else {
-            msg_dialog::display(_('Error'), msgPool::permMove($this->plugin->dn), ERROR_DIALOG);
-          }
-        }
-        if ($this->value != $this->baseSelector->getBase()) {
-          $this->setValue($this->baseSelector->getBase());
+      if (!$this->baseSelector->update()) {
+        if ($this->plugin->dn == 'new') {
+          $error = new SimplePluginPermissionError($this, msgPool::permCreate());
+        } else {
+          $error = new SimplePluginPermissionError($this, msgPool::permMove($this->plugin->dn));
         }
+        $error->display();
+      }
+      if ($this->value != $this->baseSelector->getBase()) {
+        $this->setValue($this->baseSelector->getBase());
       }
     }
   }
@@ -106,23 +106,23 @@ class BaseSelectorAttribute extends Attribute
     } else {
       /* Check if we are allowed to create/move this user */
       if (($this->orig_dn == 'new') && !$this->plugin->acl_is_createable($this->value)) {
-        return msgPool::permCreate();
+        return new SimplePluginPermissionError($this, msgPool::permCreate());
       } elseif (
         ($this->orig_dn != 'new') &&
         ($this->plugin->dn != $this->orig_dn) &&
         !$this->plugin->acl_is_moveable($this->value)) {
-        return msgPool::permMove($this->plugin->dn);
+        return new SimplePluginPermissionError($this, msgPool::permMove($this->plugin->dn));
       }
       // Check if a wrong base was supplied
       if (!$this->baseSelector->checkLastBaseUpdate()) {
-        return msgPool::check_base();
+        return new SimplePluginCheckError($this, msgPool::check_base());
       }
     }
   }
 
   function checkValue ($value)
   {
-    if (!is_string($value) && (!is_object($value) || !method_exists($value, '__toString' ))) {
+    if (!is_string($value) && (!is_object($value) || !method_exists($value, '__toString'))) {
       throw new InvalidValueException(_('Base field value should always be a string'));
     }
   }
@@ -130,16 +130,11 @@ class BaseSelectorAttribute extends Attribute
   function setValue ($value)
   {
     parent::setValue($value);
-    if (is_object($this->plugin)) {
-      /* Set the new acl base */
-      if ($this->plugin->dn == 'new') {
-        $this->plugin->set_acl_base($this->value);
-        $this->plugin->parent->set_acl_base();
-      }
-
-      if (($this->baseSelector !== NULL) && ($this->baseSelector->getBase() !== $this->value)) {
-        $this->baseSelector->setBase($this->value);
-      }
+    if (is_object($this->plugin) &&
+        ($this->baseSelector !== NULL) &&
+        ($this->baseSelector->getBase() !== $this->value)
+      ) {
+      $this->baseSelector->setBase($this->value);
     }
   }
 
@@ -148,7 +143,7 @@ class BaseSelectorAttribute extends Attribute
     return $this->value;
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $smarty = get_smarty();
     $smarty->assign('usePrototype', 'true');
@@ -156,7 +151,7 @@ class BaseSelectorAttribute extends Attribute
       $display = $this->renderInputField(
         'text', '',
         [
-          'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
+          'value' => $this->getValue()
         ]
       );
     } else {
@@ -165,7 +160,7 @@ class BaseSelectorAttribute extends Attribute
     return $this->renderAcl($display);
   }
 
-  function getHtmlId ()
+  function getHtmlId (): string
   {
     if (isset($this->baseSelector)) {
       return $this->baseSelector->getInputHtmlId();
@@ -174,7 +169,7 @@ class BaseSelectorAttribute extends Attribute
     }
   }
 
-  function serializeAttribute (&$attributes, $form = TRUE)
+  function serializeAttribute (array &$attributes, bool $form = TRUE)
   {
     if (!$form || $this->visible) {
       parent::serializeAttribute($attributes, $form);
diff --git a/include/simpleplugin/attributes/class_BooleanAttribute.inc b/include/simpleplugin/attributes/class_BooleanAttribute.inc
index 8795e6696d4fec5f5183e87fb4ba238b22aed001..4fb4589507eff20c0f5b895798ba4b57f9c14237 100644
--- a/include/simpleplugin/attributes/class_BooleanAttribute.inc
+++ b/include/simpleplugin/attributes/class_BooleanAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2019  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
@@ -21,7 +21,7 @@
 /*! \brief This class allow to handle easily a Boolean LDAP attribute
  *
  */
-class BooleanAttribute extends Attribute
+class BooleanAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   public $trueValue;
   public $falseValue;
@@ -90,22 +90,31 @@ class BooleanAttribute extends Attribute
     }
   }
 
-  function renderFormInput ()
+  function displayValue ($value): string
+  {
+    if ($this->isTemplate() && $this->isTemplatable() && ($value === '%askme%')) {
+      return $value;
+    } else {
+      return ($value ? _('yes') : _('no'));
+    }
+  }
+
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $attributes = ($this->value ? ['checked' => 'checked'] : []);
     if ($this->submitForm) {
-      $js       = 'document.mainform.submit();';
-      $attributes['onChange'] = 'javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8');
+      $js                     = 'document.mainform.submit();';
+      $attributes['onChange'] = 'javascript:'.$js;
     } elseif (!empty($this->managedAttributes)) {
       $js       = $this->managedAttributesJS();
-      $attributes['onChange'] = 'javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8');
+      $attributes['onChange'] = 'javascript:'.$js;
     }
     $display  = $this->renderInputField('checkbox', $id, $attributes);
     return $this->renderAcl($display);
   }
 
-  function renderTemplateInput ()
+  function renderTemplateInput (): string
   {
     if ($this->isTemplatable()) {
       $id = $this->getHtmlId();
@@ -129,7 +138,7 @@ class BooleanAttribute extends Attribute
     }
   }
 
-  protected function managedAttributesJS ()
+  protected function managedAttributesJS (): string
   {
     $js = '';
     $id = $this->getHtmlId();
@@ -149,6 +158,50 @@ class BooleanAttribute extends Attribute
     }
     return $js;
   }
+
+  /*! \brief Apply value from RPC requests
+   *
+   *  \param mixed $value the value
+   */
+  function deserializeValue ($value)
+  {
+    if ($this->disabled) {
+      return new SimplePluginError(
+        $this,
+        htmlescape(sprintf(_('Attribute %s is disabled, its value could not be set'), $this->getLdapName()))
+      );
+    }
+    if ($value === $this->trueValue) {
+      $this->setValue(TRUE);
+    } elseif ($value === $this->falseValue) {
+      $this->setValue(FALSE);
+    } elseif (is_bool($value)) {
+      $this->setValue($value);
+    } elseif ($value === 1) {
+      $this->setValue(TRUE);
+    } elseif ($value === 0) {
+      $this->setValue(FALSE);
+    } else {
+      return new SimplePluginError(
+        $this,
+        htmlescape(sprintf(_('"%s" is not a valid value, should be "%s" or "%s"'), $value, $this->getLdapName(), $this->trueValue, $this->falseValue))
+      );
+    }
+
+    /* No error */
+    return '';
+  }
+
+  function serializeAttribute (array &$attributes, bool $form = TRUE)
+  {
+    if (!$form || $this->visible) {
+      parent::serializeAttribute($attributes, $form);
+      $attributes[$this->getLdapName()]['choices'] = [
+        $this->trueValue  => 'True',
+        $this->falseValue => 'False',
+      ];
+    }
+  }
 }
 
 /*! \brief This class allow to handle easily a Boolean LDAP attribute that triggers a set of objectclasses
@@ -180,7 +233,7 @@ class ObjectClassBooleanAttribute extends BooleanAttribute
     $this->setInLdap(FALSE);
   }
 
-  function loadValue ($attrs)
+  function loadValue (array $attrs)
   {
     if (isset($attrs['objectClass'])) {
       $missing_oc = array_udiff($this->objectclasses, $attrs['objectClass'], 'strcasecmp');
@@ -191,7 +244,7 @@ class ObjectClassBooleanAttribute extends BooleanAttribute
     $this->initialValue = $this->value;
   }
 
-  function fillLdapValue (&$attrs)
+  function fillLdapValue (array &$attrs)
   {
     if ($this->getValue()) {
       $attrs['objectClass'] = array_merge_unique($this->objectclasses, $attrs['objectClass']);
@@ -200,4 +253,3 @@ class ObjectClassBooleanAttribute extends BooleanAttribute
     }
   }
 }
-
diff --git a/include/simpleplugin/attributes/class_CompositeAttribute.inc b/include/simpleplugin/attributes/class_CompositeAttribute.inc
index 887ec74e9a294d2220fff8ca5a11aa2ff6c48712..fbf4fda71f964be20201d498da3e2ad30a34f6cd 100644
--- a/include/simpleplugin/attributes/class_CompositeAttribute.inc
+++ b/include/simpleplugin/attributes/class_CompositeAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
@@ -25,7 +25,7 @@
  * you should inherit this class and write your own readValues and writeValues method
  *
  */
-class CompositeAttribute extends Attribute
+class CompositeAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   public $attributes;
   protected $readFormat;
@@ -40,29 +40,39 @@ class CompositeAttribute extends Attribute
    *  \param string $readFormat the preg_match format that's gonna be used in order to read values from LDAP
    *  \param string $writeFormat the printf format that's gonna be used in order to write values into LDAP
    *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
-   *  \param string $label The label to show for this attribute. Only useful if you put this attribute inside a SetAttribute, or if you use a specific template that needs it.
+   *  \param ?string $label The label to show for this attribute. Only useful if you put this attribute inside a SetAttribute, or if you use a specific template that needs it.
    */
-  function __construct ($description, $ldapName, $attributes, $readFormat, $writeFormat, $acl = "", $label = NULL)
+  function __construct (string $description, string $ldapName, array $attributes, $readFormat, $writeFormat, string $acl = '', string $label = NULL)
   {
     if ($label === NULL) {
       $label = $ldapName;
     }
-    parent::__construct($label, $description, $ldapName, FALSE, "", $acl);
+    parent::__construct($label, $description, $ldapName, FALSE, '', $acl);
     $this->readFormat   = $readFormat;
     $this->writeFormat  = $writeFormat;
     $this->setAttributes($attributes);
   }
 
-  function setAttributes ($attributes)
+  function setAttributes (array $attributes)
   {
     $this->attributes   = $attributes;
     foreach ($this->attributes as &$attribute) {
       $attribute->setAcl($this->getAcl());
+      $attribute->setParent($this->plugin);
     }
     unset($attribute);
   }
 
-  function setAcl ($acl)
+  function setIsSubAttribute (bool $bool)
+  {
+    parent::setIsSubAttribute($bool);
+    foreach ($this->attributes as &$attribute) {
+      $attribute->setIsSubAttribute($this->isSubAttribute);
+    }
+    unset($attribute);
+  }
+
+  function setAcl (string $acl)
   {
     parent::setAcl($acl);
     foreach ($this->attributes as &$attribute) {
@@ -80,17 +90,25 @@ class CompositeAttribute extends Attribute
     unset($attribute);
   }
 
-  function setManagedAttributes ($dontcare)
+  function setManagedAttributes (array $dontcare)
   {
     trigger_error('method setManagedAttributes is not supported for CompositeAttribute');
   }
 
-  function setLinearRendering ($bool)
+  function setLinearRendering (bool $bool)
   {
     $this->linearRendering = $bool;
   }
 
-  function readValues ($value)
+  function loadValue (array $attrs)
+  {
+    parent::loadValue($attrs);
+    foreach ($this->attributes as $attribute) {
+      $attribute->setInitialValue($attribute->getValue());
+    }
+  }
+
+  function readValues (string $value): array
   {
     $res = preg_match($this->readFormat, $value, $m);
     if ($res === 1) {
@@ -112,7 +130,7 @@ class CompositeAttribute extends Attribute
     return array_fill(0, count($this->attributes), '');
   }
 
-  function writeValues ($values)
+  function writeValues (array $values)
   {
     if ($this->writeFormat === FALSE) {
       return $values;
@@ -186,16 +204,15 @@ class CompositeAttribute extends Attribute
     return $this->writeValues($values);
   }
 
-  function getArrayValue ()
+  function getArrayValue (): array
   {
-    $values = array_map(
+    return array_map(
       function ($a)
       {
         return $a->displayValue($a->getValue());
       },
       $this->attributes
     );
-    return $values;
   }
 
   function check ()
@@ -213,22 +230,22 @@ class CompositeAttribute extends Attribute
     unset($attribute);
   }
 
-  function renderAttribute (&$attributes, $readOnly)
+  function renderAttribute (array &$attributes, bool $readOnly, bool $readable, bool $writable)
   {
     if ($this->visible) {
       if ($this->linearRendering) {
-        parent::renderAttribute($attributes, $readOnly);
+        parent::renderAttribute($attributes, $readOnly, $readable, $writable);
       } else {
         foreach ($this->attributes as &$attribute) {
           $attribute->setDisabled($this->disabled);
-          $attribute->renderAttribute($attributes, $readOnly);
+          $attribute->renderAttribute($attributes, $readOnly, $readable, $writable);
         }
         unset($attribute);
       }
     }
   }
 
-  function getForHtmlId ()
+  function getForHtmlId (): string
   {
     // Label (if any) should point to the first attribute
     if (isset($this->attributes[0])) {
@@ -238,7 +255,7 @@ class CompositeAttribute extends Attribute
     }
   }
 
-  function serializeAttribute (&$attributes, $form = TRUE)
+  function serializeAttribute (array &$attributes, bool $form = TRUE)
   {
     if ($form) {
       if ($this->visible) {
@@ -261,20 +278,20 @@ class CompositeAttribute extends Attribute
     }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $display = "";
     foreach ($this->attributes as &$attribute) {
       $attribute->setDisabled($this->disabled);
       if ($attribute->isVisible()) {
-        $display .= '<label for="'.$attribute->getForHtmlId().'">'.$attribute->getLabel().'</label>'." ".$attribute->renderFormInput()." ";
+        $display .= '<label for="'.$attribute->getForHtmlId().'" class="subattribute">'.$attribute->getLabel().'</label>'." ".$attribute->renderFormInput()." ";
       }
     }
     unset($attribute);
     return $display;
   }
 
-  public function htmlIds ()
+  public function htmlIds (): array
   {
     $ret = [];
     foreach ($this->attributes as &$attribute) {
diff --git a/include/simpleplugin/attributes/class_DateAttribute.inc b/include/simpleplugin/attributes/class_DateAttribute.inc
index 2f7d9bca7e48259a42d24cabe87fecb9d4ca7474..59820d400143877beb160a3dca7b3380a3875052 100644
--- a/include/simpleplugin/attributes/class_DateAttribute.inc
+++ b/include/simpleplugin/attributes/class_DateAttribute.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+
+  Copyright (C) 2012-2019  FusionDirectory
 
   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
@@ -22,9 +23,11 @@
  *
  * We are using UTC timezone because we don't care about time, we just want date.
  */
-class DateAttribute extends Attribute
+class DateAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   protected $format;
+  protected $minDate = NULL;
+  protected $maxDate = NULL;
 
   /*! \brief The constructor of DateAttribute
    *
@@ -34,12 +37,28 @@ class DateAttribute extends Attribute
    *  \param boolean $required Is this attribute mandatory or not
    *  \param string $format The date format. It can be any format recognized by DateTime::format. see http://www.php.net/manual/fr/function.date.php
    *  \param mixed $defaultValue The default value for this attribute
+   *  \param mixed $min Minimum valid value
+   *  \param mixed $max Maximum valid value
    *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
    */
-  function __construct ($label, $description, $ldapName, $required, $format, $defaultValue = 'now', $acl = "")
+  function __construct (string $label, string $description, string $ldapName, bool $required, string $format, $defaultValue = 'today', $min = NULL, $max = NULL, string $acl = '')
   {
     parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->format = $format;
+    if ($min !== NULL) {
+      try {
+        $this->minDate = new DateTime($min, new DateTimeZone('UTC'));
+      } catch (Exception $e) {
+        // Failed to parse min date, ignore
+      }
+    }
+    if ($max !== NULL) {
+      try {
+        $this->maxDate = new DateTime($max, new DateTimeZone('UTC'));
+      } catch (Exception $e) {
+        // Failed to parse max date, ignore
+      }
+    }
   }
 
   function inputValue ($value)
@@ -60,29 +79,24 @@ class DateAttribute extends Attribute
       return $this->value;
     } else {
       try {
-        return $this->getDateValue()->format('d.m.Y');
+        return $this->getDateValue()->format('Y-m-d');
       } catch (Exception $e) {
-        if ($this->isTemplate() && preg_match('/%/', $this->value)) {
-          return $this->value;
-        } else {
-          return '';
-        }
+        return $this->value;
       }
     }
   }
 
   protected function ldapToDate ($ldapValue)
   {
-    $date = DateTime::createFromFormat($this->format, $ldapValue, new DateTimeZone('UTC'));
+    $date = DateTime::createFromFormat('!'.$this->format, $ldapValue, new DateTimeZone('UTC'));
     if ($date !== FALSE) {
       return $date;
     } else {
-      trigger_error('LDAP value for '.$this->getLdapName().' was not in the right date format.');
-      return new DateTime($ldapValue, new DateTimeZone('UTC'));
+      return $ldapValue;
     }
   }
 
-  protected function dateToLdap ($dateValue)
+  protected function dateToLdap (DateTime $dateValue)
   {
     return $dateValue->format($this->format);
   }
@@ -91,7 +105,16 @@ class DateAttribute extends Attribute
   {
     $value = $this->value;
     if (!($value instanceof DateTime)) {
-      $value = new DateTime($value, new DateTimeZone('UTC'));
+      try {
+        $value = new DateTime($value, new DateTimeZone('UTC'));
+      } catch (Exception $e) {
+        /* Fallback to LdapGeneralizedTime to accept LDAP format */
+        try {
+          $value = LdapGeneralizedTime::fromString($value);
+        } catch (LdapGeneralizedTimeBadFormatException $e2) {
+          throw $e;
+        }
+      }
     }
     return $value;
   }
@@ -104,11 +127,7 @@ class DateAttribute extends Attribute
       try {
         $this->setValue($this->getDateValue());
       } catch (Exception $e) {
-        if ($this->isTemplate() && preg_match('/%/', $this->value)) {
-          return $this->value;
-        } else {
-          throw $e;
-        }
+        return $this->value;
       }
     }
     return $this->dateToLdap($this->value);
@@ -120,41 +139,65 @@ class DateAttribute extends Attribute
     if (!empty($error)) {
       return $error;
     } else {
-      if ($this->value instanceof DateTime) {
-        return;
-      } else {
-        try {
-          $this->getDateValue();
-        } catch (Exception $e) {
-          if ($this->isTemplate() && preg_match('/%/', $this->value)) {
-            return;
-          } else {
-            return sprintf(_('Error, incorrect date: %s'), $e->getMessage());
-          }
+      if (empty($this->value)) {
+        return '';
+      }
+      try {
+        $dateValue = $this->getDateValue();
+        if (($this->minDate !== NULL) && ($dateValue < $this->minDate)) {
+          return new SimplePluginCheckError(
+            $this,
+            SimplePluginCheckError::invalidValue(sprintf(_('%s is older than %s'), $dateValue->format('Y-m-d'), $this->minDate->format('Y-m-d')))
+          );
+        }
+        if (($this->maxDate !== NULL) && ($dateValue > $this->maxDate)) {
+          return new SimplePluginCheckError(
+            $this,
+            SimplePluginCheckError::invalidValue(sprintf(_('%s is newer than %s'), $dateValue->format('Y-m-d'), $this->maxDate->format('Y-m-d')))
+          );
+        }
+      } catch (Exception $e) {
+        if ($this->isTemplate() && preg_match('/%/', $this->value)) {
+          return '';
+        } else {
+          return new SimplePluginCheckError(
+            $this,
+            SimplePluginCheckError::invalidValue(sprintf(_('Incorrect date: %s'), $e->getMessage())),
+            0,
+            $e
+          );
         }
       }
+      return '';
     }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
+  {
+    $attributes = [
+      'value'   => $this->getValue(),
+      'pattern' => '[0-9]{4}-[0-9]{2}-[0-9]{2}',
+    ];
+    if ($this->minDate !== NULL) {
+      $attributes['min'] = $this->minDate->format('Y-m-d');
+    }
+    if ($this->maxDate !== NULL) {
+      $attributes['max'] = $this->maxDate->format('Y-m-d');
+    }
+    $display = $this->renderInputField('date', $this->getHtmlId(), $attributes);
+    return $this->renderAcl($display);
+  }
+
+  function renderTemplateInput (): string
   {
-    $smarty = get_smarty();
-    $smarty->assign('usePrototype', 'true');
     $id = $this->getHtmlId();
-    $display = $this->renderInputField(
-      'text', $id,
-      [
-        'value' => '{literal}'.$this->getValue().'{/literal}',
-        'class' => 'date'
-      ]
-    );
-    $display  .= '{if $'.$this->getAcl().'ACL|regex_replace:"/[cdmr]/":"" == "w"}'.
-        '<script type="text/javascript">
-          {literal}
-          var datepicker  = new DatePicker({ relative : \''.$id.'\', language : \'{/literal}{$lang}{literal}\', keepFieldEmpty : true, enableCloseEffect : false, enableShowEffect : false });
-          {/literal}
-        </script>
-        {/if}';
+    $attributes = [
+      'value' => $this->getValue()
+    ];
+    if ($this->isSubAttribute) {
+      $attributes['class'] = 'subattribute';
+    }
+    $display = $this->renderInputField('text', $id, $attributes);
     return $this->renderAcl($display);
   }
 }
@@ -164,9 +207,9 @@ class DateAttribute extends Attribute
  */
 class GeneralizedTimeDateAttribute extends DateAttribute
 {
-  function __construct ($label, $description, $ldapName, $required, $defaultValue = 'now', $acl = "")
+  function __construct (string $label, string $description, string $ldapName, bool $required, $defaultValue = 'today', $min = NULL, $max = NULL, string $acl = '')
   {
-    parent::__construct($label, $description, $ldapName, $required, '', $defaultValue, $acl);
+    parent::__construct($label, $description, $ldapName, $required, '', $defaultValue, $min, $max, $acl);
   }
 
   protected function ldapToDate ($ldapValue)
@@ -174,12 +217,11 @@ class GeneralizedTimeDateAttribute extends DateAttribute
     try {
       return LdapGeneralizedTime::fromString($ldapValue);
     } catch (LdapGeneralizedTimeBadFormatException $e) {
-      trigger_error('LDAP value "'.$ldapValue.'" for '.$this->getLdapName().' is not in the right date format.');
-      return new DateTime($ldapValue, timezone::utc());
+      return $ldapValue;
     }
   }
 
-  protected function dateToLdap ($dateValue)
+  protected function dateToLdap (DateTime $dateValue)
   {
     return LdapGeneralizedTime::toString($dateValue);
   }
@@ -216,7 +258,7 @@ class TimeHisAttribute extends CompositeAttribute
     $this->setLinearRendering(TRUE);
   }
 
-  function readValues ($value)
+  function readValues (string $value): array
   {
     $values = parent::readValues($value);
     if ($this->convert) {
@@ -232,7 +274,7 @@ class TimeHisAttribute extends CompositeAttribute
     return $values;
   }
 
-  function writeValues ($values)
+  function writeValues (array $values)
   {
     if ($this->convert) {
       $datetime = new DateTime('T'.implode(':', $values), timezone::getDefaultTimeZone());
@@ -246,7 +288,7 @@ class TimeHisAttribute extends CompositeAttribute
     return parent::writeValues($values);
   }
 
-  function displayValue ($value)
+  function displayValue ($value): string
   {
     $values = parent::readValues($value);
     $datetime = new DateTime('T'.implode(':', $values), timezone::utc());
@@ -317,9 +359,9 @@ class GeneralizedTimeDisplayAttribute extends GeneralizedTimeDateAttribute
 {
   protected $displayFormat;
 
-  function __construct ($label, $description, $ldapName, $required, $defaultValue = '', $format = 'Y-m-d, H:i:s', $acl = '')
+  function __construct (string $label, string $description, string $ldapName, bool $required, $defaultValue = '', $format = 'Y-m-d, H:i:s', $min = NULL, $max = NULL, string $acl = '')
   {
-    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $min, $max, $acl);
     $this->displayFormat = $format;
   }
 
@@ -328,10 +370,60 @@ class GeneralizedTimeDisplayAttribute extends GeneralizedTimeDateAttribute
     return $this->computeLdapValue();
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
+    if (empty($this->value)) {
+      return '';
+    }
     $date = $this->getDateValue();
     $date->setTimezone(timezone::getDefaultTimeZone());
-    return htmlentities($date->format($this->displayFormat), ENT_COMPAT, 'UTF-8');
+    return htmlescape($date->format($this->displayFormat));
+  }
+}
+
+/*!
+ * \brief Date stored as days since Unix epoch. Used by posix plugin.
+ */
+class EpochDaysDateAttribute extends DateAttribute
+{
+  /* 24 * 60 * 60 = 86400 */
+  public static $secondsPerDay = 86400;
+
+  function __construct (string $label, string $description, string $ldapName, bool $required, $defaultValue = 'today', $min = NULL, $max = NULL, string $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, '', $defaultValue, $min, $max, $acl);
+  }
+
+  protected function ldapToDate ($ldapValue)
+  {
+    $date = DateTime::createFromFormat('U', (string)($ldapValue * static::$secondsPerDay), timezone::utc());
+    if ($date !== FALSE) {
+      return $date;
+    } else {
+      trigger_error('LDAP value for '.$this->getLdapName().' was not in the right date format.');
+      return new DateTime($ldapValue, timezone::utc());
+    }
+  }
+
+  protected function dateToLdap (DateTime $dateValue)
+  {
+    return floor($dateValue->format('U') / static::$secondsPerDay);
+  }
+
+  function getEpochDays ()
+  {
+    if (empty($this->value)) {
+      return 0;
+    } else {
+      try {
+        return $this->dateToLdap($this->getDateValue());
+      } catch (Exception $e) {
+        if (is_object($this->plugin) && $this->plugin->is_template) {
+          return $this->value;
+        } else {
+          throw $e;
+        }
+      }
+    }
   }
 }
diff --git a/include/simpleplugin/attributes/class_DisplayAttribute.inc b/include/simpleplugin/attributes/class_DisplayAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..5f6b514f9a7e1f9ac28dea6813ea5bd06d3e1a4a
--- /dev/null
+++ b/include/simpleplugin/attributes/class_DisplayAttribute.inc
@@ -0,0 +1,131 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2021  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief This class allow to display an attribute.
+ *
+ * It can be used to display an attribute value the user is never allowed to modify.
+ * (But FD might edit it)
+ */
+class DisplayLDAPAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
+{
+  protected $allowHTML    = FALSE;
+  protected $allowSmarty  = FALSE;
+
+  function renderFormInput (): string
+  {
+    if ($this->allowHTML) {
+      $value = $this->getValue();
+    } else {
+      $value = htmlescape($this->getValue());
+    }
+    if ($this->allowSmarty) {
+      return $value;
+    } else {
+      return '{literal}'.$value.'{/literal}';
+    }
+  }
+
+  function setAllowHTML (bool $allowHTML)
+  {
+    $this->allowHTML = $allowHTML;
+  }
+
+  function setAllowSmarty (bool $allowSmarty)
+  {
+    $this->allowSmarty = $allowSmarty;
+  }
+}
+
+/*! \brief This class allow to display an attribute.
+ *
+ * It can be used to display an attribute value the user and FD are never allowed to modify.
+ */
+class ReadOnlyLDAPAttribute extends DisplayLDAPAttribute
+{
+  function fillLdapValue (array &$attrs)
+  {
+  }
+}
+
+/*! \brief This class allow to display an attribute.
+ *
+ * It can be used to display an attribute value the user is never allowed to modify.
+ */
+class DisplayLDAPArrayAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
+{
+  protected function loadAttrValue (array $attrs)
+  {
+    if (isset($attrs[$this->getLdapName()]['count'])) {
+      $this->value = [];
+      for ($i = 0; $i < $attrs[$this->getLdapName()]['count']; $i++) {
+        $this->value[] = $attrs[$this->getLdapName()][$i];
+      }
+    }
+  }
+
+  function renderFormInput (): string
+  {
+    $value = $this->getValue();
+    if (is_array($value)) {
+      $value = join(', ', $value);
+    }
+    return '{literal}'.htmlescape($value).'{/literal}';
+  }
+}
+
+/*! \brief This class allow to display a text in front of an attribute.
+ *
+ * For instance, it can be used to display a link.
+ */
+class DisplayAttribute extends DisplayLDAPAttribute
+{
+  function __construct (string $label, string $description, string $ldapName, bool $required = FALSE, $defaultValue = '', string $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    $this->setInLdap(FALSE);
+  }
+}
+
+/*! \brief This class allow to display a link to an object which dn is stored in the attribute
+ */
+class ObjectLinkAttribute extends DisplayLDAPAttribute
+{
+  protected $type;
+
+  function __construct (string $label, string $description, string $ldapName, bool $required, string $type, $defaultValue = '', string $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    $this->type = $type;
+  }
+
+  function renderFormInput (): string
+  {
+    if (empty($this->value)) {
+      return '';
+    }
+
+    try {
+      return objects::link($this->value, $this->type);
+    } catch (NonExistingLdapNodeException $e) {
+      return '<a><img src="geticon.php?context=status&amp;icon=dialog-warning&amp;size=16" alt="warning" class="center"/>&nbsp;'.sprintf(_('Invalid: %s'), $this->value).'</a>';
+    }
+  }
+}
diff --git a/include/simpleplugin/attributes/class_FakeAttribute.inc b/include/simpleplugin/attributes/class_FakeAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..386032822a76302490d7d49efd6710319e344de4
--- /dev/null
+++ b/include/simpleplugin/attributes/class_FakeAttribute.inc
@@ -0,0 +1,37 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2021  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Dummy attribute class in order to give stats information to the template
+ */
+class FakeAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
+{
+  function __construct (string $ldapName)
+  {
+    parent::__construct('Fake one', '', $ldapName, FALSE, '', 'noacl');
+    $this->setInLdap(FALSE);
+  }
+
+  function renderAttribute (array &$attributes, bool $readOnly, bool $readable, bool $writable)
+  {
+    $attributes[$this->getLdapName()] = $this->getValue();
+  }
+}
diff --git a/include/simpleplugin/attributes/class_FileAttribute.inc b/include/simpleplugin/attributes/class_FileAttribute.inc
index 0c58678100187951abfe240f919797579fd37c1f..0a3ce86602fe4ce6694ad51676b7d408eb829bd4 100644
--- a/include/simpleplugin/attributes/class_FileAttribute.inc
+++ b/include/simpleplugin/attributes/class_FileAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
@@ -21,7 +21,7 @@
 /*! \brief This class allow to handle easily an File LDAP attribute
  *
  */
-class FileAttribute extends Attribute
+class FileAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   protected $binary = TRUE;
 
@@ -30,13 +30,34 @@ class FileAttribute extends Attribute
     $this->postValue = $this->value;
     if (!empty($_FILES[$this->getHtmlId()]['name']) && $this->isVisible()) {
       if ($_FILES[$this->getHtmlId()]['size'] <= 0) {
-        msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file is empty")), ERROR_DIALOG);
+        $error = new SimplePluginError(
+          $this,
+          htmlescape(sprintf(
+            _('Cannot read uploaded file: %s'),
+            _('file is empty')
+          ))
+        );
+        $error->display();
       } elseif (!file_exists($_FILES[$this->getHtmlId()]['tmp_name'])) {
         // Is there a tmp file, which we can use ?
-        msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not found")), ERROR_DIALOG);
-      } elseif (!$handle = @fopen($_FILES[$this->getHtmlId()]['tmp_name'], "r")) {
+        $error = new SimplePluginError(
+          $this,
+          htmlescape(sprintf(
+            _('Cannot read uploaded file: %s'),
+            _('file not found')
+          ))
+        );
+        $error->display();
+      } elseif (!$handle = @fopen($_FILES[$this->getHtmlId()]['tmp_name'], 'r')) {
         // Can we open the tmp file, for reading
-        msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not readable")), ERROR_DIALOG);
+        $error = new SimplePluginError(
+          $this,
+          htmlescape(sprintf(
+            _('Cannot read uploaded file: %s'),
+            _('file not readable')
+          ))
+        );
+        $error->display();
       } else {
         // Everything just fine :)
 
@@ -62,14 +83,14 @@ class FileAttribute extends Attribute
     @fclose($handle);
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $display = $this->renderInputField('file', $id);
     return $this->renderAcl($display);
   }
 
-  function displayValue ($value)
+  function displayValue ($value): string
   {
     return sprintf(_('%s (%d bytes)'), $this->getLabel(), mb_strlen($value, '8bit'));
   }
@@ -79,19 +100,33 @@ class FileAttribute extends Attribute
    * \param array &$attributes the attributes array
    * \param boolean $form
    */
-  function serializeAttribute (&$attributes, $form = TRUE)
+  function serializeAttribute (array &$attributes, bool $form = TRUE)
   {
     if (!$form || $this->visible) {
       parent::serializeAttribute($attributes, $form);
 
       if ($this->binary) {
-        $attributes[$this->getLdapName()]['value']    = base64_encode($attributes[$this->getLdapName()]['value']);
-        $attributes[$this->getLdapName()]['default']  = base64_encode($attributes[$this->getLdapName()]['default']);
         $attributes[$this->getLdapName()]['binary']   = TRUE;
       }
     }
   }
 
+  /*! \brief Serialize value for RPC requests
+   *
+   *  \param mixed $value the value
+   */
+  function serializeValue ($value = NULL)
+  {
+    if ($value === NULL) {
+      $value = $this->getValue();
+    }
+    if ($this->binary) {
+      return base64_encode($value);
+    } else {
+      return $value;
+    }
+  }
+
   /*! \brief Apply value from RPC requests
    *
    *  \param mixed $value the value
@@ -99,12 +134,18 @@ class FileAttribute extends Attribute
   function deserializeValue ($value)
   {
     if ($this->disabled) {
-      return sprintf(_('Attribute %s is disabled, its value could not be set'), $this->getLdapName());
+      return new SimplePluginError(
+        $this,
+        htmlescape(sprintf(_('Attribute %s is disabled, its value could not be set'), $this->getLdapName()))
+      );
     }
     if ($this->binary) {
-      $data = base64_decode($value);
+      $data = base64_decode($value, TRUE);
       if ($data === FALSE) {
-        return sprintf(_('Invalid base64 data for attribute %s'), $this->getLdapName());
+        return new SimplePluginError(
+          $this,
+          htmlescape(_('Invalid base64 data'))
+        );
       }
       $this->setValue($data);
     } else {
@@ -156,13 +197,13 @@ class FileDownloadAttribute extends FileAttribute
     }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $display = '';
     if ($this->upload) {
       $display  .= $this->renderInputField('file', $id);
-      $display  .= $this->renderInputField('submit', 'upload'.$id, ['value' => _('Upload')]);
+      $display  .= $this->renderInputField('submit', 'upload'.$id, ['value' => _('Upload'), 'formnovalidate' => 'formnovalidate']);
     }
     if ($this->download) {
       $display  .= $this->renderInputField(
@@ -171,14 +212,14 @@ class FileDownloadAttribute extends FileAttribute
           'title' => _('Download'),
           'alt'   => _('Download'),
           'class' => 'center',
-          'src'   => 'geticon.php?context=actions&amp;icon=document-save&amp;size=16',
+          'src'   => 'geticon.php?context=actions&icon=document-save&size=16',
         ]
       );
     }
     return $this->renderAcl($display);
   }
 
-  public function htmlIds ()
+  public function htmlIds (): array
   {
     $id   = $this->getHtmlId();
     $ids  = [];
@@ -192,12 +233,12 @@ class FileDownloadAttribute extends FileAttribute
     return $ids;
   }
 
-  function renderAttribute (&$attributes, $readOnly)
+  function renderAttribute (array &$attributes, bool $readOnly, bool $readable, bool $writable)
   {
-    if ($this->upload == FALSE) {
-      parent::renderAttribute($attributes, FALSE);
+    if ($this->upload === FALSE) {
+      parent::renderAttribute($attributes, FALSE, $readable, $writable);
     } else {
-      parent::renderAttribute($attributes, $readOnly);
+      parent::renderAttribute($attributes, $readOnly, $readable, $writable);
     }
   }
 }
@@ -253,16 +294,16 @@ class FileTextAreaAttribute extends FileDownloadAttribute
     return str_replace(["\r\n", "\r"], "\n", $value);
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $display  = '<textarea name="'.$id.'_text" id="'.$id.'_text"'.
                 ($this->disabled ? 'disabled="disabled"' : '').'>'.
-                '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}</textarea><br/>';
+                '{literal}'.htmlescape($this->getValue()).'{/literal}</textarea><br/>';
     return $this->renderAcl($display).parent::renderFormInput();
   }
 
-  public function htmlIds ()
+  public function htmlIds (): array
   {
     $id     = $this->getHtmlId();
     $ids    = parent::htmlIds();
@@ -306,11 +347,9 @@ class ImageAttribute extends FileAttribute
     $id = $this->getHtmlId();
     if (!$this->disabled && $this->isVisible()) {
       foreach (array_keys($_POST) as $name) {
-        if (!$this->isRequired()) {
-          if (preg_match('/^'.$id.'_remove_/', $name)) {
-            $this->setPostValue('');
-            break;
-          }
+        if (!$this->isRequired() && preg_match('/^'.$id.'_remove_/', $name)) {
+          $this->setPostValue('');
+          break;
         }
         if (preg_match('/^'.$id.'_upload_/', $name)) {
           parent::loadPostValue();
@@ -361,23 +400,20 @@ class ImageAttribute extends FileAttribute
         }
       } catch (ImagickException $e) {
         /* Store the exception to return it in deserializeValue() */
-        $this->imagickException = $e;
-        msg_dialog::display(
-          _('Error'),
-          sprintf(
-            _('Cannot set "%s" value, it contains invalid data: %s'),
-            ($this->getLabel() != '' ? $this->getLabel() : $this->getLdapName()),
-            $e->getMessage()
-          ),
-          ERROR_DIALOG
+        $this->imagickException = new SimplePluginError(
+          $this,
+          SimplePluginCheckError::invalidValue($e->getMessage()),
+          0,
+          $e
         );
+        $this->imagickException->display();
       }
     } else {
-      msg_dialog::display(
-        _('Error'),
-        _('Cannot save user picture, FusionDirectory requires the PHP module "imagick" to be installed!'),
-        ERROR_DIALOG
+      $error = new SimplePluginError(
+        $this,
+        htmlescape(_('Cannot save user picture, FusionDirectory requires the PHP module "imagick" to be installed!'))
       );
+      $error->display();
     }
   }
 
@@ -392,11 +428,11 @@ class ImageAttribute extends FileAttribute
       return $error;
     }
     if ($this->imagickException !== NULL) {
-      return sprintf(_('Invalid data, Imagick error: "%s"'), $this->imagickException->getMessage());
+      return $this->imagickException;
     }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $this->setValue($this->inputValue($this->getValue()));
     $id = $this->getHtmlId();
@@ -406,15 +442,15 @@ class ImageAttribute extends FileAttribute
                 ($this->disabled ? 'disabled="disabled"' : '').
                 ' src="getbin.php?key='.$key.'"'.
                 ' style="border:1px solid black;"'.
-                ' alt="'.$this->getDescription().'"'.
-                ' title="'.$this->getDescription().'"'.
+                ' alt="'.htmlescape($this->getDescription()).'"'.
+                ' title="'.htmlescape($this->getDescription()).'"'.
                 ' /><br/>';
     $display  .= $this->renderInputField('file', $id);
     $display .= $this->renderInputField(
       'image', $id.'_upload',
       [
         'class' => 'center',
-        'src'   => 'geticon.php?context=actions&amp;icon=upload&amp;size=16',
+        'src'   => 'geticon.php?context=actions&icon=upload&size=16',
         'title' => _('Upload'),
         'alt'   => _('Upload')
       ]
@@ -424,7 +460,7 @@ class ImageAttribute extends FileAttribute
         'image', $id.'_remove',
         [
           'class' => 'center',
-          'src'   => 'geticon.php?context=actions&amp;icon=remove&amp;size=16',
+          'src'   => 'geticon.php?context=actions&icon=remove&size=16',
           'title' => _('Remove'),
           'alt'   => _('Remove')
         ]
@@ -439,7 +475,7 @@ class ImageAttribute extends FileAttribute
     return $this->renderAcl($display);
   }
 
-  public function htmlIds ()
+  public function htmlIds (): array
   {
     $id = $this->getHtmlId();
     return [$id.'_img',$id,'upload'.$id];
@@ -447,7 +483,7 @@ class ImageAttribute extends FileAttribute
 
   /*! \brief Fill LDAP value in the attrs array
    */
-  function fillLdapValue (&$attrs)
+  function fillLdapValue (array &$attrs)
   {
     if ($this->isInLdap()) {
       $value = $this->computeLdapValue();
diff --git a/include/simpleplugin/attributes/class_FlagsAttribute.inc b/include/simpleplugin/attributes/class_FlagsAttribute.inc
index 6c2ad9f7bf98234e867b8a0b133343fbd485a8de..8d5a30755edc865b551c61ef6aa10f618083b5eb 100644
--- a/include/simpleplugin/attributes/class_FlagsAttribute.inc
+++ b/include/simpleplugin/attributes/class_FlagsAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
diff --git a/include/simpleplugin/attributes/class_HiddenAttribute.inc b/include/simpleplugin/attributes/class_HiddenAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..b9d999613f7f3a87ebcc8eca43abac678d3bd990
--- /dev/null
+++ b/include/simpleplugin/attributes/class_HiddenAttribute.inc
@@ -0,0 +1,69 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2021  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Attribute hidden from the user
+ */
+class HiddenAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
+{
+  /*! \brief The constructor of HiddenAttribute
+   *
+   *  \param string $ldapName The name of the attribute in the LDAP (If it's not in the ldap, still provide a unique name)
+   *  \param boolean $required Is this attribute mandatory or not
+   *  \param mixed $defaultValue The default value for this attribute
+   *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
+   *  \param string $label The label to show for this attribute
+   *  \param string $description A more detailed description for the attribute
+   */
+  function __construct (string $ldapName, bool $required = FALSE, $defaultValue = '', string $acl = '', string $label = NULL, string $description = 'hidden')
+  {
+    if ($label === NULL) {
+      $label = $ldapName;
+    }
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    $this->setVisible(FALSE);
+  }
+}
+
+/*!
+ * \brief HiddenAttribute with several values
+ */
+class HiddenArrayAttribute extends HiddenAttribute
+{
+  protected function loadAttrValue (array $attrs)
+  {
+    if (isset($attrs[$this->getLdapName()]['count'])) {
+      $this->value = [];
+      for ($i = 0; $i < $attrs[$this->getLdapName()]['count']; $i++) {
+        $this->value[] = $attrs[$this->getLdapName()][$i];
+      }
+    }
+  }
+
+  public function computeLdapValue ()
+  {
+    if (is_array($this->value)) {
+      return array_values($this->value);
+    } else {
+      return parent::computeLdapValue();
+    }
+  }
+}
diff --git a/include/simpleplugin/attributes/class_IntAttribute.inc b/include/simpleplugin/attributes/class_IntAttribute.inc
index 9ab048fca9f40cd7bfcd72e44b22cbd41c6b6a78..a057292c1ece9feec2c171df13f29c20e6c67d7e 100644
--- a/include/simpleplugin/attributes/class_IntAttribute.inc
+++ b/include/simpleplugin/attributes/class_IntAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2019  FusionDirectory
 
   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
@@ -21,12 +21,11 @@
 /*! \brief This class allow to handle easily an Integer LDAP attribute
  *
  */
-class IntAttribute extends Attribute
+class IntAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   protected $min;
   protected $max;
   protected $step = 1;
-  protected $example;
 
   /*! \brief The constructor of IntAttribute
    *
@@ -44,14 +43,16 @@ class IntAttribute extends Attribute
     parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->min      = ($min === FALSE ? FALSE : $this->inputValue($min));
     $this->max      = ($max === FALSE ? FALSE : $this->inputValue($max));
-    $this->example  = "";
-
-    if (($min !== FALSE) && ($max !== FALSE)) {
-      $this->example = sprintf(_("An integer between %d and %d"), $min, $max);
-    } elseif ($min !== FALSE) {
-      $this->example = sprintf(_("An integer larger than %d"),    $min);
-    } elseif ($max !== FALSE) {
-      $this->example = sprintf(_("An integer smaller than %d"),   $max);
+  }
+
+  public function getExample ()
+  {
+    if (($this->min !== FALSE) && ($this->max !== FALSE)) {
+      return sprintf(_('An integer between %d and %d'), $this->min, $this->max);
+    } elseif ($this->min !== FALSE) {
+      return sprintf(_('An integer larger than %d'),    $this->min);
+    } elseif ($this->max !== FALSE) {
+      return sprintf(_('An integer smaller than %d'),   $this->max);
     }
   }
 
@@ -80,20 +81,31 @@ class IntAttribute extends Attribute
       return $error;
     } elseif ($this->value !== '') {
       if (!is_numeric($this->value)) {
-        return msgPool::invalid($this->getLabel(), $this->value, "/./", $this->example);
+        return new SimplePluginCheckError(
+          $this,
+          SimplePluginCheckError::invalidValue(sprintf(_('"%s" is not an number'), $this->getValue()))
+        );
       }
-      if ((($this->min !== FALSE) && ($this->value < $this->min))
-      || (($this->max !== FALSE) && ($this->value > $this->max))) {
-        return msgPool::invalid($this->getLabel(), $this->value, "/./", $this->example);
+      if (($this->min !== FALSE) && ($this->value < $this->min)) {
+        return new SimplePluginCheckError(
+          $this,
+          SimplePluginCheckError::invalidValue(sprintf(_('%s is smaller than %s'), $this->getValue(), $this->min))
+        );
+      }
+      if (($this->max !== FALSE) && ($this->value > $this->max)) {
+        return new SimplePluginCheckError(
+          $this,
+          SimplePluginCheckError::invalidValue(sprintf(_('%s is larger than %s'), $this->getValue(), $this->max))
+        );
       }
     }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $attributes = [
-      'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
+      'value' => $this->getValue()
     ];
     if ($this->min !== FALSE) {
       $attributes['min'] = $this->min;
@@ -106,21 +118,27 @@ class IntAttribute extends Attribute
     }
     if (!empty($this->managedAttributes)) {
       $js       = $this->managedAttributesJS();
-      $attributes['onChange'] = 'javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8');
+      $attributes['onChange'] = 'javascript:'.$js;
+    }
+    if ($this->isSubAttribute) {
+      $attributes['class'] = 'subattribute';
+    } elseif ($this->isRequired()) {
+      $attributes['required'] = 'required';
     }
     $display = $this->renderInputField('number', $id, $attributes);
     return $this->renderAcl($display);
   }
 
-  function renderTemplateInput ()
+  function renderTemplateInput (): string
   {
     $id = $this->getHtmlId();
-    $display = $this->renderInputField(
-      'text', $id,
-      [
-        'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
-      ]
-    );
+    $attributes = [
+      'value' => $this->getValue()
+    ];
+    if ($this->isSubAttribute) {
+      $attributes['class'] = 'subattribute';
+    }
+    $display = $this->renderInputField('text', $id, $attributes);
     return $this->renderAcl($display);
   }
 }
@@ -150,14 +168,16 @@ class FloatAttribute extends IntAttribute
     parent::__construct($label, $description, $ldapName, $required, $min, $max, $defaultValue, $acl);
 
     $this->step = 0.01;
+  }
 
-    $this->example  = "";
-    if (($min !== FALSE) && ($max !== FALSE)) {
-      $this->example = sprintf(_("A float between %f and %f"), $min, $max);
-    } elseif ($min !== FALSE) {
-      $this->example = sprintf(_("A float larger than %f"),    $min);
-    } elseif ($max !== FALSE) {
-      $this->example = sprintf(_("A float smaller than %f"),   $max);
+  public function getExample ()
+  {
+    if (($this->min !== FALSE) && ($this->max !== FALSE)) {
+      return sprintf(_('A float between %f and %f'),  $this->min, $this->max);
+    } elseif ($this->min !== FALSE) {
+      return sprintf(_('A float larger than %f'),     $this->min);
+    } elseif ($this->max !== FALSE) {
+      return sprintf(_('A float smaller than %f'),    $this->max);
     }
   }
 
diff --git a/include/simpleplugin/attributes/class_MailsAttribute.inc b/include/simpleplugin/attributes/class_MailsAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..8b25c38d282a24b3eb4a991640af07be5e145505
--- /dev/null
+++ b/include/simpleplugin/attributes/class_MailsAttribute.inc
@@ -0,0 +1,127 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class mailAddressSelect extends selectManagement
+{
+  /* Default columns */
+  public static $columns = [
+    ['ObjectTypeColumn', []],
+    ['LinkColumn',       ['attributes' => 'mail',     'label' => 'Email']],
+    ['LinkColumn',       ['attributes' => 'nameAttr', 'label' => 'Name']],
+  ];
+}
+
+/*! \brief Mail address selection dialog
+ */
+class MailSelectDialog extends GenericSelectManagementDialog
+{
+  protected $dialogClass = 'mailAddressSelect';
+}
+
+/*! \brief This class allows to handle an attribute for selecting an mail address
+ *
+ * It looks like a SetAttribute, but clicking "Add (from list)" will open a dialog that allow to select one or more users.
+ *
+ */
+class MailsAttribute extends DialogAttribute
+{
+  protected $dialogClass = 'MailSelectDialog';
+
+  /*! \brief The constructor of MailsAttribute
+   *
+   *  \param string $label The label to show for this attribute
+   *  \param string $description A more detailed description for the attribute
+   *  \param string $ldapName The name of the attribute in the LDAP (If it's not in the ldap, still provide a unique name)
+   *  \param boolean $required Is this attribute mandatory or not
+   *  \param array $defaultValue The default value for this attribute
+   *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
+   */
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = '')
+  {
+    SetAttribute::__construct(new MailAttribute($label, $description, $ldapName, $required, '', $acl), $defaultValue);
+  }
+
+  public function getSelectManagementParameters (): array
+  {
+    return [
+      ['user','group'],
+      TRUE,
+      [
+        'objectClass' => '*',
+        'dn'          => 'raw',
+        'cn'          => '*',
+        'mail'        => '*',
+      ],
+      $this->getFilterBlackList(),
+      [],
+      [
+        ['TabFilterElement',    []],
+        ['FixedFilterElement',  ['(mail=*)']],
+      ]
+    ];
+  }
+
+  function getFilterBlackList ()
+  {
+    return ['mail' => $this->getValue()];
+  }
+
+  function addValue (string $dn, $attrs = NULL)
+  {
+    $value = (($attrs != NULL) ? $attrs['mail'][0] : $dn);
+    if (!in_array($value, $this->value)) {
+      $this->value[]    = $value;
+    }
+  }
+
+  function renderButtons ()
+  {
+    $id = $this->getHtmlId();
+    $buttons  = $this->renderInputField(
+      'submit', 'add'.$id,
+      [
+        'class' => 'subattribute',
+        'value' => msgPool::addButton(FALSE),
+      ]
+    );
+    $buttons  .= $this->renderInputField(
+      'submit', 'add'.$id.'_dialog',
+      [
+        'class' => 'dialog subattribute',
+        'value' => sprintf(_('%s (from list)'), msgPool::addButton(FALSE)),
+      ]
+    );
+    $buttons  .= $this->renderInputField(
+      'submit', 'del'.$id,
+      [
+        'class' => 'subattribute',
+        'value' => msgPool::delButton(FALSE),
+      ]
+    );
+    return $buttons;
+  }
+
+  public function htmlIds (): array
+  {
+    $id = $this->getHtmlId();
+    return ['add'.$id,'add'.$id.'_dialog','del'.$id,'row'.$id];
+  }
+}
diff --git a/include/simpleplugin/attributes/class_ObjectSelectAttribute.inc b/include/simpleplugin/attributes/class_ObjectSelectAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..bbdd4f7873c7b42500a0e842ba6f4459cd874806
--- /dev/null
+++ b/include/simpleplugin/attributes/class_ObjectSelectAttribute.inc
@@ -0,0 +1,86 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \file class_ObjectSelectAttribute.inc
+ * Source code for ObjectSelectAttribute
+ */
+
+/*! \brief This class allows to handle a select attribute which allow to choose an object
+ *
+ */
+class ObjectSelectAttribute extends SelectAttribute
+{
+  protected $objectTypes;
+  protected $storeAttr;
+  protected $displayAttr;
+  protected $objectFilter = '';
+
+  function __construct (string $label, string $description, string $ldapName, bool $required, array $objectTypes, string $storeAttr = 'dn', string $displayAttr = 'nameAttr', $objectFilter = '', $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, [], '', NULL, $acl);
+    $this->objectTypes  = $objectTypes;
+    $this->storeAttr    = $storeAttr;
+    $this->displayAttr  = $displayAttr;
+    $this->objectFilter = $objectFilter;
+  }
+
+  function setParent (&$plugin)
+  {
+    parent::setParent($plugin);
+    if (is_object($this->plugin)) {
+      $this->updateChoices();
+    }
+  }
+
+  function updateChoices ()
+  {
+    $choices = [];
+    $outputs = [];
+    foreach ($this->objectTypes as $objectType) {
+      try {
+        $infos = objects::infos($objectType);
+        $realStoreAttr = $this->storeAttr;
+        if (in_array($this->storeAttr, ['nameAttr','mainAttr'])) {
+          $realStoreAttr = $infos[$this->storeAttr];
+        }
+        $realDisplayAttr = $this->displayAttr;
+        if (in_array($this->displayAttr, ['nameAttr','mainAttr'])) {
+          $realDisplayAttr = $infos[$this->displayAttr];
+        }
+        $attributes = [
+          $realStoreAttr    => (($realStoreAttr == 'dn') ? 'raw' : '1'),
+          $realDisplayAttr  => (($realDisplayAttr == 'dn') ? 'raw' : '1'),
+        ];
+        $objects = objects::ls($objectType, $attributes, NULL, $this->objectFilter);
+        foreach (array_column($objects, $realStoreAttr) as $choice) {
+          $choices[] = $choice;
+        }
+        foreach (array_column($objects, $realDisplayAttr) as $output) {
+          $outputs[] = $output;
+        }
+      } catch (NonExistingObjectTypeException $e) {
+        continue;
+      }
+    }
+    $this->setChoices($choices, $outputs);
+  }
+}
diff --git a/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc b/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc
index 522176c84c96c30bf46df95a352d0ebe7673af37..7b790c35926ea8232b63573ba1093cc2d236f74d 100644
--- a/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc
+++ b/include/simpleplugin/attributes/class_PhoneNumberAttribute.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2016-2018  FusionDirectory
+
+  Copyright (C) 2016-2019  FusionDirectory
 
   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
@@ -21,109 +22,48 @@
 /*!
  * \brief Phone number selection
  */
-class phoneSelect extends simpleSelectManagement
-{
-  protected $multiSelect          = FALSE;
-  protected $autoFilterAttributes = ['dn','cn','ipHostNumber','macAddress','telephoneNumber'];
-  protected $objectTypes          = ['phone'];
-
-  function parseXML ($file)
-  {
-    $data = parent::parseXML($file);
-    /* Add column for phone number */
-    $data['list']['table']['layout'] .= '|';
-    $columns = [
-       [
-        'label'         => _('Number'),
-        'sortAttribute' => 'telephoneNumber',
-        'sortType'      => 'string',
-        'value'         => '%{filter:selectLink(pid,row,dn,telephoneNumber)}',
-        'export'        => 'true',
-       ],
-    ];
-    array_splice($data['list']['table']['column'], 2, 0, $columns);
-    return $data;
-  }
-
-  function configureFilter ()
-  {
-    parent::configureFilter();
-    /* Only display entries with a phone number */
-    $this->filter->query[0]['filter'] = '(&(telephoneNumber=*)'.$this->filter->query[0]['filter'].')';
-  }
-}
-
-/*!
- * \brief Mobile phone number selection
- */
-class mobilePhoneSelect extends phoneSelect
+class phoneSelect extends selectManagement
 {
-  protected $objectTypes = ['mobilePhone'];
+  /* Default columns */
+  public static $columns = [
+    ['ObjectTypeColumn', []],
+    ['LinkColumn',       ['attributes' => 'nameAttr',         'label' => 'Name']],
+    ['LinkColumn',       ['attributes' => 'telephoneNumber',  'label' => 'Number']],
+  ];
 }
 
 /*!
- * \brief Phone number selection allowing both Phone and Mobile phone objects
+ * \brief Phone number selection dialog
  */
-class anyPhoneSelect extends phoneSelect
+class phoneSelectDialog extends GenericSingleSelectManagementDialog
 {
-  protected $objectTypes = ['phone','mobilePhone'];
+  protected $dialogClass = 'phoneSelect';
 }
 
-/*!
- * \brief Phone number selection dialog
+/*! \brief This class allow to handle easily an LDAP attribute that contains a phone number
  */
-class phoneSelectDialog extends GenericDialog
+class PhoneNumberAttribute extends StringAttribute
 {
-  function __construct ($simplePlugin, $attribute, $type)
-  {
-    $this->attribute  = $attribute;
-    switch ($type) {
-      case 'phone':
-        $this->dialog = new phoneSelect();
-        break;
-      case 'mobile':
-        $this->dialog = new mobilePhoneSelect();
-        break;
-      case 'any':
-        $this->dialog = new anyPhoneSelect();
-        break;
-      default:
-        trigger_error('Unknown phone select type '.$type);
-        break;
-    }
-  }
+  protected $trim       = TRUE;
+  protected $inputType  = 'tel';
 
-  function handle_finish ()
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = '', $acl = '', $regexp = '/^[\/0-9 ()+*-]+$/', $example = NULL)
   {
-    $result = $this->dialog->detectPostActions();
-    if (isset($result['targets']) && count($result['targets'])) {
-      $headpage = $this->dialog->getHeadpage();
-      $dn       = $result['targets'][0];
-      $attrs    = $headpage->getEntry($dn);
-      $this->attribute->handleDialogResult($dn, $attrs);
-    }
-    return FALSE;
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl, $regexp, $example);
   }
 }
 
-/*! \brief This class allow to handle easily an LDAP attribute that contains a phone number
- */
-class PhoneNumberAttribute extends TestValidateAttribute
-{
-  protected $trim     = TRUE;
-  protected $testFunc = 'is_phone_nr';
-}
-
 /*! \brief Displays a text field and a button to select the phone from object list
  */
 class PhoneNumberButtonAttribute extends PhoneNumberAttribute
 {
   protected $type;
+  protected $dialogClass = 'phoneSelectDialog';
 
   function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = '', $type = 'phone', $acl = '')
   {
     parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->dialogClass = 'phoneSelectDialog';
+
     if (class_available('phoneGeneric')) {
       $this->type = $type;
     } else {
@@ -131,7 +71,43 @@ class PhoneNumberButtonAttribute extends PhoneNumberAttribute
     }
   }
 
-  function renderFormInput ()
+  public function getSelectManagementParameters (): array
+  {
+    switch ($this->type) {
+      case 'phone':
+        $objectTypes = ['phone'];
+        break;
+      case 'mobile':
+        $objectTypes = ['mobilePhone'];
+        break;
+      case 'any':
+        $objectTypes = ['phone','mobilePhone'];
+        break;
+      default:
+        throw new FusionDirectoryException('Invalid type "'.$this->type.'" for PhoneNumberButtonAttribute');
+    }
+
+    return [
+      $objectTypes,
+      FALSE,
+      [
+        'objectClass'     => '*',
+        'dn'              => 'raw',
+        'cn'              => '*',
+        'ipHostNumber'    => '*',
+        'macAddress'      => '*',
+        'telephoneNumber' => '*',
+      ],
+      [],
+      [],
+      [
+        ['TabFilterElement',    []],
+        ['FixedFilterElement',  ['(telephoneNumber=*)']],
+      ]
+    ];
+  }
+
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $display = parent::renderFormInput();
@@ -139,8 +115,8 @@ class PhoneNumberButtonAttribute extends PhoneNumberAttribute
       $display .= $this->renderAcl($this->renderInputField(
         'image', $id.'_edit',
         [
-          'class' => 'center',
-          'src'   => 'geticon.php?context=actions&amp;icon=document-edit&amp;size=16',
+          'class' => 'center dialog',
+          'src'   => 'geticon.php?context=actions&icon=document-edit&size=16',
           'title' => _('Edit'),
           'alt'   => _('Edit')
         ]
@@ -149,7 +125,7 @@ class PhoneNumberButtonAttribute extends PhoneNumberAttribute
     return $display;
   }
 
-  public function htmlIds ()
+  public function htmlIds (): array
   {
     $ids = parent::htmlIds();
     if ($this->type !== FALSE) {
@@ -166,7 +142,7 @@ class PhoneNumberButtonAttribute extends PhoneNumberAttribute
       if (!$this->disabled && $this->isVisible()) {
         foreach (array_keys($_POST) as $name) {
           if (preg_match('/^'.$id.'_edit_/', $name)) {
-            $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this, $this->type));
+            $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
             break;
           }
         }
@@ -174,10 +150,12 @@ class PhoneNumberButtonAttribute extends PhoneNumberAttribute
     }
   }
 
-  function handleDialogResult ($dn, $attrs)
+  function handleDialogResult ($dn, $entry)
   {
-    if (isset($attrs['telephoneNumber'][0])) {
-      $this->setValue($attrs['telephoneNumber'][0]);
+    if (isset($entry['telephoneNumber'][0])) {
+      $this->setValue($entry['telephoneNumber'][0]);
+    } elseif (isset($entry['telephoneNumber'])) {
+      $this->setValue($entry['telephoneNumber']);
     } else {
       $this->setValue('');
     }
diff --git a/include/simpleplugin/attributes/class_SelectAttribute.inc b/include/simpleplugin/attributes/class_SelectAttribute.inc
index e4797a86f4a05bdd16a2900fc65b25a88611dd4c..0e67fc98c65f165af312567ad9bc3c73f410bfe0 100644
--- a/include/simpleplugin/attributes/class_SelectAttribute.inc
+++ b/include/simpleplugin/attributes/class_SelectAttribute.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+
+  Copyright (C) 2012-2020  FusionDirectory
 
   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
@@ -20,18 +21,23 @@
 
 /*!
  * \file class_SelectAttribute.inc
- * Source code for the Select attributes
+ * Source code for SelectAttribute
  */
 
 /*! \brief This class allow to handle easily a Select LDAP attribute with a set of choices
  *
  */
-class SelectAttribute extends Attribute
+class SelectAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   protected $choices;
   protected $outputs  = NULL;
   protected $size     = 1;
 
+  /*! \brief Valid values which should be hidden from rendered input
+   *
+   * Used by SetAttribute to hide used values */
+  protected $hiddenChoices = [];
+
   /*! \brief The constructor of SelectAttribute
    *
    *  \param string $label The label to show for this attribute
@@ -45,9 +51,6 @@ class SelectAttribute extends Attribute
    */
   function __construct ($label, $description, $ldapName, $required = FALSE, $choices = [], $defaultValue = "", $outputs = NULL, $acl = "")
   {
-    if (!in_array($defaultValue, $choices, TRUE) && isset($choices[0])) {
-      $defaultValue = $choices[0];
-    }
     parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
     $this->setChoices($choices, $outputs);
   }
@@ -57,7 +60,7 @@ class SelectAttribute extends Attribute
    *  \param array $choices The choices this select should offer
    *  \param array $outputs The labels corresponding to the choices, leave to NULL if you want to display the choices themselves
    */
-  function setChoices ($choices, $outputs = NULL)
+  function setChoices (array $choices, array $outputs = NULL)
   {
     $this->outputs = NULL;
     if (!$this->isRequired() && !in_array('', $choices, TRUE)) {
@@ -73,8 +76,12 @@ class SelectAttribute extends Attribute
       }
     }
     $this->choices = $choices;
-    if (!in_array($this->defaultValue, $this->choices, TRUE) && isset($this->choices[0])) {
-      $this->defaultValue = $this->choices[0];
+    if (!in_array($this->defaultValue, $this->choices, TRUE)) {
+      if (isset($this->choices[0])) {
+        $this->defaultValue = $this->choices[0];
+      } else {
+        $this->defaultValue = '';
+      }
     }
     if (is_array($outputs)) {
       $this->setDisplayChoices($outputs);
@@ -82,13 +89,17 @@ class SelectAttribute extends Attribute
     if (!in_array($this->value, $this->choices)) {
       $this->resetToDefault();
     }
+    if (!in_array($this->postValue, $this->choices)) {
+      /* We may be called between readPostValue and applyPostValue */
+      $this->postValue = $this->defaultValue;
+    }
   }
 
   /*! \brief Set the display options of the select attribute
    *
    *  \param array $values The labels corresponding to the choices, in the same order as the choices
    */
-  function setDisplayChoices ($values)
+  function setDisplayChoices (array $values)
   {
     $this->outputs = [];
     $values = array_values($values);
@@ -112,7 +123,12 @@ class SelectAttribute extends Attribute
     return $this->outputs;
   }
 
-  function setRequired ($bool)
+  function setHiddenChoices (array $choices)
+  {
+    $this->hiddenChoices = $choices;
+  }
+
+  function setRequired (bool $bool)
   {
     parent::setRequired($bool);
     $key = array_search("", $this->choices, TRUE);
@@ -121,15 +137,15 @@ class SelectAttribute extends Attribute
       if ($this->outputs !== NULL) {
         unset($this->outputs['']);
       }
-    } elseif (!$this->isRequired() && !in_array("", $this->choices, TRUE)) {
-      $this->choices[] = "";
-      if (($this->outputs !== NULL) && !isset($this->output[''])) {
-        $this->output[''] = _('None');
+    } elseif (!$this->isRequired() && !in_array('', $this->choices, TRUE)) {
+      $this->choices[] = '';
+      if (($this->outputs !== NULL) && !isset($this->outputs[''])) {
+        $this->outputs[''] = _('None');
       }
     }
   }
 
-  function displayValue ($value)
+  function displayValue ($value): string
   {
     if ($this->outputs !== NULL) {
       if (isset($this->outputs[$value])) {
@@ -150,27 +166,45 @@ class SelectAttribute extends Attribute
       return $error;
     } else {
       if (!$this->disabled && !in_array($this->value, $this->choices)) {
-        return sprintf(_('The value "%s" for field "%s" is not in the list of possible choices'), $this->value, $this->getLabel());
+        return new SimplePluginCheckError(
+          $this,
+          SimplePluginCheckError::invalidValue(sprintf(_('"%s" is not in the list of possible choices'), $this->value))
+        );
       }
     }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
-    $smarty = get_smarty();
-    $id = $this->getHtmlId();
-    $smarty->assign($id."_choices", $this->choices);
+    $smarty         = get_smarty();
+    $id             = $this->getHtmlId();
+    $smartyChoices  = array_values(array_diff($this->choices, $this->hiddenChoices));
+    $currentValue   = $this->getValue();
+    if (in_array($currentValue, $this->hiddenChoices)) {
+      $currentValue = '';
+    }
     if ($this->outputs !== NULL) {
-      $outputs = array_values($this->outputs);
+      /* Make sure choices and outputs are in the same order */
+      $smartyOutputs = [];
+      foreach ($smartyChoices as $choice) {
+        $smartyOutputs[] = $this->outputs[$choice];
+      }
     } else {
-      $outputs = $this->choices;
+      $smartyOutputs = $smartyChoices;
+    }
+
+    if (!empty($currentValue) && !in_array($currentValue, $smartyChoices)) {
+      $smartyChoices[] = $currentValue;
+      $smartyOutputs[] = $currentValue;
     }
-    $key = array_search('', $outputs, TRUE);
+
+    $key = array_search('', $smartyOutputs, TRUE);
     if ($key !== FALSE) {
-      $outputs[$key] = '&nbsp;';
+      $smartyOutputs[$key] = '&nbsp;';
     }
-    $smarty->assign($id."_outputs", $outputs);
-    $smarty->assign($id."_selected", $this->getValue());
+    $smarty->assign($id.'_choices',   $smartyChoices);
+    $smarty->assign($id.'_outputs',   $smartyOutputs);
+    $smarty->assign($id.'_selected',  $currentValue);
     $display  = '<select name="'.$id.'" id="'.$id.'" ';
     if ($this->disabled || (count($this->choices) == 0)) {
       $display .= 'disabled="disabled" ';
@@ -180,10 +214,13 @@ class SelectAttribute extends Attribute
     }
     if ($this->submitForm) {
       $js       = 'document.mainform.submit();';
-      $display  .= 'onChange="javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8').'"';
+      $display  .= 'onChange="javascript:'.htmlescape($js).'"';
     } elseif (!empty($this->managedAttributes)) {
       $js       = $this->managedAttributesJS();
-      $display  .= 'onChange="javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8').'"';
+      $display  .= 'onChange="javascript:'.htmlescape($js).'"';
+    }
+    if ($this->isSubAttribute) {
+      $display .= 'class="subattribute" ';
     }
     $display .= '>';
     $display .= '{html_options values=$'.$id.'_choices output=$'.$id.'_outputs selected=$'.$id.'_selected}';
@@ -191,17 +228,17 @@ class SelectAttribute extends Attribute
     return $this->renderAcl($display);
   }
 
-  function serializeAttribute (&$attributes, $form = TRUE)
+  function serializeAttribute (array &$attributes, bool $form = TRUE)
   {
     if (!$form || $this->visible) {
       parent::serializeAttribute($attributes, $form);
 
       if ($this->outputs !== NULL) {
-        $outputs = array_values($this->outputs);
+        $tmpOutputs = array_values($this->outputs);
       } else {
-        $outputs = $this->choices;
+        $tmpOutputs = $this->choices;
       }
-      $attributes[$this->getLdapName()]['choices'] = array_combine($this->choices, $outputs);
+      $attributes[$this->getLdapName()]['choices'] = array_combine($this->choices, $tmpOutputs);
     }
   }
 
@@ -222,35 +259,3 @@ class SelectAttribute extends Attribute
     }
   }
 }
-
-/*! \brief This class allows to handle a select attribute which allow to choose an object
- *
- */
-class ObjectSelectAttribute extends SelectAttribute
-{
-  protected $objectType;
-  protected $objectAttrs  = NULL;
-  protected $objectFilter = '';
-
-  function __construct ($label, $description, $ldapName, $required, $objectType, $objectAttrs = NULL, $objectFilter = '', $acl = "")
-  {
-    parent::__construct($label, $description, $ldapName, $required, [], "", NULL, $acl);
-    $this->objectType   = $objectType;
-    $this->objectAttrs  = $objectAttrs;
-    $this->objectFilter = $objectFilter;
-  }
-
-  function setParent (&$plugin)
-  {
-    parent::setParent($plugin);
-    if (is_object($this->plugin)) {
-      $this->updateChoices();
-    }
-  }
-
-  function updateChoices ()
-  {
-    $objects = objects::ls($this->objectType, $this->objectAttrs, NULL, $this->objectFilter);
-    $this->setChoices(array_keys($objects), array_values($objects));
-  }
-}
diff --git a/include/simpleplugin/attributes/class_SetAttribute.inc b/include/simpleplugin/attributes/class_SetAttribute.inc
index 15ce67e3507bb368483841178b8cea156ea35557..cb0a7de621fe63857559541fd5791311682b0287 100644
--- a/include/simpleplugin/attributes/class_SetAttribute.inc
+++ b/include/simpleplugin/attributes/class_SetAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
@@ -21,7 +21,7 @@
 /*! \brief This class allow to handle easily a multi-valuated attribute
  *
  */
-class SetAttribute extends Attribute
+class SetAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   public $attribute;
   protected $valueUnicity     = TRUE;
@@ -35,7 +35,7 @@ class SetAttribute extends Attribute
    *  \param array $values The default values
    *  \param boolean $valueUnicity Should the value unicity be checked
    */
-  function __construct ($attribute, $values = [], $valueUnicity = TRUE)
+  function __construct (\FusionDirectory\Core\SimplePlugin\Attribute $attribute, array $values = [], bool $valueUnicity = TRUE)
   {
     parent::__construct(
       $attribute->getLabel(),     $attribute->getDescription(),
@@ -44,30 +44,43 @@ class SetAttribute extends Attribute
     );
     $this->attribute = $attribute;
     $this->attribute->setRequired(TRUE);
+    $this->attribute->setIsSubAttribute(TRUE);
     $this->valueUnicity = $valueUnicity;
   }
 
-  function setManagedAttributes ($dontcare)
+  protected function getValueCount ()
+  {
+    return count($this->getValue());
+  }
+
+  function setIsSubAttribute (bool $bool)
+  {
+    parent::setIsSubAttribute($bool);
+    $this->attribute->setIsSubAttribute($this->isSubAttribute);
+  }
+
+  function setManagedAttributes (array $dontcare)
   {
     trigger_error('method setManagedAttributes is not supported for SetAttributes');
   }
 
-  function setLinearRendering ($bool)
+  function setLinearRendering (bool $bool)
   {
     $this->linearRendering = $bool;
   }
 
-  protected function loadAttrValue ($attrs)
+  protected function loadAttrValue (array $attrs)
   {
-    if (isset($attrs[$this->getLdapName()]["count"])) {
+    if (isset($attrs[$this->getLdapName()]['count'])) {
       $this->value = [];
-      for ($i = 0; $i < $attrs[$this->getLdapName()]["count"]; $i++) {
+      for ($i = 0; $i < $attrs[$this->getLdapName()]['count']; $i++) {
         $this->value[] = $attrs[$this->getLdapName()][$i];
       }
+      sort($this->value);
     }
   }
 
-  function getAcl ()
+  function getAcl (): string
   {
     if ($this->attribute === FALSE) {
       return parent::getAcl();
@@ -75,7 +88,15 @@ class SetAttribute extends Attribute
     return $this->attribute->getAcl();
   }
 
-  function setAcl ($acl)
+  function getAclInfo ()
+  {
+    if ($this->attribute === FALSE) {
+      return parent::getAclInfo();
+    }
+    return $this->attribute->getAclInfo();
+  }
+
+  function setAcl (string $acl)
   {
     if ($this->attribute === FALSE) {
       return parent::setAcl($acl);
@@ -130,10 +151,14 @@ class SetAttribute extends Attribute
     if (!empty($error) || ($this->attribute === FALSE)) {
       return $error;
     } else {
-      if (!is_array($this->value)) {
-        return sprintf(_('The value for multivaluated field "%s" is not an array'), $this->getLabel());
+      $values = $this->getValue();
+      if (!is_array($values)) {
+        return new SimplePluginCheckError(
+          $this,
+          SimplePluginCheckError::invalidValue(_('Value is not an array'))
+        );
       }
-      foreach ($this->value as $value) {
+      foreach ($values as $value) {
         $this->attribute->setValue($value);
         $error = $this->attribute->check();
         if (!empty($error)) {
@@ -143,7 +168,7 @@ class SetAttribute extends Attribute
     }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $display      = $this->renderOnlyFormInput();
     $attr_display = $this->renderAttributeInput(FALSE);
@@ -151,7 +176,7 @@ class SetAttribute extends Attribute
     return $this->renderAcl($display).$attr_display.$this->renderAcl($buttons);
   }
 
-  function renderTemplateInput ()
+  function renderTemplateInput (): string
   {
     $display      = $this->renderOnlyFormInput();
     $attr_display = $this->renderAttributeInput(TRUE);
@@ -159,10 +184,10 @@ class SetAttribute extends Attribute
     return $this->renderAcl($display).$attr_display.$this->renderAcl($buttons);
   }
 
-  function renderOnlyFormInput ()
+  function renderOnlyFormInput (): string
   {
-    if (($this->size < 15) && ($this->size < count($this->value))) {
-      $this->size = min(15, count($this->value));
+    if (($this->size < 15) && ($this->size < $this->getValueCount())) {
+      $this->size = min(15, $this->getValueCount());
     }
     $id = $this->getHtmlId();
     $smarty = get_smarty();
@@ -178,7 +203,7 @@ class SetAttribute extends Attribute
   function getDisplayValues ()
   {
     if ($this->attribute === FALSE) {
-      return $this->value;
+      return $this->getValue();
     }
     $attribute = $this->attribute;
     return array_map(
@@ -186,7 +211,7 @@ class SetAttribute extends Attribute
       {
         return $attribute->displayValue($value);
       },
-      $this->value
+      $this->getValue()
     );
   }
 
@@ -205,6 +230,9 @@ class SetAttribute extends Attribute
       return;
     }
     $this->handleEditingValue();
+    if ($this->valueUnicity && ($this->attribute instanceOf SelectAttribute)) {
+      $this->attribute->setHiddenChoices($this->getValue());
+    }
     if ($template) {
       return $this->attribute->renderTemplateInput();
     } else {
@@ -212,35 +240,46 @@ class SetAttribute extends Attribute
     }
   }
 
-  function renderAttribute (&$attributes, $readOnly)
+  function renderAttribute (array &$attributes, bool $readOnly, bool $readable, bool $writable)
   {
     if ($this->attribute === FALSE) {
-      return parent::renderAttribute($attributes, $readOnly);
+      return parent::renderAttribute($attributes, $readOnly, $readable, $writable);
     }
     if ($this->visible) {
       $this->attribute->setDisabled($this->disabled);
       if ($this->linearRendering || $readOnly) {
-        parent::renderAttribute($attributes, $readOnly);
+        parent::renderAttribute($attributes, $readOnly, $readable, $writable);
       } else {
+        if ($this->valueUnicity && ($this->attribute instanceOf SelectAttribute)) {
+          $this->attribute->setHiddenChoices($this->getValue());
+        }
         $attributes[$this->getLdapName()] = [
-          'htmlid'      => $this->getForHtmlId(),
-          'label'       => '{literal}'.$this->getLabel().'{/literal}'.($this->isRequired() ? '{$must}' : ''),
-          'description' => ($this->isRequired() ? sprintf(_("%s (required)"), $this->getDescription()) : $this->getDescription()),
-          'input'       => $this->renderAcl($this->renderOnlyFormInput()),
+          'htmlid'        => $this->getForHtmlId(),
+          'label'         => '{literal}'.htmlescape($this->getLabel()).'{/literal}',
+          'description'   => ($this->isRequired() ? sprintf(_("%s (required)"), $this->getDescription()) : $this->getDescription()),
+          'input'         => $this->renderAcl($this->renderOnlyFormInput()),
+          'subattribute'  => $this->isSubAttribute,
+          'required'      => $this->isRequired(),
+          'readable'      => $readable,
+          'writable'      => $writable,
         ];
         $this->handleEditingValue();
-        $this->attribute->renderAttribute($attributes, $readOnly);
+        $this->attribute->renderAttribute($attributes, $readOnly, $readable, $writable);
         $attributes[$this->getLdapName().'_buttons'] = [
-          'htmlid'      => 'add'.$this->getHtmlId(),
-          'label'       => '',
-          'description' => '',
-          'input'       => $this->renderAcl($this->renderButtons()),
+          'htmlid'        => 'add'.$this->getHtmlId(),
+          'label'         => '',
+          'description'   => '',
+          'input'         => $this->renderAcl($this->renderButtons()),
+          'subattribute'  => TRUE,
+          'required'      => FALSE,
+          'readable'      => $readable,
+          'writable'      => $writable,
         ];
       }
     }
   }
 
-  function serializeAttribute (&$attributes, $form = TRUE)
+  function serializeAttribute (array &$attributes, bool $form = TRUE)
   {
     parent::serializeAttribute($attributes, $form);
     if ($this->attribute === FALSE) {
@@ -257,7 +296,7 @@ class SetAttribute extends Attribute
     }
   }
 
-  function getForHtmlId ()
+  function getForHtmlId (): string
   {
     // Label should point to the attribute
     if (is_object($this->attribute)) {
@@ -270,17 +309,37 @@ class SetAttribute extends Attribute
   function renderButtons ()
   {
     $id = $this->getHtmlId();
-    $buttons  = $this->renderInputField('submit', 'add'.$id, ['value' => '{msgPool type=addButton}']);
-    $buttons .= $this->renderInputField('submit', 'del'.$id, ['value' => '{msgPool type=delButton}']);
+    $buttons  = $this->renderInputField(
+      'submit', 'add'.$id,
+      [
+        'value'           => msgPool::addButton(FALSE),
+        'formnovalidate'  => 'formnovalidate',
+        'class'           => 'subattribute',
+      ]
+    );
+    $buttons .= $this->renderInputField(
+      'submit', 'del'.$id,
+      [
+        'value'           => msgPool::delButton(FALSE),
+        'formnovalidate'  => 'formnovalidate',
+        'class'           => 'subattribute',
+      ]
+    );
     return $buttons;
   }
 
   function computeLdapValue ()
   {
-    return array_values($this->value);
+    $this->sortValues();
+    return array_values($this->getValue());
   }
 
-  public function htmlIds ()
+  protected function sortValues ()
+  {
+    sort($this->value);
+  }
+
+  public function htmlIds (): array
   {
     $id = $this->getHtmlId();
     return array_merge(['add'.$id,'del'.$id,'row'.$id], $this->attribute->htmlIds());
@@ -301,7 +360,7 @@ class SetAttribute extends Attribute
   function getArrayValues ()
   {
     $result = [];
-    foreach ($this->value as $value) {
+    foreach ($this->getValue() as $value) {
       $this->attribute->setValue($value);
       $row = [];
       foreach ($this->attribute->getArrayValue() as $val) {
@@ -312,7 +371,7 @@ class SetAttribute extends Attribute
     return $result;
   }
 
-  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
+  function foreignKeyUpdate ($oldvalue, $newvalue, array $source)
   {
     foreach ($this->value as $key => &$value) {
       if (($source['FIELD'] == 'dn') && ($source['MODE'] == 'move')) {
@@ -336,9 +395,9 @@ class SetAttribute extends Attribute
     unset($value);
   }
 
-  function foreignKeyCheck ($value, $source)
+  function foreignKeyCheck ($value, array $source): bool
   {
-    return in_array($value, $this->value);
+    return in_array($value, $this->getValue());
   }
 
   function setSize ($size)
@@ -361,7 +420,6 @@ class OrderedArrayAttribute extends SetAttribute
 {
   protected $order;
   protected $edit_enabled;
-  protected $height   = 90;
   protected $headers  = FALSE;
 
   /*! \brief The constructor of OrderedArrayAttribute
@@ -378,11 +436,6 @@ class OrderedArrayAttribute extends SetAttribute
     $this->edit_enabled = $edit_enabled;
   }
 
-  function setHeight ($h)
-  {
-    $this->height = $h;
-  }
-
   function setHeaders ($h)
   {
     $this->headers = $h;
@@ -408,14 +461,22 @@ class OrderedArrayAttribute extends SetAttribute
 
   function computeLdapValue ()
   {
+    $this->sortValues();
     $ldapValue = [];
-    foreach ($this->value as $key => $value) {
+    foreach ($this->getValue() as $key => $value) {
       $ldapValue[] = $this->writeValue($key, $value);
     }
     return $ldapValue;
   }
 
-  protected function loadAttrValue ($attrs)
+  protected function sortValues ()
+  {
+    if (!$this->order) {
+      sort($this->value);
+    }
+  }
+
+  protected function loadAttrValue (array $attrs)
   {
     if (isset($attrs[$this->getLdapName()]["count"])) {
       $this->value = [];
@@ -429,18 +490,28 @@ class OrderedArrayAttribute extends SetAttribute
       }
     }
     if ($this->order) {
+      ksort($this->value);
       $this->reIndexValues();
+    } else {
+      $this->sortValues();
     }
   }
 
-  function renderOnlyFormInput ()
+  function renderOnlyFormInput (): string
   {
+    if (($this->size < 15) && ($this->size < $this->getValueCount())) {
+      $this->size = min(15, $this->getValueCount());
+    }
     $id = $this->getHtmlId();
     $div = new divSelectBox('rows'.$id);
     $smarty = get_smarty();
-    $div->SetHeight($this->height);
-    $div->SetHeaders($this->headers);
-    foreach ($this->value as $key => $value) {
+    $height = ($this->size * 26) + 6;
+    if ($this->headers) {
+      $height += 29;
+    }
+    $div->setHeight($height);
+    $div->setHeaders($this->headers);
+    foreach ($this->getValue() as $key => $value) {
       $fields = [];
       foreach ($this->getAttributeArrayValue($key, $value) as $field) {
         if (is_array($field)) {
@@ -453,12 +524,13 @@ class OrderedArrayAttribute extends SetAttribute
         continue;
       }
 
-      list($img, $nbicons) = $this->genRowIcons($key, $value);
-
-      $fields[] = ["html" => $img, "attach" => 'style="border:0px;width:'.($nbicons * 20).'px;"'];
-      $div->AddEntry($fields);
+      list ($img, $nbicons) = $this->genRowIcons($key, $value);
+      if ($nbicons > 0) {
+        $fields[] = ['html' => $img, 'attach' => 'style="border:0px;width:'.($nbicons * 20).'px;"'];
+      }
+      $div->addEntry($fields);
     }
-    $smarty->assign("div_$id", $div->DrawList());
+    $smarty->assign("div_$id", $div->drawList());
     return '{$div_'.$id.'}'."\n";
   }
 
@@ -475,24 +547,28 @@ class OrderedArrayAttribute extends SetAttribute
         $img .= $this->renderInputField(
           'image', $id.'_up_'.$key,
           [
-            'src'   => 'geticon.php?context=actions&amp;icon=view-sort-descending&amp;size=16',
-            'title' => _('Sort up'),
-            'alt'   => _('Sort up'),
-            'class' => 'center'
-          ]
+            'src'             => 'geticon.php?context=actions&icon=view-sort-descending&size=16',
+            'title'           => _('Sort up'),
+            'alt'             => _('Sort up'),
+            'class'           => 'center',
+            'formnovalidate'  => 'formnovalidate',
+          ],
+          FALSE
         );
       } else {
         $img .= '<img src="images/empty.png" alt="" style="width:16px;"/>';
       }
-      if (($key + 1) < count($this->value)) {
+      if (($key + 1) < $this->getValueCount()) {
         $img .= $this->renderInputField(
           'image', $id.'_down_'.$key,
           [
-            'src'   => 'geticon.php?context=actions&amp;icon=view-sort-ascending&amp;size=16',
-            'title' => _('Sort down'),
-            'alt'   => _('Sort down'),
-            'class' => 'center'
-          ]
+            'src'             => 'geticon.php?context=actions&icon=view-sort-ascending&size=16',
+            'title'           => _('Sort down'),
+            'alt'             => _('Sort down'),
+            'class'           => 'center',
+            'formnovalidate'  => 'formnovalidate',
+          ],
+          FALSE
         );
       } else {
         $img .= '<img src="images/empty.png" alt="" style="width:16px;"/>';
@@ -503,21 +579,25 @@ class OrderedArrayAttribute extends SetAttribute
       $img .= $this->renderInputField(
         'image', $id.'_edit_'.$key,
         [
-          'src'   => 'geticon.php?context=actions&amp;icon=document-edit&amp;size=16',
-          'title' => _('Edit'),
-          'alt'   => _('Edit'),
-          'class' => 'center'
-        ]
+          'src'             => 'geticon.php?context=actions&icon=document-edit&size=16',
+          'title'           => _('Edit'),
+          'alt'             => _('Edit'),
+          'class'           => 'center',
+          'formnovalidate'  => 'formnovalidate',
+        ],
+        FALSE
       );
     }
     $img .= $this->renderInputField(
       'image', $id.'_del_'.$key,
       [
-        'src'   => 'geticon.php?context=actions&amp;icon=edit-delete&amp;size=16',
-        'title' => _('Delete'),
-        'alt'   => _('Delete'),
-        'class' => 'center'
-      ]
+        'src'             => 'geticon.php?context=actions&icon=edit-delete&size=16',
+        'title'           => _('Delete'),
+        'alt'             => _('Delete'),
+        'class'           => 'center',
+        'formnovalidate'  => 'formnovalidate',
+      ],
+      FALSE
     );
 
     return  [$img, $nbicons];
@@ -554,7 +634,7 @@ class OrderedArrayAttribute extends SetAttribute
     if ($this->order) {
       if (preg_match('/^'.$id.'_up_/', $postValue)) {
         $key = preg_replace('/^'.$id.'_up_/', '', $postValue);
-        $key = preg_replace('/_[xy]$/', '', $key);
+        $key = (int)preg_replace('/_[xy]$/', '', $key);
 
         $tmp                        = $this->postValue[$key];
         $this->postValue[$key]      = $this->postValue[$key - 1];
@@ -563,7 +643,7 @@ class OrderedArrayAttribute extends SetAttribute
       }
       if (preg_match('/^'.$id.'_down_/', $postValue)) {
         $key = preg_replace('/^'.$id.'_down_/', '', $postValue);
-        $key = preg_replace('/_[xy]$/', '', $key);
+        $key = (int)preg_replace('/_[xy]$/', '', $key);
 
         $tmp                        = $this->postValue[$key];
         $this->postValue[$key]      = $this->postValue[$key + 1];
@@ -571,13 +651,11 @@ class OrderedArrayAttribute extends SetAttribute
         return TRUE;
       }
     }
-    if ($this->edit_enabled) {
-      if (preg_match('/^'.$id.'_edit_/', $postValue)) {
-        $key = preg_replace('/^'.$id.'_edit_/', '', $postValue);
-        $key = preg_replace('/_[xy]$/', '', $key);
-        $this->handleEdit($key);
-        return TRUE;
-      }
+    if ($this->edit_enabled && preg_match('/^'.$id.'_edit_/', $postValue)) {
+      $key = preg_replace('/^'.$id.'_edit_/', '', $postValue);
+      $key = preg_replace('/_[xy]$/', '', $key);
+      $this->handleEdit($key);
+      return TRUE;
     }
     if (preg_match('/^'.$id.'_del_/', $postValue)) {
       $key = preg_replace('/^'.$id.'_del_/', '', $postValue);
@@ -598,7 +676,10 @@ class OrderedArrayAttribute extends SetAttribute
       $this->attribute->loadPostValue();
       $this->attribute->applyPostValue();
       if ($error = $this->attribute->check()) {
-        msg_dialog::display(sprintf(_('Invalid value for %s'), $this->getLabel()), $error);
+        if (is_string($error)) {
+          $error = new SimplePluginCheckError($this, $error);
+        }
+        $error->display();
       } else {
         $this->addPostValue($this->attribute->getValue());
       }
@@ -624,14 +705,14 @@ class OrderedArrayAttribute extends SetAttribute
     }
   }
 
-  public function htmlIds ()
+  public function htmlIds (): array
   {
     $id   = $this->getHtmlId();
     $ids  = ['add'.$id];
     if ($this->attribute !== FALSE) {
       $ids  = array_merge($ids, $this->attribute->htmlIds());
     }
-    $nb_values = count($this->value);
+    $nb_values = $this->getValueCount();
     for ($i = 0; $i < $nb_values; ++$i) {
       if ($this->order) {
         if ($i > 0) {
@@ -649,7 +730,14 @@ class OrderedArrayAttribute extends SetAttribute
   function renderButtons ()
   {
     $id = $this->getHtmlId();
-    $buttons = $this->renderInputField('submit', 'add'.$id, ['value' => '{msgPool type=addButton}']);
+    $buttons = $this->renderInputField(
+      'submit', 'add'.$id,
+      [
+        'value'           => msgPool::addButton(FALSE),
+        'formnovalidate'  => 'formnovalidate',
+        'class'           => 'subattribute',
+      ]
+    );
     return $buttons;
   }
 }
@@ -685,7 +773,7 @@ class SubNodesAttribute extends OrderedArrayAttribute
     }
   }
 
-  protected function loadAttrValue ($attrs)
+  protected function loadAttrValue (array $attrs)
   {
     global $config;
     /* Should we take dn from attrs or plugin? */
@@ -694,7 +782,7 @@ class SubNodesAttribute extends OrderedArrayAttribute
       $ldap->cd($attrs['dn']);
       $ldap->search('objectClass='.$this->objectClass, ['*'], 'one');
       $this->value = [];
-      while ($subattrs = $ldap->fetch()) {
+      while ($subattrs = $ldap->fetch(TRUE)) {
         $this->attribute->resetToDefault();
         foreach ($this->attribute->attributes as &$attribute) {
           $attribute->loadAttrValue($subattrs);
@@ -702,11 +790,12 @@ class SubNodesAttribute extends OrderedArrayAttribute
         unset($attribute);
         $this->value[] = $this->attribute->getValue();
       }
+      sort($this->value);
     }
   }
 
   /* Not saving anything into base node */
-  function fillLdapValue (&$attrs)
+  function fillLdapValue (array &$attrs)
   {
   }
 
@@ -740,7 +829,8 @@ class SubNodesAttribute extends OrderedArrayAttribute
       }
       $ldap->add($attrs);
       if (!$ldap->success()) {
-        msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $dn, LDAP_ADD, get_class()), LDAP_ERROR);
+        $error = new SimplePluginLdapError($this, $dn, LDAP_ADD, $ldap->get_error(), $ldap->get_errno());
+        $error->display();
       }
     }
   }
@@ -749,7 +839,7 @@ class SubNodesAttribute extends OrderedArrayAttribute
   {
     /* Later we might want to be able to choose which attribute to use in the dn */
     reset($this->attribute->attributes);
-    $attribute = key($this->attribute->attributes);
-    return $attribute.'='.$this->attribute->attributes[$attribute]->computeLdapValue().','.$this->plugin->dn;
+    $firstAttribute = key($this->attribute->attributes);
+    return $firstAttribute.'='.$this->attribute->attributes[$firstAttribute]->computeLdapValue().','.$this->plugin->dn;
   }
 }
diff --git a/include/simpleplugin/attributes/class_StringAttribute.inc b/include/simpleplugin/attributes/class_StringAttribute.inc
index a1cebfda5e3f31d502679851a4a5e60092650eff..ca3ab88bfa0a99d1a25db78a798d196151dc610a 100644
--- a/include/simpleplugin/attributes/class_StringAttribute.inc
+++ b/include/simpleplugin/attributes/class_StringAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
@@ -21,12 +21,14 @@
 /*! \brief This class allow to handle easily a String LDAP attribute
  *
  */
-class StringAttribute extends Attribute
+class StringAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
 {
   protected $pattern;
   protected $example;
   protected $autocomplete = NULL;
   protected $trim         = FALSE;
+  protected $inputType    = 'text';
+  protected $html5pattern = NULL;
 
   /*! \brief The constructor of StringAttribute
    *
@@ -42,7 +44,7 @@ class StringAttribute extends Attribute
   function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = "", $acl = "", $regexp = "", $example = NULL)
   {
     parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->pattern = $regexp;
+    $this->setPattern($regexp);
     $this->example = ($example === NULL ? $defaultValue : $example);
   }
 
@@ -51,23 +53,60 @@ class StringAttribute extends Attribute
     $this->example = $example;
   }
 
+  public function getExample ()
+  {
+    return $this->example;
+  }
+
   function setPattern ($pattern)
   {
     $this->pattern = $pattern;
+    if (preg_match('/^(.)\^(.*)\$\1$/', $pattern, $m)) {
+      /* Only convert anchored patterns
+       * First and last characters are the same means no modifiers are in use
+       */
+      $this->html5pattern = $m[2];
+    } else {
+      $this->html5pattern = NULL;
+    }
   }
 
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $attributes = [
-      'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
+      'value' => $this->getValue()
     ];
     if (!empty($this->managedAttributes)) {
       $js       = $this->managedAttributesJS();
-      $attributes['onChange'] = 'javascript:'.htmlentities($js, ENT_COMPAT, 'UTF-8');
+      $attributes['onChange'] = 'javascript:'.$js;
     }
     if ($this->autocomplete !== NULL) {
-      $attributes['autocomplete'] = ($this->autocomplete ? 'on' : 'off' );
+      $attributes['autocomplete'] = $this->autocomplete;
+    }
+    if ($this->html5pattern !== NULL) {
+      $attributes['pattern'] = $this->html5pattern;
+    }
+    if ($this->isSubAttribute) {
+      $attributes['class'] = 'subattribute';
+    } elseif ($this->isRequired()) {
+      $attributes['required'] = 'required';
+    }
+    $display  = $this->renderInputField($this->inputType, $id, $attributes);
+    return $this->renderAcl($display);
+  }
+
+  function renderTemplateInput (): string
+  {
+    $id = $this->getHtmlId();
+    $attributes = [
+      'value' => $this->getValue()
+    ];
+    if ($this->autocomplete !== NULL) {
+      $attributes['autocomplete'] = $this->autocomplete;
+    }
+    if ($this->isSubAttribute) {
+      $attributes['class'] = 'subattribute';
     }
     $display  = $this->renderInputField('text', $id, $attributes);
     return $this->renderAcl($display);
@@ -93,14 +132,21 @@ class StringAttribute extends Attribute
 
   function validate ()
   {
-    if (($this->pattern !== "") && !preg_match($this->pattern, $this->value)) {
-      return msgPool::invalid($this->getLabel(), $this->value, $this->pattern, htmlentities($this->example));
+    if (($this->pattern !== '') && !preg_match($this->pattern, $this->value)) {
+      return new SimplePluginCheckError(
+        $this,
+        SimplePluginCheckError::invalidValue(sprintf('"%s"', $this->getValue()))
+      );
     }
   }
 
-  function setAutocomplete ($bool)
+  function setAutocomplete ($autocomplete)
   {
-    $this->autocomplete = $bool;
+    if (is_bool($autocomplete)) {
+      $this->autocomplete = ($autocomplete ? 'on' : 'off');
+    } else {
+      $this->autocomplete = $autocomplete;
+    }
   }
 
   function getAutocomplete ()
@@ -110,7 +156,7 @@ class StringAttribute extends Attribute
 
   function checkValue ($value)
   {
-    if (!is_scalar($value) && (!is_object($value) || !method_exists($value, '__toString' ))) {
+    if (!is_scalar($value) && (!is_object($value) || !method_exists($value, '__toString'))) {
       throw new InvalidValueException(sprintf(_('StringAttribute "%s" was set to a non-compatible value'), $this->getLabel()));
     }
   }
@@ -138,12 +184,25 @@ class TrimmedStringAttribute extends StringAttribute
  */
 class TextAreaAttribute extends StringAttribute
 {
-  function renderFormInput ()
+  function renderFormInput (): string
   {
     $id = $this->getHtmlId();
     $display  = '<textarea name="'.$id.'" id="'.$id.'"'.
-                ($this->disabled ? ' disabled="disabled"' : '').'>'.
-                '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}</textarea>';
+                ($this->disabled ? ' disabled="disabled"' : '').
+                ($this->isSubAttribute ? ' class="subattribute"' : ($this->isRequired() ? ' required="required"' : '')).
+                '>'.
+                '{literal}'.htmlescape($this->getValue()).'{/literal}</textarea>';
+    return $this->renderAcl($display);
+  }
+
+  function renderTemplateInput (): string
+  {
+    $id = $this->getHtmlId();
+    $display  = '<textarea name="'.$id.'" id="'.$id.'"'.
+                ($this->disabled ? ' disabled="disabled"' : '').
+                ($this->isSubAttribute ? ' class="subattribute"' : '').
+                '>'.
+                '{literal}'.htmlescape($this->getValue()).'{/literal}</textarea>';
     return $this->renderAcl($display);
   }
 }
@@ -153,26 +212,6 @@ class TextAreaAttribute extends StringAttribute
  */
 class PasswordAttribute extends StringAttribute
 {
-  protected $autocomplete = FALSE;
-
-  function renderFormInput ()
-  {
-    $id = $this->getHtmlId();
-    $display  = $this->renderInputField(
-      'password', $id,
-      [
-        'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}',
-        'autocomplete' => ($this->autocomplete ? 'on' : 'off'),
-      ]
-    );
-    if ($this->autocomplete === FALSE) {
-      $display = '{literal}<input autocomplete="off" value="foolautocompleteworkaround" type="text" style="display:none;"/>{/literal}'.$display;
-    }
-    return $this->renderAcl($display);
-  }
-
-  function renderTemplateInput ()
-  {
-    return parent::renderFormInput();
-  }
+  protected $autocomplete = 'new-password';
+  protected $inputType    = 'password';
 }
diff --git a/include/simpleplugin/attributes/dialog/class_ButtonAttribute.inc b/include/simpleplugin/attributes/dialog/class_ButtonAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..dbe84570e4a31df36943967204e17b53582097f6
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_ButtonAttribute.inc
@@ -0,0 +1,64 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Attribute showing a button
+ */
+class ButtonAttribute extends \FusionDirectory\Core\SimplePlugin\Attribute
+{
+  protected $buttonText = NULL;
+  protected $action;
+
+  function __construct ($label, $description, $ldapName, $buttonText, $action = NULL, $defaultValue = "", $acl = "")
+  {
+    parent::__construct($label, $description, $ldapName, FALSE, $defaultValue, $acl);
+    $this->buttonText = $buttonText;
+    if ($action === NULL) {
+      $action = 'handle_'.$ldapName;
+    }
+    $this->action = $action;
+  }
+
+  function renderFormInput (): string
+  {
+    $id = $this->getHtmlId();
+    $display = $this->renderInputField(
+      'submit', $id,
+      ['value' => $this->buttonText]
+    );
+    return $this->renderAcl($display);
+  }
+
+  function loadPostValue ()
+  {
+    $this->postValue = FALSE;
+    if ($this->isVisible() && isset($_POST[$this->getHtmlId()])) {
+      $this->setPostValue(TRUE);
+    }
+  }
+
+  function applyPostValue ()
+  {
+    if (!$this->disabled && $this->isVisible() && $this->postValue) {
+      $func = $this->action;
+      $this->plugin->$func();
+    }
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_DialogAttribute.inc b/include/simpleplugin/attributes/dialog/class_DialogAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a44d79deb239828f2dd95586acb0a630ed25534c
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_DialogAttribute.inc
@@ -0,0 +1,144 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief This class allows to handle an attribute with a popup for selection
+ *
+ * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more items.
+ * It stores their dn as values, but displays the cn.
+ *
+ */
+abstract class DialogAttribute extends SetAttribute
+{
+  protected $dialogClass = NULL;
+
+  /*! \brief The constructor of DialogAttribute
+   *
+   *  \param string $label The label to show for this attribute
+   *  \param string $description A more detailed description for the attribute
+   *  \param string $ldapName The name of the attribute in the LDAP (If it's not in the ldap, still provide a unique name)
+   *  \param boolean $required Is this attribute mandatory or not
+   *  \param array $defaultValue The default value for this attribute
+   *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
+   */
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
+  {
+    \FusionDirectory\Core\SimplePlugin\Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    $this->attribute = FALSE;
+  }
+
+  function addPostValue ($value)
+  {
+    $this->addValue($value, NULL);
+  }
+
+  function delPostValue ($key)
+  {
+    $this->removeValue($key);
+  }
+
+  abstract function addValue (string $dn, $attrs = NULL);
+
+  function searchAndRemove ($value)
+  {
+    $row = array_search($value, $this->value);
+    if ($row !== FALSE) {
+      $this->removeValue($row);
+    }
+  }
+
+  protected function removeValue ($row)
+  {
+    unset($this->value[$row]);
+  }
+
+  abstract function getFilterBlackList ();
+
+  function getFilterWhiteList ()
+  {
+    return [];
+  }
+
+  function loadPostValue ()
+  {
+    parent::loadPostValue();
+    if ($this->isVisible()) {
+      $id = $this->getHtmlId();
+      if (isset($_POST['add'.$id.'_dialog'])) {
+        $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
+      } elseif (isset($_POST['add'.$id]) && isset($_POST[$id]) && $this->isTemplate()) {
+        $this->addPostValue($_POST[$id]);
+      }
+    }
+  }
+
+  function applyPostValue ()
+  {
+  }
+
+  function renderButtons ()
+  {
+    $id = $this->getHtmlId();
+    $buttons            = '';
+    $dialogButtonValue  = msgPool::addButton(FALSE);
+    if ($this->isTemplate()) {
+      $buttons  .= $this->renderInputField(
+        'text', $id,
+        ['value' => $this->editingValue, 'class' => 'subattribute']
+      );
+      $buttons  .= $this->renderInputField(
+        'submit', 'add'.$id,
+        [
+          'value'           => msgPool::addButton(FALSE),
+          'formnovalidate'  => 'formnovalidate',
+          'class'           => 'subattribute',
+        ]
+      );
+      $dialogButtonValue = _('Add (dialog)');
+    }
+    $buttons  .= $this->renderInputField(
+      'submit', 'add'.$id.'_dialog',
+      [
+        'class'           => 'dialog subattribute',
+        'value'           => $dialogButtonValue,
+        'formnovalidate'  => 'formnovalidate',
+      ]
+    );
+    $buttons  .= $this->renderInputField(
+      'submit', 'del'.$id,
+      [
+        'value'           => msgPool::delButton(FALSE),
+        'formnovalidate'  => 'formnovalidate',
+        'class'           => 'subattribute',
+      ]
+    );
+    return $buttons;
+  }
+
+  public function htmlIds (): array
+  {
+    $id = $this->getHtmlId();
+    $ids = ['add'.$id.'_dialog','del'.$id,'row'.$id];
+    if ($this->isTemplate()) {
+      $ids[] = $id;
+      $ids[] = 'add'.$id;
+    }
+    return $ids;
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_DialogButtonAttribute.inc b/include/simpleplugin/attributes/dialog/class_DialogButtonAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e96506c1f6044622e375da4644276f83f6571c45
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_DialogButtonAttribute.inc
@@ -0,0 +1,50 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Attribute showing a button which triggers a dialog
+ */
+class DialogButtonAttribute extends ButtonAttribute
+{
+  protected $dialogClass  = NULL;
+
+  function __construct ($label, $description, $ldapName, $buttonText, $dialogClass, $defaultValue = '', $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $buttonText, NULL, $defaultValue, $acl);
+    $this->dialogClass  = $dialogClass;
+  }
+
+  function applyPostValue ()
+  {
+    if (!$this->disabled && $this->isVisible() && $this->postValue) {
+      $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
+    }
+  }
+
+  function getFilterBlackList ()
+  {
+    return [];
+  }
+
+  function getFilterWhiteList ()
+  {
+    return [];
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_DialogOrderedArrayAttribute.inc b/include/simpleplugin/attributes/dialog/class_DialogOrderedArrayAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..7818821a05b3932d8af8174d43e602f9afe0151f
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_DialogOrderedArrayAttribute.inc
@@ -0,0 +1,95 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief An OrderedArrayAttribute which uses a dialog to create/edit values
+ */
+abstract class DialogOrderedArrayAttribute extends OrderedArrayAttribute
+{
+  protected $dialogClass;
+
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
+  {
+    \FusionDirectory\Core\SimplePlugin\Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+    $this->edit_enabled = TRUE;
+    $this->attribute    = FALSE;
+  }
+
+  function getFilterWhiteList ()
+  {
+    return [];
+  }
+
+  function loadPostValue ()
+  {
+    if ($this->isVisible()) {
+      parent::loadPostValue();
+      parent::applyPostValue();
+      if (isset($_POST['add'.$this->getHtmlId().'_dialog'])) {
+        $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
+      }
+    }
+  }
+
+  protected function handleEdit ($key)
+  {
+    $this->editingValue = $this->value[$key];
+    $this->delPostValue($key);
+    $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this, $this->editingValue));
+  }
+
+  function applyPostValue ()
+  {
+  }
+
+  function addValue (string $dn, $attrs = NULL)
+  {
+    if ($attrs !== NULL) {
+      $this->value[] = $attrs;
+      $this->reIndexValues();
+    }
+  }
+
+  function renderButtons ()
+  {
+    $id = $this->getHtmlId();
+    return $this->renderInputField(
+      'submit', 'add'.$id.'_dialog',
+      [
+        'class'           => 'dialog subattribute',
+        'value'           => msgPool::addButton(FALSE),
+        'formnovalidate'  => 'formnovalidate'
+      ]
+    );
+  }
+
+  public function htmlIds (): array
+  {
+    $ids = parent::htmlIds();
+    $ids[0] .= '_dialog';
+    return $ids;
+  }
+
+  protected function getAttributeArrayValue ($key, $value)
+  {
+    /* Convert text value to displayable array value */
+    die('Pure virtual method');
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_GenericDialog.inc b/include/simpleplugin/attributes/dialog/class_GenericDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..566826d01f46b0764842256dee63794e1219caac
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_GenericDialog.inc
@@ -0,0 +1,71 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief Generic dialog base class
+ */
+abstract class GenericDialog implements FusionDirectoryDialog
+{
+  protected $dialogClass = '';
+  protected $dialog;
+  protected $attribute;
+
+  protected $post_cancel = 'add_cancel';
+  protected $post_finish = 'add_finish';
+
+  function __construct ($simplePlugin, $attribute)
+  {
+    $this->attribute  = $attribute;
+    $this->dialog     = new $this->dialogClass();
+  }
+
+  public function readPost ()
+  {
+    if (isset($_POST[$this->post_cancel])) {
+      $this->handleCancel();
+    } else {
+      $this->dialog->readPost();
+      if (isset($_POST[$this->post_finish]) || isset($_GET[$this->post_finish])) {
+        $this->handleFinish();
+      }
+    }
+  }
+
+  public function update (): bool
+  {
+    if (isset($this->dialog)) {
+      return $this->dialog->update();
+    } else {
+      return FALSE;
+    }
+  }
+
+  public function render (): string
+  {
+    return $this->dialog->render();
+  }
+
+  abstract protected function handleFinish ();
+
+  protected function handleCancel ()
+  {
+    unset($this->dialog);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_GenericDialogAttribute.inc b/include/simpleplugin/attributes/dialog/class_GenericDialogAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..f08945290f5d051ca527e97db4b42de551c60ef7
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_GenericDialogAttribute.inc
@@ -0,0 +1,162 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Base class for DialogAttribute using a GenericDialog derived dialog
+ */
+class GenericDialogAttribute extends DialogAttribute
+{
+  protected $displays     = [];
+  protected $store_attr   = 'dn';
+  protected $display_attr = 'cn';
+
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $store_attr = 'dn', $display_attr = 'cn', $acl = '')
+  {
+    $this->store_attr   = $store_attr;
+    $this->display_attr = $display_attr;
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
+  }
+
+  function getFilterBlackList ()
+  {
+    return [$this->store_attr => $this->getValue()];
+  }
+
+  function addValue (string $dn, $attrs = NULL)
+  {
+    if (
+        ($this->isTemplate() && ($attrs === NULL)) ||
+        ($this->store_attr == 'dn')
+      ) {
+      $value = $dn;
+    } else {
+      $value = $attrs[$this->store_attr][0];
+    }
+    if (!in_array($value, $this->value)) {
+      end($this->value);
+      $new_key = key($this->value) + 1;
+      $this->value[$new_key] = $value;
+      $this->fillDisplayValueFrom($new_key, $attrs);
+    }
+  }
+
+  protected function removeValue ($row)
+  {
+    unset($this->displays[$row]);
+    unset($this->value[$row]);
+  }
+
+  function setValue ($value)
+  {
+    parent::setValue($value);
+    $this->displays = [];
+    $this->getDisplayValues();
+  }
+
+  protected function sortValues ()
+  {
+    asort($this->value);
+  }
+
+  function getDisplayValues ()
+  {
+    foreach (array_keys($this->value) as $i) {
+      if (!isset($this->displays[$i])) {
+        $this->fillDisplayValue($i);
+      }
+    }
+    return $this->displays;
+  }
+
+  function setDisplayValues (array $array)
+  {
+    $this->displays = $array;
+  }
+
+  protected function fillDisplayValue ($i)
+  {
+    global $config;
+    $ldap = $config->get_ldap_link();
+
+    $value = $this->value[$i];
+    if ($this->store_attr == 'dn') {
+      $ldap->cat($value, $this->ldapAttributesToGet());
+    } else {
+      $ldap->cd($config->current['BASE']);
+      $ldap->search('('.$this->store_attr.'='.ldap_escape_f($value).')', $this->ldapAttributesToGet());
+    }
+    $attrs = $ldap->fetch(TRUE);
+    if (empty($attrs) && $this->isTemplate()) {
+      $this->fillDisplayValueFrom($i, NULL);
+    } else {
+      $this->fillDisplayValueFrom($i, $attrs);
+    }
+  }
+
+  protected function ldapAttributesToGet ()
+  {
+    return [$this->display_attr];
+  }
+
+  protected function fillDisplayValueFrom ($i, $attrs)
+  {
+    if ($this->isTemplate() && ($attrs === NULL)) {
+      $this->displays[$i] = $this->value[$i];
+    } elseif (!isset($attrs[$this->display_attr])) {
+      $this->removeValue($i);
+    } else {
+      if ($this->display_attr == 'dn') {
+        $this->displays[$i] = $attrs['dn'];
+      } else {
+        $this->displays[$i] = $attrs[$this->display_attr][0];
+      }
+    }
+  }
+
+  function foreignKeyUpdate ($oldvalue, $newvalue, array $source)
+  {
+    foreach ($this->value as $key => &$value) {
+      if (($source['FIELD'] == 'dn') && ($source['MODE'] == 'move')) {
+        if ($newvalue === NULL) {
+          if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $value)) {
+            $this->removeValue($key);
+          }
+        } else {
+          $value = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $value, -1, $count);
+          if ($count > 0) {
+            /* Update display */
+            $this->fillDisplayValue($key);
+          }
+        }
+      } elseif ($value == $oldvalue) {
+        if ($newvalue === NULL) {
+          $this->removeValue($key);
+        } elseif ($source['MODE'] == 'copy') {
+          $this->value[] = $newvalue;
+        } elseif ($source['MODE'] == 'move') {
+          $value = $newvalue;
+          /* Update display */
+          $this->fillDisplayValue($key);
+        }
+      }
+    }
+    unset($value);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_GenericSelectManagementDialog.inc b/include/simpleplugin/attributes/dialog/class_GenericSelectManagementDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..2cb89a67784fc6e0815f56806249c60c4bcd834c
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_GenericSelectManagementDialog.inc
@@ -0,0 +1,50 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief Generic dialog for selection using a selectManagement class
+ */
+class GenericSelectManagementDialog extends GenericDialog
+{
+  protected $dialogClass = 'selectManagement';
+
+  public function __construct ($simplePlugin, $attribute)
+  {
+    $this->attribute  = $attribute;
+    $this->dialog     = new $this->dialogClass(...$this->attribute->getSelectManagementParameters());
+  }
+
+  protected function handleFinish ()
+  {
+    $result = $this->dialog->detectPostActions();
+    if (isset($result['targets'])) {
+      if ($this->dialog instanceof selectManagement) {
+        $headpage = $this->dialog->listing;
+      } else {
+        $headpage = $this->dialog->getHeadpage();
+      }
+      foreach ($result['targets'] as $dn) {
+        $entry = $headpage->getEntry($dn);
+
+        $this->attribute->addValue($dn, $entry);
+      }
+    }
+    unset($this->dialog);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_GenericSimplePluginDialog.inc b/include/simpleplugin/attributes/dialog/class_GenericSimplePluginDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e34d87c002f0ff0f30cbdd48b6689c87863b8a28
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_GenericSimplePluginDialog.inc
@@ -0,0 +1,87 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief GenericDialog using a simplePlugin based class as dialog
+ */
+class GenericSimplePluginDialog extends GenericDialog
+{
+  protected $initialDialogValue = NULL;
+
+  public function __construct ($simplePlugin, $attribute, $value = [])
+  {
+    $this->attribute  = $attribute;
+    $this->dialog     = new $this->dialogClass('new');
+
+    $base = $simplePlugin->dn;
+    if ($base == 'new') {
+      $base = $simplePlugin->base;
+    }
+    $this->dialog->base = $base;
+    $this->dialog->set_acl_category($simplePlugin->acl_category);
+    if (!empty($value)) {
+      $this->initialDialogValue = $value;
+      foreach ($this->dialog->attributes as $attr) {
+        if (isset($value[$attr])) {
+          $this->dialog->$attr = $value[$attr];
+        }
+      }
+    }
+  }
+
+  public function render (): string
+  {
+    return parent::render().$this->buttons();
+  }
+
+  protected function buttons ()
+  {
+    return '<div style="width:100%; text-align:right; clear:both; float:none;">'.
+           '  <input type="submit" name="'.$this->post_finish.'" value="'.msgPool::saveButton().'"/>&nbsp;'.
+           '  <input type="submit" formnovalidate="formnovalidate" name="'.$this->post_cancel.'" value="'.msgPool::cancelButton().'"/>'.
+           '</div>';
+  }
+
+  protected function handleFinish ()
+  {
+    $this->dialog->update();
+    $msgs = $this->dialog->check();
+    if (count($msgs)) {
+      msg_dialog::displayChecks($msgs);
+      return;
+    }
+
+    $value = [];
+    foreach ($this->dialog->attributes as $attr) {
+      $value[$attr] = $this->dialog->$attr;
+    }
+
+    $this->attribute->addValue('', $value);
+    unset($this->dialog);
+  }
+
+  protected function handleCancel ()
+  {
+    if ($this->initialDialogValue !== NULL) {
+      $this->attribute->addValue('', $this->initialDialogValue);
+    }
+    unset($this->dialog);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_GenericSingleSelectManagementDialog.inc b/include/simpleplugin/attributes/dialog/class_GenericSingleSelectManagementDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..3a4a07fc639f52cd1163e5be16dd9d65e03004dc
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_GenericSingleSelectManagementDialog.inc
@@ -0,0 +1,36 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief Object selection dialog allowing only one object to get selected
+ */
+class GenericSingleSelectManagementDialog extends GenericSelectManagementDialog
+{
+  protected function handleFinish ()
+  {
+    $result = $this->dialog->detectPostActions();
+    if (isset($result['targets']) && count($result['targets'])) {
+      $dn     = $result['targets'][0];
+      $entry  = $this->dialog->listing->getEntry($dn);
+      $this->attribute->handleDialogResult($dn, $entry);
+    }
+    unset($this->dialog);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc b/include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..b94853f240836d3487b9c28a17bae51b9a71b8b8
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc
@@ -0,0 +1,194 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Attribute storing the dn of an object which can be selected through a dialog
+ */
+class ObjectAttribute extends DialogButtonAttribute
+{
+  protected $objectType;
+  protected $storeAttr;
+  protected $displayAttr;
+  protected $selectManagementParameters;
+
+  function __construct (string $label, string $description, string $ldapName, bool $required, string $objectType, string $storeAttr = 'dn', string $displayAttr = 'nameAttr', $defaultValue = '', $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, '', 'GenericSingleSelectManagementDialog', $defaultValue, $acl);
+    $this->setRequired($required);
+    $this->storeAttr    = $storeAttr;
+    $this->displayAttr  = $displayAttr;
+    $this->objectType   = $objectType;
+  }
+
+  function setParent (&$plugin)
+  {
+    parent::setParent($plugin);
+    $infos = objects::infos($this->objectType);
+    if (in_array($this->storeAttr, ['nameAttr','mainAttr'])) {
+      $this->storeAttr = $infos[$this->storeAttr];
+    }
+    if (in_array($this->displayAttr, ['nameAttr','mainAttr'])) {
+      $this->displayAttr = $infos[$this->displayAttr];
+    }
+    $attributes = [
+      'objectClass' => '*',
+      'dn'          => 'raw',
+    ];
+    if ($this->storeAttr != 'dn') {
+      $attributes[$this->storeAttr] = '*';
+    }
+    if ($this->displayAttr != 'dn') {
+      $attributes[$this->displayAttr] = '*';
+    }
+    $this->selectManagementParameters = [[$this->objectType],FALSE,$attributes];
+  }
+
+  public function getSelectManagementParameters (): array
+  {
+    return $this->selectManagementParameters;
+  }
+
+  function handleDialogResult ($dn, $entry)
+  {
+    $value = $entry[$this->storeAttr];
+    if (is_array($value)) {
+      $value = $value[0];
+    }
+    $this->setValue($value);
+
+    $this->buttonText = $entry[$this->displayAttr];
+    if (is_array($this->buttonText)) {
+      $this->buttonText = $this->buttonText[0];
+    }
+  }
+
+  function renderFormInput (): string
+  {
+    $infos = objects::infos($this->objectType);
+
+    $id = $this->getHtmlId();
+    if ($this->isTemplate()) {
+      $display = $this->renderInputField(
+        'text', $id,
+        [
+          'value' => $this->getValue()
+        ]
+      );
+    } else {
+      $display  = '<img src="'.htmlescape($infos['icon']).'" alt="'.htmlescape($infos['name']).'" class="center"/>';
+      if ($this->getValue() == '') {
+        $display  .= '<b>'.htmlescape(_('None')).'</b>';
+      } elseif ($this->buttonText === NULL) {
+        $display  .= '<b>'.htmlescape(_('Unknown')).'</b>';
+      } else {
+        $display  .= '<a>'.htmlescape($this->buttonText).'</a>';
+      }
+    }
+    $display .= $this->renderInputField(
+      'image', $id.'_dialog',
+      [
+        'class' => 'center dialog',
+        'src'   => 'geticon.php?context=actions&icon=document-edit&size=16',
+        'title' => _('Edit'),
+        'alt'   => _('Edit')
+      ]
+    );
+    if (!$this->isRequired()) {
+      $display .= $this->renderInputField(
+        'image', $id.'_remove',
+        [
+          'class' => 'center',
+          'src'   => 'geticon.php?context=actions&icon=remove&size=16',
+          'title' => _('Remove'),
+          'alt'   => _('Remove')
+        ]
+      );
+    }
+    return $this->renderAcl($display);
+  }
+
+  function loadPostValue ()
+  {
+    $id = $this->getHtmlId();
+    if (!$this->disabled && $this->isVisible()) {
+      foreach (array_keys($_POST) as $name) {
+        if (!$this->isRequired() && preg_match('/^'.$id.'_remove_/', $name)) {
+          $this->setValue('');
+          $this->buttonText = NULL;
+          return;
+        }
+        if (preg_match('/^'.$id.'_dialog_/', $name)) {
+          $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
+          return;
+        }
+      }
+      if ($this->isTemplate() && isset($_POST[$id])) {
+        $this->setValue($_POST[$id]);
+      }
+    }
+  }
+
+  function applyPostValue ()
+  {
+  }
+
+  protected function loadAttrValue (array $attrs)
+  {
+    parent::loadAttrValue($attrs);
+    if (!$this->isTemplate()) {
+      $value = $this->getValue();
+      if ($value != '') {
+        if ($this->storeAttr == 'dn') {
+          $objects = objects::ls($this->objectType, $this->selectManagementParameters[2], $value, '', FALSE, 'base');
+        } else {
+          $objects = objects::ls($this->objectType, $this->selectManagementParameters[2], NULL, '('.$this->storeAttr.'='.ldap_escape_f($value).')');
+        }
+        if (!empty($objects)) {
+          $this->handleDialogResult(key($objects), reset($objects));
+        } else {
+          $this->buttonText = NULL;
+        }
+      }
+    }
+  }
+
+  public function getForHtmlId (): string
+  {
+    $id = $this->getHtmlId();
+    if ($this->isTemplate()) {
+      return $id;
+    } else {
+      return $id.'_dialog';
+    }
+  }
+
+  public function htmlIds (): array
+  {
+    $id   = $this->getHtmlId();
+    $ids  = [$id.'_dialog'];
+    if ($this->isTemplate()) {
+      $ids[] = $id;
+    }
+    if (!$this->isRequired()) {
+      $ids[] = $id.'_remove';
+    }
+    return $ids;
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc b/include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..dc583744d98d270291ee4bac1f3c53f400a6687c
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc
@@ -0,0 +1,193 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief This class allows to handle an attribute for selecting objects
+ *
+ * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more objects.
+ * It stores their dn as values, but displays the cn.
+ *
+ */
+class ObjectsAttribute extends GenericDialogAttribute
+{
+  protected $dialogClass  = 'GenericSelectManagementDialog';
+
+  protected $selectManagementParameters;
+  protected $filterElementDefinitions;
+  protected $types = [];
+
+  function __construct (string $label, string $description, string $ldapName, bool $required, array $objectTypes, array $defaultValue = [], string $store_attr = 'dn', string $display_attr = 'nameAttr', array $filterElementDefinitions = NULL, string $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $store_attr, $display_attr, $acl);
+    $attributes = [
+      'objectClass' => '*',
+      'dn'          => 'raw',
+    ];
+    if (!in_array($store_attr, ['dn','nameAttr','mainAttr'])) {
+      $attributes[$store_attr] = '*';
+    }
+    if (!in_array($display_attr, ['dn','nameAttr','mainAttr'])) {
+      $attributes[$display_attr] = '*';
+    }
+    $specialAttributes = array_intersect([$store_attr,$display_attr], ['nameAttr','mainAttr']);
+    foreach ($objectTypes as $i => $type) {
+      try {
+        if (!empty($specialAttributes)) {
+          $infos = objects::infos($type);
+          foreach ($specialAttributes as $attribute) {
+            $attributes[$infos[$attribute]] = '*';
+          }
+        }
+        $filterAttributes = objects::getFilterObject($type)->listUsedAttributes();
+        foreach ($filterAttributes as $attribute) {
+          if ($attribute != 'dn') {
+            $attributes[$attribute] = '*';
+          }
+        }
+      } catch (NonExistingObjectTypeException $e) {
+        unset($objectTypes[$i]);
+      }
+    }
+    $this->selectManagementParameters = [array_values($objectTypes),TRUE,$attributes];
+    $this->filterElementDefinitions   = $filterElementDefinitions;
+  }
+
+  protected function ldapAttributesToGet (): array
+  {
+    return array_keys($this->selectManagementParameters[2]);
+  }
+
+  public function getSelectManagementParameters (): array
+  {
+    $parameters = array_merge(
+      $this->selectManagementParameters,
+      [
+        $this->getFilterBlackList(),
+        $this->getFilterWhiteList(),
+      ]
+    );
+    if (isset($this->filterElementDefinitions)) {
+      $parameters[] = $this->filterElementDefinitions;
+    }
+    return $parameters;
+  }
+
+  protected function fillDisplayValue ($i)
+  {
+    $value = $this->value[$i];
+    try {
+      if ($this->store_attr == 'dn') {
+        $objects = objects::ls($this->selectManagementParameters[0], $this->selectManagementParameters[2], $value, '', FALSE, 'base');
+      } else {
+        $objects = objects::ls($this->selectManagementParameters[0], $this->selectManagementParameters[2], NULL, '('.$this->store_attr.'='.ldap_escape_f($value).')');
+      }
+    } catch (EmptyFilterException $e) {
+      $objects = [];
+    }
+    if (empty($objects) && $this->isTemplate()) {
+      $this->fillDisplayValueFrom($i, NULL);
+    } else {
+      $this->fillDisplayValueFrom($i, reset($objects));
+    }
+  }
+
+  protected function fillDisplayValueFrom ($i, $attrs)
+  {
+    if ($attrs) {
+      $objectType = NULL;
+      if (is_array($attrs)) {
+        foreach ($this->selectManagementParameters[0] as $type) {
+          try {
+            if (objects::isOfType($attrs, $type)) {
+              $objectType = $type;
+            }
+          } catch (NonExistingObjectTypeException $e) {
+            continue;
+          }
+        }
+      } else {
+        $objectType = $attrs->getTemplatedType();
+      }
+      if ($objectType !== NULL) {
+        if (in_array($this->display_attr, ['nameAttr','mainAttr'])) {
+          $infos = objects::infos($objectType);
+          $display = $attrs[$infos[$this->display_attr]][0];
+        } else {
+          $display = $attrs[$this->display_attr][0];
+        }
+        $this->displays[$i] = trim($display);
+        $this->types[$i]    = $objectType;
+      }
+      if (!isset($this->displays[$i])) {
+        trigger_error('Unkown type for "'.$this->value[$i].'"');
+        $this->displays[$i] = sprintf(_('Unknown type : %s'), $this->value[$i]);
+        $this->types[$i]    = FALSE;
+      }
+    } elseif (($attrs === NULL) && $this->isTemplate()) {
+      $this->displays[$i] = $this->value[$i];
+      $this->types[$i]    = FALSE;
+    } else {
+      $this->displays[$i] = sprintf(_('Non existing dn: %s'), $this->value[$i]);
+      $this->types[$i]    = FALSE;
+    }
+  }
+
+  function renderOnlyFormInput (): string
+  {
+    if (($this->size < 15) && ($this->size < count($this->value))) {
+      $this->size = min(15, count($this->value));
+    }
+    $id       = $this->getHtmlId();
+    $display  = '<select multiple="multiple" name="row'.$id.'[]" id="row'.$id.'" size="'.$this->size.'"'.
+                ($this->disabled ? ' disabled="disabled"' : '').
+                ' >'."\n";
+    foreach ($this->getDisplayValues() as $key => $value) {
+      $infos = [];
+      try {
+        if ($this->types[$key] !== FALSE) {
+          $infos = objects::infos($this->types[$key]);
+        }
+      } catch (NonExistingObjectTypeException $e) {
+        /* Ignore non-existing types, plugins may have been removed */
+      }
+      if (isset($infos['icon'])) {
+        $img = $infos['icon'];
+      } else {
+        $img = 'images/empty.png';
+      }
+      $display .= '<option value="'.$key.'" class="select"'.
+                  ' style="background-image:url(\''.get_template_path($img).'\');"'.
+                  '>'.$value."</option>\n";
+    }
+    $display .= '</select><br/>'."\n";
+    return $display;
+  }
+
+  function setValue ($value)
+  {
+    $this->types = [];
+    parent::setValue($value);
+  }
+
+  protected function removeValue ($row)
+  {
+    parent::removeValue($row);
+    unset($this->types[$row]);
+  }
+}
diff --git a/plugins/admin/departments/main.inc b/include/simpleplugin/attributes/dialog/class_SystemSelectDialog.inc
similarity index 80%
rename from plugins/admin/departments/main.inc
rename to include/simpleplugin/attributes/dialog/class_SystemSelectDialog.inc
index 6ff8da944f212ccca6fdde9bbe7241fd66594931..462dd418d79fdf701700f6a3d9e62555d1630de5 100644
--- a/plugins/admin/departments/main.inc
+++ b/include/simpleplugin/attributes/dialog/class_SystemSelectDialog.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2012-2020  FusionDirectory
 
   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
@@ -18,5 +18,9 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-simpleManagement::mainInc('departmentManagement');
-?>
+/*! \brief System selection dialog
+*/
+class SystemSelectDialog extends GenericSelectManagementDialog
+{
+  protected $dialogClass = 'systemSelect';
+}
diff --git a/include/simpleplugin/attributes/dialog/class_SystemsAttribute.inc b/include/simpleplugin/attributes/dialog/class_SystemsAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..a7780fda82cccd01fbf6a97a3d5696c180727f7c
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_SystemsAttribute.inc
@@ -0,0 +1,32 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Attribute storing a system list
+ */
+class SystemsAttribute extends ObjectsAttribute
+{
+  protected $dialogClass  = 'SystemSelectDialog';
+
+  function __construct (string $label, string $description, string $ldapName, bool $required, array $objectTypes = ['terminal', 'workstation', 'server'], array $defaultValue = [], string $store_attr = 'cn', string $display_attr = 'cn', array $filterElementDefinitions = NULL, string $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, $objectTypes, $defaultValue, $store_attr, $display_attr, $filterElementDefinitions, $acl);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_UserAttribute.inc b/include/simpleplugin/attributes/dialog/class_UserAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..5e62364c387bd2755ff679e1968ebf37b0c5b6d4
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_UserAttribute.inc
@@ -0,0 +1,30 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Attribute storing the dn of a user which can be selected through a dialog
+ */
+class UserAttribute extends ObjectAttribute
+{
+  function __construct (string $label, string $description, string $ldapName, bool $required, string $storeAttr = 'dn', string $displayAttr = 'nameAttr', $defaultValue = '', $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, 'user', $storeAttr, $displayAttr, $defaultValue, $acl);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_UsersAttribute.inc b/include/simpleplugin/attributes/dialog/class_UsersAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..d552acc6fb8e2317c2e319e9bf0aabd4f3657809
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_UsersAttribute.inc
@@ -0,0 +1,33 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief This class allows to handle an attribute for selecting users
+ *
+ * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more users.
+ * It stores their dn as values, but displays the cn.
+ *
+ */
+class UsersAttribute extends ObjectsAttribute
+{
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $store_attr = 'dn', $display_attr = 'cn', array $filterElementDefinitions = NULL, $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, ['user'], $defaultValue, $store_attr, $display_attr, $filterElementDefinitions, $acl);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_UsersGroupsRolesAttribute.inc b/include/simpleplugin/attributes/dialog/class_UsersGroupsRolesAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ec739c3926797430366cc9ba16e9ca498eb94b6c
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_UsersGroupsRolesAttribute.inc
@@ -0,0 +1,32 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*! \brief This class allows to handle an attribute for selecting user or groups
+ *
+ * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more users or groups.
+ * It stores their dn as values, but displays the cn.
+ */
+class UsersGroupsRolesAttribute extends ObjectsAttribute
+{
+  function __construct (string $label, string $description, string $ldapName, bool $required = FALSE, array $defaultValue = [], string $store_attr = 'dn', string $display_attr = 'nameAttr', array $filterElementDefinitions = NULL, string $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, ['user', 'group', 'role', 'ogroup'], $defaultValue, $store_attr, $display_attr, $filterElementDefinitions, $acl);
+  }
+}
diff --git a/include/simpleplugin/attributes/dialog/class_systemSelect.inc b/include/simpleplugin/attributes/dialog/class_systemSelect.inc
new file mode 100644
index 0000000000000000000000000000000000000000..f10c9cfbc83e04b3ddff8dff5f0476d115b96245
--- /dev/null
+++ b/include/simpleplugin/attributes/dialog/class_systemSelect.inc
@@ -0,0 +1,34 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief System selection
+ */
+class systemSelect extends selectManagement
+{
+  /* Default columns */
+  public static $columns = [
+    ['ObjectTypeColumn',  []],
+    ['LinkColumn',        ['attributes' => 'nameAttr',      'label' => 'Name']],
+    ['IpColumn',          ['attributes' => 'ipHostNumber',  'label' => 'IP']],
+    ['Column',            ['attributes' => 'macAddress',    'label' => 'Mac']],
+    ['LinkColumn',        ['attributes' => 'description',   'label' => 'Description']],
+  ];
+}
diff --git a/include/simpleplugin/class_Attribute.inc b/include/simpleplugin/class_Attribute.inc
index fa4561e83d61d5b63a8a91c48efd7cee44bd0021..9e38dcee736f2dd904a9d5049fdc43ea86c126e4 100644
--- a/include/simpleplugin/class_Attribute.inc
+++ b/include/simpleplugin/class_Attribute.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+
+  Copyright (C) 2012-2019  FusionDirectory
 
   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
@@ -18,6 +19,8 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
+namespace FusionDirectory\Core\SimplePlugin;
+
 /*!
  * \file class_Attribute.inc
  * Source code for the main Attribute class
@@ -82,6 +85,12 @@ class Attribute
   /* \bried Array of booleans telling for each managing attributes if he's disabling us */
   protected $managingAttributesOrders = [];
 
+  /* \bried If this is TRUE it means this attribute is not directly submitted with the form
+   * but is part of a multivalue attribute.
+   * It means it should not be set as required in the HTML form for instance.
+   */
+  protected $isSubAttribute = FALSE;
+
   /*! \brief The constructor of Attribute
    *
    *  \param string $label The label to show for this attribute
@@ -91,7 +100,7 @@ class Attribute
    *  \param mixed $defaultValue The default value for this attribute
    *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
    */
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = "", $acl = "")
+  function __construct (string $label, string $description, string $ldapName, bool $required = FALSE, $defaultValue = '', string $acl = '')
   {
     $this->label        = $label;
     $this->description  = $description;
@@ -106,7 +115,7 @@ class Attribute
 
   /*! \brief Set the parent plugin for this attribute
    *
-   *  \param simplePlugin &$plugin The parent plugin
+   *  \param SimpleTab &$plugin The parent plugin
    */
   function setParent (&$plugin)
   {
@@ -114,29 +123,44 @@ class Attribute
     $this->manageAttributes($this->getValue());
   }
 
-  function setInLdap ($inLdap)
+  /*! \brief Get parent plugin instance, if any
+   *
+   * \return SimpleTab|null
+   */
+  function getParent ()
+  {
+    return $this->plugin;
+  }
+
+  function setIsSubAttribute (bool $bool)
+  {
+    $this->isSubAttribute = $bool;
+  }
+
+  function setInLdap (bool $inLdap)
   {
     $this->inLdap = $inLdap;
   }
 
-  function setVisible ($visible)
+  function setVisible (bool $visible)
   {
     $this->visible = $visible;
   }
 
-  function isVisible ()
+  function isVisible (): bool
   {
     return $this->visible;
   }
 
-  function isTemplate ()
+  function isTemplate (): bool
   {
     return (is_object($this->plugin) && $this->plugin->is_template);
   }
 
-  function setUnique ($unique, $filter = NULL)
+  function setUnique ($unique, string $filter = NULL)
   {
     if ($unique === TRUE) {
+      trigger_error('Deprecated fallback');
       $this->unique = 'one';
     } else {
       $this->unique = $unique;
@@ -144,16 +168,25 @@ class Attribute
     $this->uniqueFilter = $filter;
   }
 
-  function getUnique ()
+  function getUnique (): string
   {
     return $this->unique;
   }
 
-  function isInLdap ()
+  function isInLdap (): bool
   {
     return $this->inLdap;
   }
 
+  /*! \brief Get an example value
+   *
+   * \return string|null
+   */
+  public function getExample ()
+  {
+    return NULL;
+  }
+
   function checkValue ($value)
   {
     /* Should throw InvalidValueException if needed */
@@ -164,7 +197,7 @@ class Attribute
     $this->checkValue($value);
     $old_value    = $this->value;
     $this->value  = $value;
-    if (($this->submitForm != FALSE) && ($this->submitForm !== TRUE) && ($old_value != $value) && is_object($this->plugin)) {
+    if (($this->submitForm !== FALSE) && ($this->submitForm !== TRUE) && ($old_value != $value) && is_object($this->plugin)) {
       $func = $this->submitForm;
       $this->plugin->$func();
     }
@@ -199,38 +232,38 @@ class Attribute
   }
 
   /* Return the value as an array of values to be displayed in a table columns */
-  function getArrayValue ()
+  function getArrayValue (): array
   {
     return [$this->displayValue($this->getValue())];
   }
 
-  function getLdapName ()
+  function getLdapName (): string
   {
     return $this->ldapName;
   }
 
-  function getHtmlId ()
+  function getHtmlId (): string
   {
-    return $this->htmlid_prefix.preg_replace('/[\/\-,.#:;]/', '_', $this->getLdapName());
+    return $this->htmlid_prefix.\userinfo::sanitizeAttributeName($this->getLdapName());
   }
 
   /* html id to put in the "for" attribute of our "label" tag */
-  function getForHtmlId ()
+  function getForHtmlId (): string
   {
     return $this->getHtmlId();
   }
 
-  function getLabel ()
+  function getLabel (): string
   {
     return $this->label;
   }
 
-  function getDescription ()
+  function getDescription (): string
   {
     return $this->description;
   }
 
-  function getAcl ()
+  function getAcl (): string
   {
     if (empty($this->acl)) {
       return $this->getHtmlId();
@@ -239,37 +272,37 @@ class Attribute
     }
   }
 
-  function setAcl ($acl)
+  function setAcl (string $acl)
   {
     $this->acl = $acl;
   }
 
-  function isRequired ()
+  function isRequired (): bool
   {
     return $this->required;
   }
 
-  function setRequired ($bool)
+  function setRequired (bool $bool)
   {
     $this->required = $bool;
   }
 
-  protected function setLabel ($label)
+  protected function setLabel (string $label)
   {
     $this->label = $label;
   }
 
-  protected function setDescription ($description)
+  protected function setDescription (string $description)
   {
     $this->description = $description;
   }
 
-  function setDisabled ($disabled)
+  function setDisabled (bool $disabled)
   {
     $this->disabled = $disabled;
   }
 
-  function isDisabled ()
+  function isDisabled (): bool
   {
     return $this->disabled;
   }
@@ -292,7 +325,7 @@ class Attribute
 
   /*! \brief If in LDAP, loads this attribute value from the attrs array
    */
-  function loadValue ($attrs)
+  function loadValue (array $attrs)
   {
     if ($this->inLdap) {
       $this->loadAttrValue($attrs);
@@ -300,9 +333,13 @@ class Attribute
     $this->initialValue = $this->getValue();
   }
 
-  /*! \brief Loads this attribute value from the attrs array
+  /*! \brief Loads this attribute value from the attrs array if present
+   *
+   * If the attribute is not present in $attrs, does not change value
+   *
+   * \param array $attrs The attributes array as fetch from the LDAP
    */
-  protected function loadAttrValue ($attrs)
+  protected function loadAttrValue (array $attrs)
   {
     if (isset($attrs[$this->getLdapName()])) {
       $this->setValue($this->inputValue($attrs[$this->getLdapName()][0]));
@@ -319,19 +356,19 @@ class Attribute
     $this->initialValue = $value;
   }
 
-  function hasChanged ()
+  function hasChanged (): bool
   {
     return ($this->getValue() !== $this->initialValue);
   }
 
-  function displayValue ($value)
+  function displayValue ($value): string
   {
     return $value;
   }
 
   /*! \brief Return the ldap value in the correct intern format value
    *
-   *  \param $ldapValue The value as found in the LDAP
+   *  \param $ldapValue The value as found in LDAP
    */
   function inputValue ($ldapValue)
   {
@@ -346,7 +383,7 @@ class Attribute
   /*! \brief Set a list of attributes that are managed by this attributes.
    * See FusionDirectory wiki for detailed documentation
    */
-  function setManagedAttributes ($mAttributes)
+  function setManagedAttributes (array $mAttributes)
   {
     if (isset($mAttributes['multiplevalues'])) {
       $this->managedAttributesMultipleValues = $mAttributes['multiplevalues'];
@@ -358,7 +395,7 @@ class Attribute
     $this->manageAttributes($this->getValue());
   }
 
-  protected function isValueManagingValue ($myvalue, $mavalue)
+  protected function isValueManagingValue ($myvalue, $mavalue): bool
   {
     if (isset($this->managedAttributesMultipleValues[$mavalue])) {
       return in_array($myvalue, $this->managedAttributesMultipleValues[$mavalue]);
@@ -367,7 +404,7 @@ class Attribute
     }
   }
 
-  function manageAttributes ($myvalue)
+  function manageAttributes ($myvalue): bool
   {
     if ($this->plugin === NULL) {
       return FALSE;
@@ -375,8 +412,8 @@ class Attribute
     foreach ($this->managedAttributes as $array) {
       foreach ($array as $value => $attributes) {
         foreach ($attributes as $attribute) {
-          $disabled = $this->isValueManagingValue($myvalue, $value);
-          $this->plugin->attributesAccess[$attribute]->setManagingDisabled($this->getLdapName(), $disabled);
+          $disable = $this->isValueManagingValue($myvalue, $value);
+          $this->plugin->attributesAccess[$attribute]->setManagingDisabled($this->getLdapName(), $disable);
         }
       }
     }
@@ -413,12 +450,12 @@ class Attribute
 
   /*! \brief Fill LDAP value in the attrs array
    */
-  function fillLdapValue (&$attrs)
+  function fillLdapValue (array &$attrs)
   {
     if ($this->inLdap) {
-      $value = $this->computeLdapValue();
-      if ($value !== '') {
-        $attrs[$this->getLdapName()] = $value;
+      $ldapValue = $this->computeLdapValue();
+      if ($ldapValue !== '') {
+        $attrs[$this->getLdapName()] = $ldapValue;
       } else {
         $attrs[$this->getLdapName()] = [];
       }
@@ -427,7 +464,7 @@ class Attribute
 
   /*! \brief Post-modify the attrs array if needed (used for erasing managed attributes)
    */
-  function fillLdapValueHook (&$attrs)
+  function fillLdapValueHook (array &$attrs)
   {
     foreach ($this->managedAttributes as $prefix => $array) {
       if ($prefix != 'erase') {
@@ -451,12 +488,15 @@ class Attribute
   function check ()
   {
     global $config;
-    $value = $this->getValue();
-    if ($this->isRequired() && !$this->disabled && (($value === "") || ($value === []))) {
-      return msgPool::required($this->getLabel());
+    $currentValue = $this->getValue();
+    if ($this->isRequired() && !$this->disabled && (($currentValue === "") || ($currentValue === []))) {
+      return new \SimplePluginCheckError(
+        $this,
+        \msgPool::required($this->getLabel())
+      );
     } elseif (($this->unique !== FALSE) && !$this->disabled) {
-      $value = $this->computeLdapValue();
-      if (($value === "") || ($value === [])) {
+      $ldapValue = $this->computeLdapValue();
+      if (($ldapValue === "") || ($ldapValue === [])) {
         return;
       }
       $ldap = $config->get_ldap_link();
@@ -468,31 +508,34 @@ class Attribute
           $base = dn2base($this->plugin->dn);
         }
       }
-      $ldap->cd($base);
-      if (is_array($value)) {
-        $filter = '(|('.$this->getLdapName().'='.join(')('.$this->getLdapName().'=', array_map('ldap_escape_f', $value)).'))';
+      if (is_array($ldapValue)) {
+        $filter = '(|('.$this->getLdapName().'='.join(')('.$this->getLdapName().'=', array_map('ldap_escape_f', $ldapValue)).'))';
       } else {
-        $filter = '('.$this->getLdapName().'='.ldap_escape_f($value).')';
+        $filter = '('.$this->getLdapName().'='.ldap_escape_f($ldapValue).')';
       }
-      $infos = pluglist::pluginInfos(get_class($this->plugin));
+      $infos = \pluglist::pluginInfos(get_class($this->plugin));
       if ($this->uniqueFilter === NULL) {
-        $filters = array_map(
+        $objectTypeFilters = array_map(
           function ($key, $ot)
           {
             if (!is_numeric($key)) {
               $ot = $key;
             }
             try {
-              $oinfos = objects::infos($ot);
+              $oinfos = \objects::infos($ot);
               return $oinfos['filter'];
-            } catch (NonExistingObjectTypeException $e) {
+            } catch (\NonExistingObjectTypeException $e) {
               return '';
             }
           },
           array_keys($infos['plObjectType']),
           array_values($infos['plObjectType'])
         );
-        $pluginFilter = $this->plugin->getObjectClassFilter();
+        $filters = [];
+        if (!empty($objectTypeFilters)) {
+          $filters[] = '(|'.implode($objectTypeFilters).')';
+        }
+        $pluginFilter = call_user_func([get_class($this->plugin), 'getLdapFilter']);
         if (!empty($pluginFilter)) {
           $filters[] = $pluginFilter;
         }
@@ -500,7 +543,6 @@ class Attribute
         $filters = [$this->uniqueFilter];
       }
       $filter = '(&'.$filter.implode($filters).')';
-      $ldap->search($filter, [$this->getLdapName()]);
       $branches = array_filter(
         array_map(
           function ($key, $ot)
@@ -509,9 +551,9 @@ class Attribute
               $ot = $key;
             }
             try {
-              $oinfos = objects::infos($ot);
+              $oinfos = \objects::infos($ot);
               return $oinfos['ou'];
-            } catch (NonExistingObjectTypeException $e) {
+            } catch (\NonExistingObjectTypeException $e) {
               return FALSE;
             }
           },
@@ -523,6 +565,8 @@ class Attribute
           return ($ou !== FALSE);
         }
       );
+      $ldap->cd($base);
+      $ldap->search($filter, [$this->getLdapName()]);
       while ($attrs = $ldap->fetch()) {
         if ($attrs['dn'] != $this->plugin->dn) {
           $dn_base  = preg_replace('/^[^,]+,/', '', $attrs['dn']);
@@ -545,7 +589,7 @@ class Attribute
                 break;
               }
             }
-            if (!in_array($dn_base, $config->departments)) {
+            if (!in_array($dn_base, $config->getDepartmentList())) {
               continue;
             }
           } else {
@@ -555,7 +599,20 @@ class Attribute
             continue;
           }
 
-          return msgPool::duplicated($this->getLabel(), $attrs['dn']);
+          return new \SimplePluginCheckError(
+            $this,
+            \msgPool::duplicated($this->getLabel(), $attrs['dn'])
+          );
+        }
+      }
+      if (class_available('archivedObject')) {
+        $filter = \archivedObject::buildUniqueSearchFilter($this->getLdapName(), $ldapValue);
+        $ldap->search($filter, [$this->getLdapName()]);
+        if ($attrs = $ldap->fetch()) {
+          return new \SimplePluginCheckError(
+            $this,
+            \msgPool::duplicated($this->getLabel(), $attrs['dn'])
+          );
         }
       }
     }
@@ -566,22 +623,20 @@ class Attribute
    *  \param array &$attributes the attributes array
    *
    *  \param bool $readOnly should we show text or input
+   *
+   *  \param bool $readable ACL read
+   *
+   *  \param bool $writable ACL write
    */
-  function renderAttribute (&$attributes, $readOnly)
+  function renderAttribute (array &$attributes, bool $readOnly, bool $readable, bool $writable)
   {
     if ($this->visible) {
       if ($readOnly) {
-        $value = $this->getValue();
-        if (is_array($value)) {
-          $input = '{literal}'.implode('<br/>', array_map(
-            function ($v)
-            {
-              return htmlentities($v, ENT_COMPAT, 'UTF-8');
-            },
-            $value
-          )).'{/literal}';
+        $currentValue = $this->getValue();
+        if (is_array($currentValue)) {
+          $input = '{literal}'.implode('<br/>', array_map('htmlescape', $currentValue)).'{/literal}';
         } else {
-          $input = '{literal}'.htmlentities($value, ENT_COMPAT, 'UTF-8').'{/literal}';
+          $input = '{literal}'.htmlescape($currentValue).'{/literal}';
         }
       } elseif ($this->isTemplate()) {
         $input = $this->renderTemplateInput();
@@ -589,10 +644,14 @@ class Attribute
         $input = $this->renderFormInput();
       }
       $attributes[$this->getLdapName()] = [
-        'htmlid'      => $this->getForHtmlId(),
-        'label'       => '{literal}'.$this->getLabel().'{/literal}'.($this->isRequired() ? '{$must}' : ''),
-        'description' => ($this->isRequired() ? sprintf(_("%s (required)"), $this->getDescription()) : $this->getDescription()),
-        'input'       => $input,
+        'htmlid'        => $this->getForHtmlId(),
+        'label'         => '{literal}'.htmlescape($this->getLabel()).'{/literal}',
+        'description'   => ($this->isRequired() ? sprintf(_("%s (required)"), $this->getDescription()) : $this->getDescription()),
+        'input'         => $input,
+        'subattribute'  => $this->isSubAttribute,
+        'required'      => $this->isRequired(),
+        'readable'      => $readable,
+        'writable'      => $writable,
       ];
     }
   }
@@ -602,24 +661,23 @@ class Attribute
    * \param array &$attributes the attributes array
    * \param boolean $form
    */
-  function serializeAttribute (&$attributes, $form = TRUE)
+  function serializeAttribute (array &$attributes, bool $form = TRUE)
   {
     if (!$form || $this->visible) {
-      $class = get_class($this);
-      while ($class != 'Attribute') {
+      $class  = get_class($this);
+      $type   = [];
+      while ($class != FALSE) {
         $type[] = $class;
         $class  = get_parent_class($class);
       }
-      /* Avoid empty array */
-      $type[] = 'Attribute';
       $infos = [
         'htmlid'      => $this->getHtmlId(),
         'label'       => $this->getLabel(),
         'required'    => $this->isRequired(),
         'disabled'    => $this->disabled,
         'description' => $this->getDescription(),
-        'value'       => $this->getValue(),
-        'default'     => $this->defaultValue,
+        'value'       => $this->serializeValue(),
+        'default'     => $this->serializeValue($this->defaultValue),
         'type'        => $type,
       ];
       if (!$form) {
@@ -638,16 +696,31 @@ class Attribute
   function deserializeValue ($value)
   {
     if ($this->disabled) {
-      return sprintf(_('Attribute %s is disabled, its value could not be set'), $this->getLdapName());
+      return new \SimplePluginError(
+        $this,
+        htmlescape(sprintf(_('Attribute %s is disabled, its value could not be set'), $this->getLdapName()))
+      );
     }
     $this->setValue($value);
   }
 
+  /*! \brief Serialize value for RPC requests
+   *
+   *  \param mixed $value the value
+   */
+  function serializeValue ($value = NULL)
+  {
+    if ($value === NULL) {
+      $value = $this->getValue();
+    }
+    return $value;
+  }
+
   /*! \brief Add ACL information around display
    *
    *  \param string $display the display information to pass through ACL
    */
-  function renderAcl ($display)
+  function renderAcl (string $display): string
   {
     return '{render aclName="'.$this->getAcl().'" acl=$'.$this->getAcl()."ACL}\n$display\n{/render}";
   }
@@ -667,22 +740,23 @@ class Attribute
     }
   }
 
-  protected function changeStateJS ()
+  protected function changeStateJS (): string
   {
-    return join(array_map(
-      function ($id) {
+    return implode('', array_map(
+      function ($id)
+      {
         return 'changeState('.json_encode($id).');';
       },
       $this->htmlIds()
     ));
   }
 
-  public function htmlIds ()
+  public function htmlIds (): array
   {
     return [$this->getHtmlId()];
   }
 
-  protected function managedAttributesJS ()
+  protected function managedAttributesJS (): string
   {
     $js = '';
     $id = $this->getHtmlId();
@@ -703,19 +777,26 @@ class Attribute
     return $js;
   }
 
-  function renderTemplateInput ()
+  function renderFormInput (): string
+  {
+    throw new \FusionDirectoryException('Not implemented in base class (abstract method)');
+  }
+
+  function renderTemplateInput (): string
   {
     return $this->renderFormInput();
   }
 
-  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
+  function foreignKeyUpdate ($oldvalue, $newvalue, array $source)
   {
     if ($source['MODE'] == 'move') {
-      if ($source['FIELD'] == 'dn') {
-        $value = $this->getInitialValue();
-        $value = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $value, -1, $count);
+      if ($newvalue === NULL) {
+        $this->resetToDefault();
+      } elseif ($source['FIELD'] == 'dn') {
+        $initialValue = $this->getInitialValue();
+        $initialValue = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $initialValue, -1, $count);
         if ($count > 0) {
-          $this->setValue($value);
+          $this->setValue($initialValue);
         }
       } elseif ($this->getInitialValue() == $oldvalue) {
         $this->setValue($newvalue);
@@ -723,188 +804,20 @@ class Attribute
     }
   }
 
-  function foreignKeyCheck ($value, $source)
+  function foreignKeyCheck ($value, array $source): bool
   {
     return ($this->getValue() == $value);
   }
 
-  protected function renderInputField ($type, $name, $attributes = [])
+  protected function renderInputField (string $type, string $name, array $attributes = [], bool $smartyEscape = TRUE): string
   {
-    $input  = '<input type="'.$type.'" '.
-              'name="'.$name.'" id="'.$name.'"'.
+    $input  = '<input type="'.htmlescape($type).'" '.
+              'name="'.htmlescape($name).'" id="'.htmlescape($name).'"'.
               ($this->disabled ? ' disabled="disabled"' : '');
     foreach ($attributes as $label => $value) {
-      $input .= ' '.$label.'="'.$value.'"';
+      $input .= ' '.$label.'="'.htmlescape($value).'"';
     }
     $input .= '/>';
-    return $input;
-  }
-}
-
-/*!
- * \brief Attribute hidden from the user
- */
-class HiddenAttribute extends Attribute
-{
-  /*! \brief The constructor of HiddenAttribute
-   *
-   *  \param string $label The label to show for this attribute
-   *  \param string $description A more detailed description for the attribute
-   *  \param string $ldapName The name of the attribute in the LDAP (If it's not in the ldap, still provide a unique name)
-   *  \param boolean $required Is this attribute mandatory or not
-   *  \param mixed $defaultValue The default value for this attribute
-   *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
-   */
-  function __construct ($ldapName, $required = FALSE, $defaultValue = "", $acl = "", $label = NULL, $description = "hidden")
-  {
-    if ($label === NULL) {
-      $label = $ldapName;
-    }
-    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->setVisible(FALSE);
-  }
-}
-
-/*!
- * \brief HiddenAttribute with several values
- */
-class HiddenArrayAttribute extends HiddenAttribute
-{
-  protected function loadAttrValue ($attrs)
-  {
-    if (isset($attrs[$this->getLdapName()]['count'])) {
-      $this->value = [];
-      for ($i = 0; $i < $attrs[$this->getLdapName()]['count']; $i++) {
-        $this->value[] = $attrs[$this->getLdapName()][$i];
-      }
-    }
-  }
-}
-
-/*!
- * \brief Dummy attribute class in order to give stats information to the template
- */
-class FakeAttribute extends Attribute
-{
-  function __construct ($ldapName)
-  {
-    parent::__construct("Fake one", "", $ldapName, FALSE, "", "noacl");
-    $this->setInLdap(FALSE);
-  }
-
-  function renderAttribute (&$attributes, $readOnly)
-  {
-    $attributes[$this->getLdapName()] = $this->getValue();
-  }
-}
-
-/*! \brief This class allow to display an attribute.
- *
- * It can be used to display an attribute value the user is never allowed to modify.
- * (But FD might edit it)
- */
-class DisplayLDAPAttribute extends Attribute
-{
-  protected $allowHTML    = FALSE;
-  protected $allowSmarty  = FALSE;
-
-  function renderFormInput ()
-  {
-    if ($this->allowHTML) {
-      $value = $this->getValue();
-    } else {
-      $value = htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8');
-    }
-    if ($this->allowSmarty) {
-      return $value;
-    } else {
-      return '{literal}'.$value.'{/literal}';
-    }
-  }
-
-  function setAllowHTML ($allowHTML)
-  {
-    $this->allowHTML = $allowHTML;
-  }
-
-  function setAllowSmarty ($allowSmarty)
-  {
-    $this->allowSmarty = $allowSmarty;
-  }
-}
-
-/*! \brief This class allow to display an attribute.
- *
- * It can be used to display an attribute value the user and FD are never allowed to modify.
- */
-class ReadOnlyLDAPAttribute extends DisplayLDAPAttribute
-{
-  function fillLdapValue (&$attrs)
-  {
-  }
-}
-
-/*! \brief This class allow to display an attribute.
- *
- * It can be used to display an attribute value the user is never allowed to modify.
- */
-class DisplayLDAPArrayAttribute extends Attribute
-{
-  protected function loadAttrValue ($attrs)
-  {
-    if (isset($attrs[$this->getLdapName()]['count'])) {
-      $this->value = [];
-      for ($i = 0; $i < $attrs[$this->getLdapName()]['count']; $i++) {
-        $this->value[] = $attrs[$this->getLdapName()][$i];
-      }
-    }
-  }
-
-  function renderFormInput ()
-  {
-    $value = $this->getValue();
-    if (is_array($value)) {
-      $value = join(', ', $value);
-    }
-    return '{literal}'.htmlentities($value, ENT_COMPAT, 'UTF-8').'{/literal}';
-  }
-}
-
-/*! \brief This class allow to display a text in front of an attribute.
- *
- * For instance, it can be used to display a link.
- */
-class DisplayAttribute extends DisplayLDAPAttribute
-{
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = "", $acl = "")
-  {
-    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->setInLdap(FALSE);
-  }
-}
-
-/*! \brief This class allow to display a link to an object which dn is stored in the attribute
- */
-class ObjectLinkAttribute extends DisplayLDAPAttribute
-{
-  protected $type;
-
-  function __construct ($label, $description, $ldapName, $required, $type, $defaultValue = "", $acl = "")
-  {
-    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->type = $type;
-  }
-
-  function renderFormInput ()
-  {
-    if (empty($this->value)) {
-      return '';
-    }
-
-    try {
-      return objects::link($this->value, $this->type);
-    } catch (NonExistingLdapNodeException $e) {
-      return '<a><img src="geticon.php?context=status&amp;icon=dialog-warning&amp;size=16" alt="warning" class="center"/>&nbsp;'.sprintf(_('Invalid: %s'), $this->value).'</a>';
-    }
+    return ($smartyEscape ? '{literal}'.$input.'{/literal}' : $input);
   }
 }
diff --git a/include/simpleplugin/class_dialogAttributes.inc b/include/simpleplugin/class_dialogAttributes.inc
deleted file mode 100644
index b305fc146559f13bd5fca92532d62029ad917031..0000000000000000000000000000000000000000
--- a/include/simpleplugin/class_dialogAttributes.inc
+++ /dev/null
@@ -1,915 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*! \brief Generic dialog base class
- */
-class GenericDialog
-{
-  protected $dialogClass = "";
-  protected $dialog;
-  protected $attribute;
-
-  protected $post_cancel = 'add_cancel';
-  protected $post_finish = 'add_finish';
-
-  function __construct ($simplePlugin, $attribute)
-  {
-    $this->attribute  = $attribute;
-    $this->dialog     = new $this->dialogClass();
-  }
-
-  function execute ()
-  {
-    if (isset($_POST[$this->post_cancel])) {
-      return $this->handle_cancel();
-    }
-    if (isset($_POST[$this->post_finish]) || isset($_GET[$this->post_finish])) {
-      return $this->handle_finish();
-    }
-    return $this->dialog_execute();
-  }
-
-  function dialog_execute ()
-  {
-    return $this->dialog->execute();
-  }
-
-  function handle_finish ()
-  {
-    trigger_error('empty function');
-    return FALSE;
-  }
-
-  function handle_cancel ()
-  {
-    return FALSE;
-  }
-}
-
-/*! \brief Generic dialog for selection using a simpleSelectManagement based class
- */
-class GenericSelectDialog extends GenericDialog
-{
-  function dialog_execute ()
-  {
-    session::set('filterBlacklist', $this->attribute->getFilterBlackList());
-    session::set('filterWhitelist', $this->attribute->getFilterWhiteList());
-    return parent::dialog_execute();
-  }
-
-  function handle_finish ()
-  {
-    $result = $this->dialog->detectPostActions();
-    if (isset($result['targets'])) {
-      $headpage = $this->dialog->getHeadpage();
-      foreach ($result['targets'] as $dn) {
-        $attrs = $headpage->getEntry($dn);
-
-        $this->attribute->addValue($dn, $attrs);
-      }
-    }
-    return FALSE;
-  }
-}
-
-/*! \brief User selection dialog
- */
-class UserSelectDialog extends GenericSelectDialog
-{
-  protected $dialogClass = 'userSelect';
-}
-
-/*! \brief User selection dialog allowing only one user to get selected
- */
-class SingleUserSelectDialog extends GenericDialog
-{
-  protected $dialogClass = 'singleUserSelect';
-
-  function dialog_execute ()
-  {
-    session::set('filterBlacklist', $this->attribute->getFilterBlackList());
-    session::set('filterWhitelist', $this->attribute->getFilterWhiteList());
-    return parent::dialog_execute();
-  }
-
-  function handle_finish ()
-  {
-    $result = $this->dialog->detectPostActions();
-    if (isset($result['targets']) && count($result['targets'])) {
-      $headpage = $this->dialog->getHeadpage();
-      $dn       = $result['targets'][0];
-      $attrs    = $headpage->getEntry($dn);
-      $this->attribute->handleDialogResult($dn, $attrs);
-    }
-    return FALSE;
-  }
-}
-
-/*! \brief System selection dialog
- */
-class SystemSelectDialog extends GenericSelectDialog
-{
-  protected $dialogClass = 'systemSelect';
-}
-
-/*! \brief User group selection dialog
- */
-class UserGroupSelectDialog extends GenericSelectDialog
-{
-  protected $dialogClass = 'userGroupSelect';
-}
-
-/*! \brief User group or/and role selection dialog
- */
-class UserGroupRoleSelectDialog extends GenericSelectDialog
-{
-  protected $dialogClass = 'userGroupRoleSelect';
-}
-
-/*! \brief Group selection dialog
- */
-class GroupSelectDialog extends GenericSelectDialog
-{
-  protected $dialogClass = 'groupSelect';
-}
-
-/*! \brief Mail address selection dialog
- */
-class MailSelectDialog extends GenericSelectDialog
-{
-  protected $dialogClass = 'mailAddressSelect';
-}
-
-/*! \brief This class allows to handle an attribute with a popup for selection
- *
- * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more items.
- * It stores their dn as values, but displays the cn.
- *
- */
-class DialogAttribute extends SetAttribute
-{
-  protected $dialogClass = NULL;
-
-  /*! \brief The constructor of DialogAttribute
-   *
-   *  \param string $label The label to show for this attribute
-   *  \param string $description A more detailed description for the attribute
-   *  \param string $ldapName The name of the attribute in the LDAP (If it's not in the ldap, still provide a unique name)
-   *  \param boolean $required Is this attribute mandatory or not
-   *  \param array $defaultValue The default value for this attribute
-   *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
-   */
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
-  {
-    Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->attribute = FALSE;
-  }
-
-  function addPostValue ($value)
-  {
-    $this->addValue($value, NULL);
-  }
-
-  function delPostValue ($key)
-  {
-    $this->removeValue($key);
-  }
-
-  function addValue ($value, $attrs)
-  {
-    trigger_error("abstract method");
-  }
-
-  function searchAndRemove ($value)
-  {
-    $row = array_search($value, $this->value);
-    if ($row !== FALSE) {
-      $this->removeValue($row);
-    }
-  }
-
-  protected function removeValue ($row)
-  {
-    unset($this->value[$row]);
-  }
-
-  function getFilterBlackList ()
-  {
-    trigger_error("abstract method");
-  }
-
-  function getFilterWhiteList ()
-  {
-    return [];
-  }
-
-  function loadPostValue ()
-  {
-    parent::loadPostValue();
-    if ($this->isVisible()) {
-      $id = $this->getHtmlId();
-      if (isset($_POST['add'.$id.'_dialog'])) {
-        $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
-      } elseif (isset($_POST['add'.$id]) && isset($_POST[$id]) && $this->isTemplate()) {
-        $this->addPostValue($_POST[$id]);
-      }
-    }
-  }
-
-  function applyPostValue ()
-  {
-  }
-
-  function renderButtons ()
-  {
-    $id = $this->getHtmlId();
-    $buttons            = '';
-    $dialogButtonValue  = '{msgPool type=addButton}';
-    if ($this->isTemplate()) {
-      $buttons  .= $this->renderInputField(
-        'text', $id,
-        ['value' => $this->editingValue]
-      );
-      $buttons  .= $this->renderInputField(
-        'submit', 'add'.$id,
-        ['value' => '{msgPool type=addButton}']
-      );
-      $dialogButtonValue = _('Add(dialog)');
-    }
-    $buttons  .= $this->renderInputField(
-      'submit', 'add'.$id.'_dialog',
-      ['value' => $dialogButtonValue]
-    );
-    $buttons  .= $this->renderInputField(
-      'submit', 'del'.$id,
-      ['value' => '{msgPool type=delButton}']
-    );
-    return $buttons;
-  }
-
-  public function htmlIds ()
-  {
-    $id = $this->getHtmlId();
-    $ids = ['add'.$id.'_dialog','del'.$id,'row'.$id];
-    if ($this->isTemplate()) {
-      $ids[] = $id;
-      $ids[] = 'add'.$id;
-    }
-    return $ids;
-  }
-}
-
-/*!
- * \brief An OrderedArrayAttribute which uses a dialog to create/edit values
- */
-class DialogOrderedArrayAttribute extends OrderedArrayAttribute
-{
-  protected $dialogClass;
-
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
-  {
-    Attribute::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-    $this->edit_enabled = TRUE;
-    $this->attribute    = FALSE;
-  }
-
-  function getFilterBlackList ()
-  {
-    trigger_error("abstract method");
-  }
-
-  function getFilterWhiteList ()
-  {
-    return [];
-  }
-
-  function loadPostValue ()
-  {
-    if ($this->isVisible()) {
-      parent::loadPostValue();
-      parent::applyPostValue();
-      if (isset($_POST['add'.$this->getHtmlId().'_dialog'])) {
-        $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
-      }
-    }
-  }
-
-  protected function handleEdit ($key)
-  {
-    $this->editingValue = $this->value[$key];
-    $this->delPostValue($key);
-    $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this, $this->editingValue));
-  }
-
-  function applyPostValue ()
-  {
-  }
-
-  function addValue ($value)
-  {
-    $this->value[] = $value;
-    $this->reIndexValues();
-  }
-
-  function renderButtons ()
-  {
-    $id = $this->getHtmlId();
-    return $this->renderInputField(
-      'submit', 'add'.$id.'_dialog',
-      ['value' => '{msgPool type=addButton}']
-    );
-  }
-
-  public function htmlIds ()
-  {
-    $ids = parent::htmlIds();
-    $ids[0] .= '_dialog';
-    return $ids;
-  }
-
-  protected function getAttributeArrayValue ($key, $value)
-  {
-    /* Convert text value to displayable array value */
-    die('Pure virtual method');
-  }
-}
-
-/*!
- * \brief Base class for DialogAttribute using a GenericDialog derived dialog
- */
-class GenericDialogAttribute extends DialogAttribute
-{
-  protected $displays     = [];
-  protected $store_attr   = 'dn';
-  protected $display_attr = 'cn';
-
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $store_attr = 'dn', $display_attr = 'cn', $acl = '')
-  {
-    $this->store_attr   = $store_attr;
-    $this->display_attr = $display_attr;
-    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl);
-  }
-
-  function getFilterBlackList ()
-  {
-    return [$this->store_attr => $this->getValue()];
-  }
-
-  function addValue ($dn, $attrs)
-  {
-    if ($this->isTemplate() && ($attrs === NULL)) {
-      $value = $dn;
-    } elseif ($this->store_attr == 'dn') {
-      $value = $dn;
-    } else {
-      $value = $attrs[$this->store_attr][0];
-    }
-    if (!in_array($value, $this->value)) {
-      end($this->value);
-      $new_key = key($this->value) + 1;
-      $this->value[$new_key] = $value;
-      $this->fillDisplayValueFrom($new_key, $attrs);
-    }
-  }
-
-  protected function removeValue ($row)
-  {
-    unset($this->displays[$row]);
-    unset($this->value[$row]);
-  }
-
-  function getDisplayValues ()
-  {
-    foreach (array_keys($this->value) as $i) {
-      if (!isset($this->displays[$i])) {
-        $this->fillDisplayValue($i);
-      }
-    }
-    return $this->displays;
-  }
-
-  function setDisplayValues ($array)
-  {
-    $this->displays = $array;
-  }
-
-  protected function fillDisplayValue ($i)
-  {
-    global $config;
-    $ldap = $config->get_ldap_link();
-
-    $value = $this->value[$i];
-    if ($this->store_attr == 'dn') {
-      $ldap->cat($value, $this->ldapAttributesToGet());
-    } else {
-      $ldap->cd($config->current['BASE']);
-      $ldap->search('('.$this->store_attr.'='.ldap_escape_f($value).')', $this->ldapAttributesToGet());
-    }
-    $attrs = $ldap->fetch();
-    if (empty($attrs) && $this->isTemplate()) {
-      $this->fillDisplayValueFrom($i, NULL);
-    } else {
-      $this->fillDisplayValueFrom($i, $attrs);
-    }
-  }
-
-  protected function ldapAttributesToGet ()
-  {
-    return [$this->display_attr];
-  }
-
-  protected function fillDisplayValueFrom ($i, $attrs)
-  {
-    if ($this->isTemplate() && ($attrs === NULL)) {
-      $this->displays[$i] = $this->value[$i];
-    } elseif (!isset($attrs[$this->display_attr])) {
-      unset($this->value[$i]);
-    } else {
-      if ($this->display_attr == 'dn') {
-        $this->displays[$i] = $attrs['dn'];
-      } else {
-        $this->displays[$i] = $attrs[$this->display_attr][0];
-      }
-    }
-  }
-
-  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
-  {
-    foreach ($this->value as $key => &$value) {
-      if (($source['FIELD'] == 'dn') && ($source['MODE'] == 'move')) {
-        if ($newvalue === NULL) {
-          if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $value)) {
-            $this->removeValue($key);
-          }
-        } else {
-          $value = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $value, -1, $count);
-          if ($count > 0) {
-            /* Update display */
-            $this->fillDisplayValue($key);
-          }
-        }
-      } elseif ($value == $oldvalue) {
-        if ($newvalue === NULL) {
-          $this->removeValue($key);
-        } elseif ($source['MODE'] == 'copy') {
-          $this->value[] = $newvalue;
-        } elseif ($source['MODE'] == 'move') {
-          $value = $newvalue;
-          /* Update display */
-          $this->fillDisplayValue($key);
-        }
-      }
-    }
-    unset($value);
-  }
-}
-
-/*! \brief This class allows to handle an attribute for selecting user
- *
- * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more users.
- * It stores their dn as values, but displays the cn.
- *
- */
-class UsersAttribute extends GenericDialogAttribute
-{
-  protected $dialogClass  = 'UserSelectDialog';
-}
-
-/*! \brief This class allows to handle an attribute for selecting user or groups
- *
- * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more users or groups.
- * It stores their dn as values, but displays the cn.
- */
-class UsersGroupsAttribute extends GenericDialogAttribute
-{
-  protected $dialogClass = 'UserGroupSelectDialog';
-
-  protected function ldapAttributesToGet ()
-  {
-    return ['cn', 'uid', 'objectClass'];
-  }
-
-  protected function fillDisplayValueFrom ($i, $attrs)
-  {
-    if (!isset($attrs[$this->display_attr])) {
-      unset($this->value[$i]);
-    } else {
-      if ($this->display_attr == 'dn') {
-        $this->displays[$i] = $attrs['dn'];
-      } elseif (in_array('posixGroup', $attrs['objectClass'])) {
-        $this->displays[$i] = sprintf(_('POSIX group %s'), trim($attrs['cn'][0]));
-      } elseif (in_array('organizationalRole', $attrs['objectClass'])) {
-        $this->displays[$i] = sprintf(_('Role %s'), trim($attrs['cn'][0]));
-      } elseif (in_array('groupOfNames', $attrs['objectClass'])) {
-        $this->displays[$i] = sprintf(_('Group %s'), trim($attrs['cn'][0]));
-      } elseif (isset($attrs['uid'][0])) {
-        $this->displays[$i] = trim($attrs['uid'][0]);
-      } else {
-        $this->displays[$i] = $attrs[$this->display_attr][0];
-      }
-    }
-  }
-}
-
-/*!
- * \brief This class allows to handle an attribute for selecting users, groups or roles
- */
-class UsersGroupsRolesAttribute extends UsersGroupsAttribute
-{
-  protected $dialogClass = 'UserGroupRoleSelectDialog';
-}
-
-/*! \brief This class allows to handle an attribute for selecting groups
- *
- * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more groups.
- * It stores their dn as values, but displays the cn.
- *
- */
-class GroupsAttribute extends GenericDialogAttribute
-{
-  protected $dialogClass = 'GroupSelectDialog';
-
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = '')
-  {
-    parent::__construct($label, $description, $ldapName, $required, $defaultValue, 'dn', 'cn', $acl);
-  }
-
-  function addValue ($dn, $entry)
-  {
-    if (!in_array($dn, $this->value)) {
-      $display = $entry['cn'][0];
-      if (isset($entry['description'][0]) && !empty($entry['description'][0])) {
-        $display .= ' ['.preg_replace('/^Group of user/', _('Group of user'), $entry['description'][0]).']';
-      }
-
-      $this->value[]    = $dn;
-      $this->displays[] = $display;
-    }
-  }
-}
-
-/*! \brief This class allows to handle an attribute for selecting an mail address
- *
- * It looks like a SetAttribute, but clicking "Add" will open a dialog that allow to select one or more users.
- *
- */
-class MailsAttribute extends DialogAttribute
-{
-  protected $dialogClass = 'MailSelectDialog';
-
-  /*! \brief The constructor of MailsAttribute
-   *
-   *  \param string $label The label to show for this attribute
-   *  \param string $description A more detailed description for the attribute
-   *  \param string $ldapName The name of the attribute in the LDAP (If it's not in the ldap, still provide a unique name)
-   *  \param boolean $required Is this attribute mandatory or not
-   *  \param array $defaultValue The default value for this attribute
-   *  \param string $acl The name of the acl for this attribute if he does not use its own. (Leave empty if he should use its own like most attributes do)
-   */
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $acl = "")
-  {
-    SetAttribute::__construct(new MailAttribute($label, $description, $ldapName, $required, "", $acl), $defaultValue);
-  }
-
-  function getFilterBlackList ()
-  {
-    return ['mail' => $this->getValue()];
-  }
-
-  function addValue ($dn, $attrs)
-  {
-    $value = (($attrs != NULL) ? $attrs['mail'][0] : $dn);
-    if (!in_array($value, $this->value)) {
-      $this->value[]    = $value;
-    }
-  }
-
-  function renderButtons ()
-  {
-    $id = $this->getHtmlId();
-    $buttons  = $this->renderInputField(
-      'submit', 'add'.$id,
-      ['value' => '{msgPool type=addButton}']
-    );
-    $buttons  .= $this->renderInputField(
-      'submit', 'add'.$id.'_dialog',
-      ['value' => '{msgPool type=addButton} (from list)']
-    );
-    $buttons  .= $this->renderInputField(
-      'submit', 'del'.$id,
-      ['value' => '{msgPool type=delButton}']
-    );
-    return $buttons;
-  }
-
-  public function htmlIds ()
-  {
-    $id = $this->getHtmlId();
-    return ['add'.$id,'add'.$id.'_dialog','del'.$id,'row'.$id];
-  }
-}
-
-/*!
- * \brief Attribute storing a system list
- */
-class SystemsAttribute extends DialogAttribute
-{
-  protected $dialogClass = 'SystemSelectDialog';
-
-  function addValue ($dn, $entry)
-  {
-    $value = $entry['cn'][0];
-    if (!in_array($value, $this->value)) {
-      $this->value[]    = $value;
-    }
-  }
-
-  function getFilterBlackList ()
-  {
-    return ['cn' => $this->getValue()];
-  }
-}
-
-/*!
- * \brief Attribute showing a button
- */
-class ButtonAttribute extends Attribute
-{
-  protected $buttonText = NULL;
-  protected $action;
-
-  function __construct ($label, $description, $ldapName, $buttonText, $action = NULL, $defaultValue = "", $acl = "")
-  {
-    parent::__construct($label, $description, $ldapName, FALSE, $defaultValue, $acl);
-    $this->buttonText = $buttonText;
-    if ($action === NULL) {
-      $action = 'handle_'.$ldapName;
-    }
-    $this->action = $action;
-  }
-
-  function renderFormInput ()
-  {
-    $id = $this->getHtmlId();
-    $display = $this->renderInputField(
-      'submit', $id,
-      ['value' => '{literal}'.htmlentities($this->buttonText, ENT_COMPAT, 'UTF-8').'{/literal}']
-    );
-    return $this->renderAcl($display);
-  }
-
-  function loadPostValue ()
-  {
-    $this->postValue = FALSE;
-    if ($this->isVisible()) {
-      if (isset($_POST[$this->getHtmlId()])) {
-        $this->setPostValue(TRUE);
-      }
-    }
-  }
-
-  function applyPostValue ()
-  {
-    if (!$this->disabled && $this->isVisible() && $this->postValue) {
-      $func = $this->action;
-      $this->plugin->$func();
-    }
-  }
-}
-
-/*!
- * \brief Attribute showing a button which triggers a dialog
- */
-class DialogButtonAttribute extends ButtonAttribute
-{
-  protected $dialogClass  = NULL;
-
-  function __construct ($label, $description, $ldapName, $buttonText, $dialogClass, $defaultValue = '', $acl = '')
-  {
-    parent::__construct($label, $description, $ldapName, $buttonText, NULL, $defaultValue, $acl);
-    $this->dialogClass  = $dialogClass;
-  }
-
-  function applyPostValue ()
-  {
-    if (!$this->disabled && $this->isVisible() && $this->postValue) {
-      $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
-    }
-  }
-
-  function getFilterBlackList ()
-  {
-    return [];
-  }
-
-  function getFilterWhiteList ()
-  {
-    return [];
-  }
-}
-
-/*!
- * \brief Attribute storing the dn of a user which can be selected through a dialog
- */
-class UserAttribute extends DialogButtonAttribute
-{
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = "", $acl = "")
-  {
-    parent::__construct($label, $description, $ldapName, '', 'SingleUserSelectDialog', $defaultValue, $acl);
-    $this->setRequired($required);
-  }
-
-  function handleDialogResult ($dn, $attrs)
-  {
-    $this->setValue($dn);
-    $this->buttonText = $attrs['cn'][0];
-  }
-
-  function renderFormInput ()
-  {
-    $id = $this->getHtmlId();
-    if ($this->isTemplate()) {
-      $display = $this->renderInputField(
-        'text', $id,
-        [
-          'value' => '{literal}'.htmlentities($this->getValue(), ENT_COMPAT, 'UTF-8').'{/literal}'
-        ]
-      );
-    } else {
-      $display  = '<img src="geticon.php?context=types&amp;icon=user&amp;size=16" alt="user icon" class="center"/>';
-      if ($this->getValue() == '') {
-        $display  .= '<b>'._('None').'</b>';
-      } elseif ($this->buttonText === NULL) {
-        $display  .= '<b>'._('Unknown').'</b>';
-      } else {
-        $display  .= '<a>'.$this->buttonText.'</a>';
-      }
-    }
-    $display .= $this->renderInputField(
-      'image', $id.'_dialog',
-      [
-        'class' => 'center',
-        'src'   => 'geticon.php?context=actions&amp;icon=document-edit&amp;size=16',
-        'title' => _('Edit'),
-        'alt'   => _('Edit')
-      ]
-    );
-    if (!$this->isRequired()) {
-      $display .= $this->renderInputField(
-        'image', $id.'_remove',
-        [
-          'class' => 'center',
-          'src'   => 'geticon.php?context=actions&amp;icon=remove&amp;size=16',
-          'title' => _('Remove'),
-          'alt'   => _('Remove')
-        ]
-      );
-    }
-    return $this->renderAcl($display);
-  }
-
-  function loadPostValue ()
-  {
-    $id = $this->getHtmlId();
-    if (!$this->disabled && $this->isVisible()) {
-      foreach (array_keys($_POST) as $name) {
-        if (!$this->isRequired()) {
-          if (preg_match('/^'.$id.'_remove_/', $name)) {
-            $this->setValue('');
-            $this->buttonText = NULL;
-            return;
-          }
-        }
-        if (preg_match('/^'.$id.'_dialog_/', $name)) {
-          $this->plugin->openDialog(new $this->dialogClass($this->plugin, $this));
-          return;
-        }
-      }
-      if ($this->isTemplate() && isset($_POST[$id])) {
-        $this->setValue($_POST[$id]);
-      }
-    }
-  }
-
-  function applyPostValue ()
-  {
-  }
-
-  protected function loadAttrValue ($attrs)
-  {
-    global $config;
-    parent::loadAttrValue($attrs);
-    if (!$this->isTemplate()) {
-      $dn = $this->getValue();
-      if ($dn != '') {
-        $ldap = $config->get_ldap_link();
-        $ldap->cat($dn);
-        if ($attrs = $ldap->fetch()) {
-          $this->handleDialogResult($dn, $attrs);
-        } else {
-          $this->buttonText = NULL;
-        }
-      }
-    }
-  }
-
-  public function htmlIds ()
-  {
-    $id   = $this->getHtmlId();
-    $ids  = [$id.'_dialog'];
-    if ($this->isTemplate()) {
-      $ids[] = $id;
-    }
-    if (!$this->isRequired()) {
-      $ids[] = $id.'_remove';
-    }
-    return $ids;
-  }
-}
-
-/*!
- * \brief GenericDialog using a simplePlugin based class as dialog
- */
-class GenericSimplePluginDialog extends GenericDialog
-{
-  protected $initialDialogValue = NULL;
-
-  function __construct ($simplePlugin, $attribute, $value = [])
-  {
-    $this->attribute  = $attribute;
-    $this->dialog     = new $this->dialogClass('new');
-
-    $base = $simplePlugin->dn;
-    if ($base == 'new') {
-      $base = $simplePlugin->base;
-    }
-    $this->dialog->set_acl_base($base);
-    $this->dialog->set_acl_category($simplePlugin->acl_category);
-    if (!empty($value)) {
-      $this->initialDialogValue = $value;
-      foreach ($this->dialog->attributes as $attr) {
-        if (isset($value[$attr])) {
-          $this->dialog->$attr = $value[$attr];
-        }
-      }
-    }
-  }
-
-  function buttons ()
-  {
-    return '<div style="width:100%; text-align:right; clear:both; float:none;">'.
-           '  <input type="submit" name="'.$this->post_finish.'" value="'.msgPool::saveButton().'"/>&nbsp;'.
-           '  <input type="submit" name="'.$this->post_cancel.'" value="'.msgPool::cancelButton().'"/>'.
-           '</div>';
-  }
-
-  function dialog_execute ()
-  {
-    $this->dialog->save_object();
-    return $this->dialog->execute().$this->buttons();
-  }
-
-  function handle_finish ()
-  {
-    $this->dialog->save_object();
-    $msgs = $this->dialog->check();
-    if (count($msgs)) {
-      msg_dialog::displayChecks($msgs);
-      return $this->dialog->execute().$this->buttons();
-    }
-
-    $value = [];
-    foreach ($this->dialog->attributes as $attr) {
-      $value[$attr] = $this->dialog->$attr;
-    }
-
-    $this->attribute->addValue($value);
-    return FALSE;
-  }
-
-  function handle_cancel ()
-  {
-    if ($this->initialDialogValue !== NULL) {
-      $this->attribute->addValue($this->initialDialogValue);
-    }
-    return FALSE;
-  }
-}
-?>
diff --git a/include/simpleplugin/class_helpersAttribute.inc b/include/simpleplugin/class_helpersAttribute.inc
index 422eb62ef5f961a819646a0a3a9a49f95fcf5f88..df7a2601296837a7b441476d34d2a02d1b909014 100644
--- a/include/simpleplugin/class_helpersAttribute.inc
+++ b/include/simpleplugin/class_helpersAttribute.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+  Copyright (C) 2012-2016  FusionDirectory
 
   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
@@ -18,36 +18,34 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-/*! \brief This class allow to handle easily a String LDAP attribute that contains a mail address
+
+/*! \brief This class allow to handle easily a String LDAP attribute that needs to be validated by a test from class tests
  *
  */
-class MailAttribute extends StringAttribute
+class TestValidateAttribute extends StringAttribute
 {
-  protected $trim = TRUE;
+  protected $testFunc = '';
 
   function validate ()
   {
-    if (!tests::is_email($this->value)) {
-      return msgPool::invalid($this->getLabel(), $this->value);
+    $func = $this->testFunc;
+    if (!tests::$func($this->value)) {
+      return new SimplePluginCheckError(
+        $this,
+        SimplePluginCheckError::invalidValue(sprintf('"%s"', $this->value))
+      );
     }
   }
 }
 
-
-/*! \brief This class allow to handle easily a String LDAP attribute that needs to be validated by a test from class tests
+/*! \brief This class allow to handle easily a String LDAP attribute that contains a mail address
  *
  */
-class TestValidateAttribute extends StringAttribute
+class MailAttribute extends TestValidateAttribute
 {
-  protected $testFunc = '';
-
-  function validate ()
-  {
-    $testFunc = $this->testFunc;
-    if (!tests::$testFunc($this->value)) {
-      return msgPool::invalid($this->getLabel(), $this->value);
-    }
-  }
+  protected $trim       = TRUE;
+  protected $testFunc   = 'is_email';
+  protected $inputType  = 'email';
 }
 
 /*! \brief This class allow to handle easily a String LDAP attribute that contains a host name
@@ -81,9 +79,9 @@ class PathAttribute extends TestValidateAttribute
  */
 class URLAttribute extends TestValidateAttribute
 {
-  protected $trim = TRUE;
-
-  protected $testFunc = 'is_url';
+  protected $trim       = TRUE;
+  protected $testFunc   = 'is_url';
+  protected $inputType  = 'url';
 }
 
 /*! \brief This class allow to handle easily a String LDAP attribute that contains an IP (v4 or v6)
@@ -123,16 +121,14 @@ class MacAddressAttribute extends StringAttribute
 {
   protected $trim = TRUE;
 
-  function setValue ($value)
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = '', $acl = '')
   {
-    return parent::setValue(strtolower($value));
+    parent::__construct($label, $description, $ldapName, $required, $defaultValue, $acl, '/^([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}$/', '5E:FF:56:A2:AF:15');
   }
 
-  function validate ()
+  function setValue ($value)
   {
-    if (!tests::is_mac($this->value)) {
-      return msgPool::invalid($this->getLabel(), $this->value);
-    }
+    return parent::setValue(strtolower($value));
   }
 }
 
@@ -149,12 +145,12 @@ class CharSeparatedCompositeAttribute extends CompositeAttribute
     $this->sep = $sep;
   }
 
-  function readValues ($value)
+  function readValues (string $value): array
   {
     return explode($this->sep, $value);
   }
 
-  function writeValues ($values)
+  function writeValues (array $values)
   {
     return join($this->sep, $values);
   }
@@ -189,7 +185,7 @@ class CommaListAttribute extends CompositeAttribute
     $this->sep = $sep;
   }
 
-  function readValues ($value)
+  function readValues (string $value): array
   {
     if ($value == '') {
       return [[]];
@@ -198,7 +194,7 @@ class CommaListAttribute extends CompositeAttribute
     }
   }
 
-  function writeValues ($values)
+  function writeValues (array $values)
   {
     return join($this->sep, $values[0]);
   }
@@ -223,14 +219,11 @@ class UnitIntAttribute extends CompositeAttribute
     $this->setRequired($required); /* As we use linear rendering we want the asterisk in the label if required */
   }
 
-  function readValues ($value)
+  function readValues (string $value): array
   {
-    if ($value === '') {
-      return ['', 0];
-    }
     $choices = $this->attributes[1]->getChoices();
     sort($choices);
-    if ($value == 0) {
+    if (($value === '') || ($value == 0)) {
       return [$value, $choices[0]];
     }
     /* Find the appropriate unit */
@@ -242,7 +235,7 @@ class UnitIntAttribute extends CompositeAttribute
     return [$value / $choices[$i], $choices[$i]];
   }
 
-  function writeValues ($values)
+  function writeValues (array $values)
   {
     if ($values[0] === '') {
       return '';
@@ -250,7 +243,7 @@ class UnitIntAttribute extends CompositeAttribute
     return $values[0] * $values[1];
   }
 
-  function displayValue ($value)
+  function displayValue ($value): string
   {
     $values = $this->readValues($value);
     return $values[0].$this->attributes[1]->displayValue($values[1]);
@@ -265,11 +258,11 @@ class BytesSizeAttribute extends UnitIntAttribute
   function __construct ($label, $description, $ldapName, $required, $min = FALSE, $max = FALSE, $defaultValue = "", $acl = "")
   {
     $units = [
-      1             => _('B'),
-      pow(1024, 1)  => _('KiB'),
-      pow(1024, 2)  => _('MiB'),
-      pow(1024, 3)  => _('GiB'),
-      pow(1024, 4)  => _('TiB'),
+      1         => _('B'),
+      1024 ** 1 => _('KiB'),
+      1024 ** 2 => _('MiB'),
+      1024 ** 3 => _('GiB'),
+      1024 ** 4 => _('TiB'),
     ];
     parent::__construct($label, $description, $ldapName, $required, $units, $min, $max, $defaultValue, $acl);
   }
@@ -291,5 +284,3 @@ class TimeAttribute extends UnitIntAttribute
     parent::__construct($label, $description, $ldapName, $required, $units, $min, $max, $defaultValue, $acl);
   }
 }
-
-?>
diff --git a/include/simpleplugin/class_multiPlugin.inc b/include/simpleplugin/class_multiPlugin.inc
index ac57322fcd641ffac2f73c89a265854147ad26cc..1fb9512cf4043b2482487b2058f9f9fc035e6475 100644
--- a/include/simpleplugin/class_multiPlugin.inc
+++ b/include/simpleplugin/class_multiPlugin.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2021  FusionDirectory
 
   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
@@ -19,193 +19,50 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-/*! \brief   multiPlugin
-    This class provides the functionality to have multiple plugins in a single tab
+/**
+ * This class allows to have a simplePlugin instance which sections are dynamically loaded from other classes
+ *
+ * It is used for configuration plugins tab
  */
-
 class multiPlugin extends simplePlugin
 {
-  /* attribute list for save action */
-  var $objectclasses  = [];
-  var $ignore_account = TRUE;
-  var $plugin         = [];
+  protected $ignore_account = TRUE;
 
-  var $tabClass = '';
+  protected static $tabClass = '';
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [];
   }
 
-  function __construct ($dn = NULL, $object = NULL, $parent = NULL)
+  function __construct (string $dn = NULL, $object = NULL, $parent = NULL, bool $mainTab = FALSE)
   {
     global $config;
-    parent::__construct($dn, $object, $parent, FALSE);
 
-    $plInfos = pluglist::pluginInfos(get_class($this));
+    $attributesInfo = [];
 
-    /* Load accounts */
-    foreach ($config->data['TABS'][$this->tabClass] as $plug) {
+    /* Load sections */
+    foreach ($config->data['TABS'][static::$tabClass] as $plug) {
       if (!plugin_available($plug['CLASS'])) {
         continue;
       }
-      $name = $plug['CLASS'];
-      $this->plugin[$name] = new $name($dn, $object, $parent);
-
-      /* Acl base && category configuration,
-          these settings will be overloaded in main.inc,
-          if we are editing ourself */
-      $this->plugin[$name]->set_acl_category($plInfos['plCategory'][0]);
-      $this->plugin[$name]->set_acl_base($this->dn);
-    }
-  }
-
-  function execute ()
-  {
-    $display = "";
-
-    /* Do we represent a valid account? */
-    if ($this->parent === NULL) {
-      $enabled = FALSE;
-      foreach ($this->plugin as &$plug) {
-        if ($plug->is_account) {
-          $enabled = TRUE;
-          break;
-        }
-      }
-      unset($plug);
-      if (!$enabled) {
-        $display = '<img alt="'._('Error').'" src="geticon.php?context=status&amp;icon=dialog-error&amp;size=16" align="middle"/>&nbsp;<b>'.
-                    msgPool::noValidExtension()."</b>";
-        $display .= back_to_main();
-        return $display;
-      }
-    }
-
-    /* Execude  objects */
-    $is_first = TRUE;
+      $plInfos = pluglist::pluginInfos($plug['CLASS']);
 
-    $readOnly = $this->readOnly();
-
-    foreach ($this->plugin as &$plug) {
-      $plug->read_only = $readOnly;
-      if (!$is_first) {
-        $display .= '<p class="seperator plugbottom">&nbsp;</p>';
-      } else {
-        $is_first = FALSE;
+      if (isset($plInfos['plObjectClass'])) {
+        $this->objectclasses = array_merge_unique($this->objectclasses, $plInfos['plObjectClass']);
       }
-      $display .= $plug->execute();
-    }
-    unset($plug);
-
-    return $display;
-  }
-
-
-  /* Save data to object */
-  function save_object ()
-  {
-    foreach ($this->plugin as &$plug) {
-      $plug->save_object();
-    }
-    unset($plug);
-  }
-
-  function check ()
-  {
-    $message = parent::check();
-
-    foreach ($this->plugin as &$plug) {
-      if ($plug->is_account || $plug->ignore_account) {
-        $tmp      = $plug->check();
-        $message  = array_merge($message, $tmp);
-      }
-    }
-    unset($plug);
-
-    return $message;
-  }
 
-  function set_acl_category ($cat)
-  {
-    parent::set_acl_category($cat);
-    foreach ($this->plugin as &$plug) {
-      $plug->set_acl_category($cat);
+      $attributesInfo = array_merge($attributesInfo, $plug['CLASS']::getAttributesInfo());
     }
-    unset($plug);
-  }
 
-  function set_acl_base ($base)
-  {
-    parent::set_acl_base($base);
-    foreach ($this->plugin as &$plug) {
-      $plug->set_acl_base($base);
-    }
-    unset($plug);
-  }
-
-  public function setNeedEditMode ($bool)
-  {
-    parent::setNeedEditMode($bool);
-    foreach ($this->plugin as &$plug) {
-      $plug->setNeedEditMode($bool);
-    }
-    unset($plug);
-  }
+    parent::__construct($dn, $object, $parent, $mainTab, $attributesInfo);
 
-  /* Save to LDAP */
-  function save ()
-  {
-    $errors = [];
-    /* Save objects */
-    foreach ($this->plugin as &$plug) {
-      $plug->dn = $this->dn;
-      if ($plug->is_account || $plug->ignore_account) {
-        $result = $plug->save();
-      } else {
-        $result = $plug->remove(FALSE);
-      }
-      if (!empty($result)) {
-        $errors = array_merge($errors, $result);
-      }
-    }
-    unset($plug);
-    return $errors;
-  }
-
-  function remove ($fulldelete = FALSE)
-  {
-    $errors = [];
-    /* Remove objects */
-    foreach ($this->plugin as &$plug) {
-      $plug->dn = $this->dn;
-      $result = $plug->remove($fulldelete);
-      if (!empty($result)) {
-        $errors = array_merge($errors, $result);
+    /* Load sections */
+    foreach ($config->data['TABS'][static::$tabClass] as $plug) {
+      if (!plugin_available($plug['CLASS'])) {
+        continue;
       }
+      $plug['CLASS']::fixAttributesOnLoad($this);
     }
-    unset($plug);
-    return $errors;
-  }
-
-  function adapt_from_template ($attrs, $skip = [])
-  {
-    /* Adapt objects */
-    foreach ($this->plugin as &$plug) {
-      $plug->dn = $this->dn;
-      $plug->adapt_from_template($attrs, $skip);
-    }
-    unset($plug);
-  }
-
-  function resetCopyInfos ()
-  {
-    $this->dn = 'new';
-    foreach ($this->plugin as &$plug) {
-      $plug->resetCopyInfos();
-    }
-    unset($plug);
   }
 }
-
-?>
diff --git a/include/select/userGroupSelect/class_userGroupSelect.inc b/include/simpleplugin/class_multiPluginSection.inc
similarity index 57%
rename from include/select/userGroupSelect/class_userGroupSelect.inc
rename to include/simpleplugin/class_multiPluginSection.inc
index cd820399c7d176fe1492bf90becf7dd366eba47e..eceb5274364665361f429c6af0694e7764aa74c9 100644
--- a/include/select/userGroupSelect/class_userGroupSelect.inc
+++ b/include/simpleplugin/class_multiPluginSection.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2021-2021  FusionDirectory
 
   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
@@ -18,28 +18,27 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-/*!
- * \brief User and/or POSIX group selection
+/**
+ * Base class for multiPlugin sections
  */
-class userGroupSelect extends userSelect
+abstract class multiPluginSection
 {
-  protected $objectTypes = ['user', 'group'];
-  protected $autoFilterAttributes = ['dn', 'cn', 'uid', 'description', 'mail'];
+  static function plInfo (): array
+  {
+    return [];
+  }
 
-  function __construct ()
+  static abstract function getAttributesInfo (): array;
+
+  static function generatePlProvidedAcls (array $attributesInfo, bool $operationalAttributes = NULL): array
   {
-    if (class_available('mixedGroup')) {
-      $this->objectTypes = ['user', 'ogroup'];
-    }
-    parent::__construct();
+    return simplePlugin::generatePlProvidedAcls($attributesInfo, $operationalAttributes);
   }
-}
 
-/*!
- * \brief User, user group and/or role selection
- */
-class userGroupRoleSelect extends userGroupSelect
-{
-  protected $objectTypes = ['user', 'group', 'role', 'ogroup'];
+  /**
+   * If the section needs to initialize something after LDAP load
+   */
+  static function fixAttributesOnLoad (multiPlugin $multiPlugin)
+  {
+  }
 }
-?>
diff --git a/include/simpleplugin/class_simpleManagement.inc b/include/simpleplugin/class_simpleManagement.inc
deleted file mode 100644
index 98852aeb0a79b4ed35e5e675cbb907af3f40321f..0000000000000000000000000000000000000000
--- a/include/simpleplugin/class_simpleManagement.inc
+++ /dev/null
@@ -1,1364 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \brief Template dialog handling
- */
-class templateDialog
-{
-  protected $simpleManagement;
-  protected $type;
-  protected $template = NULL;
-  protected $templates;
-  protected $target = NULL;
-
-  protected $tabObject;
-
-  protected $post_finish = 'template_continue';
-  protected $post_cancel = 'template_cancel';
-
-  function __construct ($simpleManagement, $type, $dn = NULL, $target = NULL)
-  {
-    $this->simpleManagement = $simpleManagement;
-    $this->type             = $type;
-    $this->templates        = objects::getTemplates($this->type);
-    if ($dn !== NULL) {
-      if (isset($this->templates[$dn])) {
-        $this->template = new template($this->type, $dn);
-      } else {
-        trigger_error('Unknown template "'.$dn.'"');
-      }
-    }
-    $this->target = $target;
-  }
-
-  function save_object ()
-  {
-    if (isset($_POST[$this->post_cancel])) {
-      return $this->handle_cancel();
-    }
-
-    if (($this->target === NULL) &&
-        (isset($_POST[$this->post_finish]) || isset($_GET[$this->post_finish])) &&
-        is_object($this->template)) {
-      $this->template->save_object();
-      return $this->handle_finish();
-    }
-
-    if (
-      isset($_POST['template']) &&
-      isset($this->templates[$_POST['template']])
-      ) {
-      if (is_object($this->template)) {
-        trigger_error('redefining template object');
-      }
-      $this->template = new template($this->type, $_POST['template']);
-      /* This method can loop if there are several targets */
-      unset($_POST['template']);
-    }
-    if (is_object($this->template)) {
-      if ($this->target !== NULL) {
-        $this->simpleManagement->openTabObject($this->template->apply($this->target), $this->template->getBase());
-        $this->simpleManagement->handleTemplateApply();
-        return FALSE;
-      } else {
-        $this->template->save_object();
-      }
-    }
-
-    return TRUE;
-  }
-
-  function setNextTarget ($target)
-  {
-    $this->target = $target;
-    $this->template->reset();
-  }
-
-  function execute ()
-  {
-    $smarty = get_smarty();
-    if (is_object($this->template)) {
-      $templateOutput = $this->template->execute();
-      if ($this->template->dialogOpened()) {
-        return $templateOutput;
-      } else {
-        $smarty->assign('template_dialog', $templateOutput);
-      }
-    } else {
-      $smarty->assign('templates', $this->templates);
-    }
-    $display = $smarty->fetch(get_template_path('template.tpl'));
-    return $display;
-  }
-
-  function handle_finish ()
-  {
-    $this->simpleManagement->closeDialogs();
-    $this->simpleManagement->openTabObject($this->template->apply(), $this->template->getBase());
-    return FALSE;
-  }
-
-  function handle_cancel ()
-  {
-    $this->simpleManagement->remove_lock();
-    $this->simpleManagement->closeDialogs();
-    return FALSE;
-  }
-}
-
-/*!
- * \brief Management base class
- */
-class simpleManagement
-{
-  // The currently used object(s) (e.g. in edit, removal)
-  // $dn is public due to some compatibility problems with class plugin..
-  public $dn      = '';
-  protected $dns  = [];
-
-  // The last used object(s).
-  protected $last_dn  = '';
-  protected $last_dns = [];
-
-  // The common places the displayed objects are stored in. (e.g. array("ou=groups,",".."))
-  protected $storagePoints = [];
-
-  // The opened object.
-  protected $tabObject    = NULL;
-  protected $dialogObject = NULL;
-
-  // The last opened object.
-  protected $last_tabObject     = NULL;
-  protected $last_dialogObject  = NULL;
-
-  // Whether to display the apply button or not
-  protected $displayApplyBtn = FALSE;
-
-  // Whether to display a header or not.
-  protected $skipHeader = FALSE;
-
-  // Whether to display a footer or not.
-  protected $skipFooter = FALSE;
-
-  // Copy&Paste handler
-  protected $cpHandler = NULL;
-
-  // Indicates that we want to paste objects right now.
-  protected $cpPastingStarted = FALSE;
-
-  // The Snapshot handler class.
-  protected $snapHandler = NULL;
-
-  // The listing handlers
-  protected $headpage = NULL;
-  protected $filter   = NULL;
-
-  // A list of configured actions/events
-  protected $actions = [];
-
-  // Some management classes are used in tab groups and needs this
-  public $is_template = FALSE;
-  public $attributes  = [];
-
-  /* Attributes that child classes should override */
-  protected $objectTypes  = [];
-
-  /* Attributes that child classes can override */
-  protected $departmentBrowser      = TRUE;
-  protected $departmentRootVisible  = TRUE;
-  protected $baseMode               = TRUE;
-  protected $multiSelect            = TRUE;
-
-  protected $filterXMLPath    = NULL;
-  protected $listXMLPath      = NULL;
-  protected $autoFilter       = TRUE;
-  protected $autoActions      = TRUE;
-  protected $skipCpHandler    = FALSE;
-
-  protected $autoFilterAttributes = ['dn', 'cn', 'description'];
-
-  protected $headpageClass = "listing";
-
-  public static $skipTemplates = TRUE;
-  public static $skipSnapshots = FALSE;
-
-  function __construct ()
-  {
-    global $config;
-
-    if ($this->filterXMLPath === NULL) {
-      $this->filterXMLPath = get_template_path('simple-filter.xml', TRUE, dirname(__FILE__));
-    }
-    if ($this->listXMLPath === NULL) {
-      $this->listXMLPath = get_template_path('simple-list.xml', TRUE, dirname(__FILE__));
-    }
-
-    foreach ($this->objectTypes as &$object) {
-      $object = strtoupper($object);
-    }
-    unset($object);
-
-    $this->storagePoints = [];
-    foreach ($this->objectTypes as $key => $object) {
-      try {
-        $i = objects::infos($object);
-      } catch (NonExistingObjectTypeException $e) {
-        /* Remove objectTypes which are not existing */
-        unset($this->objectTypes[$key]);
-        continue;
-      }
-      if ($i['ou'] !== NULL) {
-        $this->storagePoints[] = $i['ou'];
-      }
-    }
-    $this->storagePoints = array_unique($this->storagePoints);
-    if (count($this->storagePoints) == 0) {
-      $this->storagePoints[] = '';
-    }
-
-    // Build filter
-    if (session::is_set(get_class($this).'_filter')) {
-      $filter = session::get(get_class($this).'_filter');
-    } else {
-      $filter = new filter($this->filterXMLPath);
-      $filter->setObjectStorage($this->storagePoints);
-    }
-    $this->setFilter($filter);
-
-    // Build headpage
-    $this->headpage = new $this->headpageClass($this->parseXML($this->listXMLPath));
-    $this->headpage->setFilter($filter);
-
-    // Add copy&paste and snapshot handler.
-    if (!$this->skipCpHandler) {
-      $this->cpHandler = new CopyPasteHandler();
-      $this->headpage->setCopyPasteHandler($this->cpHandler);
-      $this->registerAction('copy',   'copyPasteHandler');
-      $this->registerAction('cut',    'copyPasteHandler');
-      $this->registerAction('paste',  'copyPasteHandler');
-    }
-    if (!self::$skipSnapshots && ($config->get_cfg_value('enableSnapshots') == 'TRUE')) {
-      $this->snapHandler = new SnapshotHandler();
-      $this->headpage->setSnapshotHandler($this->snapHandler);
-      $this->registerAction('snapshot', 'createSnapshotDialog');
-      $this->registerAction('restore',  'restoreSnapshotDialog');
-    }
-
-    // Register default actions
-    $this->registerAction('new',    'newEntry');
-    $this->registerAction('edit',   'editEntry');
-    $this->registerAction('apply',  'applyChanges');
-    $this->registerAction('save',   'saveChanges');
-
-    $this->registerAction('cancel',       'cancelEdit');
-    $this->registerAction('cancelDelete', 'cancelEdit');
-
-    $this->registerAction('remove',           'removeEntryRequested');
-    $this->registerAction('removeConfirmed',  'removeEntryConfirmed');
-
-    $this->configureHeadpage();
-    $this->configureFilter();
-    if ($this->baseMode === FALSE) {
-      $this->headpage->setBase($config->current['BASE']);
-    }
-  }
-
-  /* Build the action menu, fill the object definition, etc, based on objectTypes info */
-  function configureHeadpage ()
-  {
-    if ($this->autoActions) {
-      if (static::$skipTemplates) {
-        $this->headpage->xmlData['actionmenu']['action'][0]['action'] = [];
-      } else {
-        $this->headpage->xmlData['actionmenu']['action'][0]['action'] = [
-          [
-            'type'    => 'sub',
-            'image'   => 'geticon.php?context=devices&icon=template&size=16',
-            'label'   => _('Template'),
-            'action'  => [],
-          ],
-          [
-            'type'    => 'sub',
-            'image'   => 'geticon.php?context=actions&icon=document-new&size=16',
-            'label'   => _('From template'),
-            'action'  => [],
-          ],
-        ];
-      }
-    }
-    $this->configureHeadline();
-    foreach ($this->objectTypes as $object) {
-      $i = objects::infos($object);
-
-      if (!isset($i['icon'])) {
-        trigger_error('Missing icon for type '.$object);
-        $i['icon'] = '';
-      }
-
-      $filterObject = objects::getFilterObject($object);
-      $this->headpage->objectTypes[$object] =
-        [
-          'label'       => $i['name'],
-          'category'    => $i['aclCategory'],
-          'class'       => $i['mainTab'],
-          'image'       => $i['icon'],
-          'filter'      => $filterObject,
-          'nameAttr'    => $i['nameAttr'],
-        ];
-      if (!static::$skipTemplates) {
-        $this->headpage->objectTypes['template_'.$object] =
-          [
-            'label'       => sprintf(_('%s template'), $i['name']),
-            'category'    => $i['aclCategory'],
-            'class'       => 'template',
-            'image'       => 'geticon.php?context=devices&icon=template&size=16',
-            'filter'      =>
-              new ldapFilter(
-                '&',
-                [
-                  new ldapFilterLeaf('objectClass', '=', 'fdTemplate'),
-                  fdTemplateFilter($filterObject),
-                ]
-              ),
-            'nameAttr'    => $i['nameAttr'],
-          ];
-      }
-      $this->headpage->categories[] = $i['aclCategory'];
-      if ($this->autoActions) {
-        $this->registerAction('new_'.$object, 'newEntry');
-        $icon = 'geticon.php?context=actions&amp;icon=document-new&amp;size=16';
-        if (isset($i['icon'])) {
-          $icon = $i['icon'];
-        } else {
-          $infos = pluglist::pluginInfos($i['mainTab']);
-          if (isset($infos['plIcon'])) {
-            $icon = $infos['plIcon'];
-          }
-        }
-        $this->headpage->xmlData['actionmenu']['action'][0]['action'][] = [
-          'name'  => 'new_'.$object,
-          'type'  => 'entry',
-          'image' => $icon,
-          'label' => $i['name'],
-          'acl'   => $i['aclCategory'].'/'.$i['mainTab'].'[c]',
-        ];
-        if (!static::$skipTemplates) {
-          $this->registerAction('new_template_'.$object, 'newEntryTemplate');
-          $this->registerAction('template_apply_'.$object, 'newEntryFromTemplate');
-          $this->headpage->xmlData['actionmenu']['action'][0]['action'][0]['action'][] = [
-            'name'  => 'new_template_'.$object,
-            'type'  => 'entry',
-            'image' => $icon,
-            'label' => $i['name'],
-            'acl'   => $i['aclCategory'].'/template[c]',
-          ];
-          $this->headpage->xmlData['actionmenu']['action'][0]['action'][1]['action'][] = [
-            'name'  => 'template_apply_'.$object,
-            'type'  => 'entry',
-            'image' => $icon,
-            'label' => $i['name'],
-            'acl'   => $i['aclCategory'].'/'.$i['mainTab'].'[c]',
-          ];
-        }
-      }
-    }
-    if ($this->autoActions && !static::$skipTemplates) {
-      $this->registerAction('template_apply', 'newEntryFromTemplate');
-    }
-    $this->headpage->refreshBasesList();
-  }
-
-  function configureHeadline ()
-  {
-    $pInfos = pluglist::pluginInfos(get_class($this));
-    $this->headpage->headline = $pInfos['plShortName'];
-  }
-
-  function configureFilterCategory ()
-  {
-    $pInfos = pluglist::pluginInfos(get_class($this));
-    $cat = NULL;
-    if (isset($pInfos['plCategory'])) {
-      $cat = key($pInfos['plCategory']);
-      if (is_numeric($cat)) {
-        $cat = $pInfos['plCategory'][$cat];
-      }
-    } elseif (isset($pInfos['plObjectType'])) {
-      $ot = key($pInfos['plObjectType']);
-      if (is_numeric($ot)) {
-        $ot = $pInfos['plObjectType'][$ot];
-      }
-      $infos = objects::infos($ot);
-      $cat = $infos['aclCategory'];
-    }
-    if ($cat === NULL) {
-      trigger_error('Could not find a category for '.get_class($this));
-    }
-    $this->filter->category = $cat;
-  }
-
-  /* Build the filter(s) based on objectTypes info */
-  function configureFilter ()
-  {
-    if ($this->autoFilter) {
-      $this->configureFilterCategory();
-      $attributes = $this->autoFilterAttributes;
-      $filter     = '(|';
-      foreach ($this->objectTypes as $object) {
-        $tag    = 'FILTER'.$object;
-        $filter .= '$'.$tag;
-        $i      = objects::infos($object);
-        $this->filter->elements[$tag] = [
-          'type'    => 'checkbox',
-          'tag'     => $tag,
-          'default' => TRUE,
-          'unset'   => [],
-          'set'     => preg_replace('/\$/', '\\\$', $i['filter'])
-        ];
-        $this->filter->elementValues[$tag] = TRUE;
-
-        if ($i['mainAttr']) {
-          $attributes[] = $i['mainAttr'];
-        }
-        if ($i['nameAttr']) {
-          $attributes[] = $i['nameAttr'];
-        }
-      }
-      if (!static::$skipTemplates) {
-        $tag    = 'FILTERTEMPLATE';
-        $filter .= '$'.$tag;
-        $this->filter->elements[$tag] = [
-          'type'    => 'checkbox',
-          'tag'     => $tag,
-          'default' => TRUE,
-          'unset'   => [],
-          'set'     => '(objectClass=fdTemplate)'
-        ];
-        $this->filter->elementValues[$tag] = TRUE;
-
-        $attributes[] = 'fdTemplateField';
-      }
-      $filter .= ')';
-      $attributes = array_values(array_unique($attributes));
-      $this->filter->query[0]['filter']       = '(&'.$filter.'$NAME)';
-      $this->filter->query[0]['attribute']    = $attributes;
-      $this->filter->elements['NAME']['set']  = '(|('.join('=*$*)(', $attributes).'=*$*))';
-      $this->filter->elements['NAME']['autocomplete']['filter']     = '(&'.$filter.'(|('.join('=*$NAME*)(', $attributes).'=*$NAME*))'.')';
-      $this->filter->elements['NAME']['autocomplete']['attribute']  = $attributes;
-      uasort($this->filter->elements, 'strlenSort');
-      $this->filter->elements = array_reverse($this->filter->elements);
-    }
-  }
-
-  function parseXML ($file)
-  {
-    $contents = file_get_contents($file);
-    $data     = xml::xml2array($contents, 1);
-    foreach (['departmentBrowser','departmentRootVisible','baseMode','multiSelect'] as $var) {
-      $data['list']['definition']["$var"] = ($this->$var ? 'true' : 'false');
-    }
-    return $data;
-  }
-
-  function getHeadpage ()
-  {
-    return $this->headpage;
-  }
-
-  function getFilter ()
-  {
-    return $this->filter;
-  }
-
-  /*!
-   * \brief Set a new filter
-   *
-   * \param object $filter The new filter
-   */
-  function setFilter ($filter)
-  {
-    $this->filter = $filter;
-  }
-
-  /*!
-   *  \brief  Every click in the list user interface sends an event
-   *          here can we connect those events to a method.
-   *          eg. see simpleManagement::registerEvent('new','createUser')
-   *          When the action/event new is send, the method 'createUser'
-   *          will be called.
-   */
-  function registerAction ($action, $target)
-  {
-    $this->actions[$action] = $target;
-  }
-
-  function getType ($dn)
-  {
-    return $this->getHeadpage()->getType($dn);
-  }
-
-  function renderList ()
-  {
-    global $config;
-    $smarty = get_smarty();
-    $filters = [];
-    foreach ($this->objectTypes as $object) {
-      $filters[] = [
-        'id'    => 'FILTER'.$object,
-        'label' => sprintf(_('Show %s'), $config->data['OBJECTS'][$object]['name'])
-      ];
-    }
-    if (!static::$skipTemplates) {
-      $filters[] = [
-        'id'    => 'FILTERTEMPLATE',
-        'label' => sprintf(_('Show %s'), _('Template'))
-      ];
-    }
-    $smarty->assign('objectFilters', $filters);
-    $this->headpage->update();
-    $display = $this->headpage->render();
-    return $this->getHeader().$display;
-  }
-
-  /*!
-   * \brief  Execute this plugin
-   *          Handle actions/events, locking, snapshots, dialogs, tabs,...
-   */
-  function execute ()
-  {
-    // Ensure that html posts and gets are kept even if we see a 'Entry islocked' dialog.
-    $vars = ['/^act$/','/^listing/','/^PID$/'];
-    session::set('LOCK_VARS_TO_USE', $vars);
-
-    /* Display the copy & paste dialog, if it is currently open */
-    $ret = $this->copyPasteHandler();
-    if ($ret) {
-      return $this->getHeader().$ret;
-    }
-
-    // Update filter
-    if ($this->filter) {
-      $this->filter->update();
-      session::set(get_class($this).'_filter', $this->filter);
-      session::set('autocomplete', $this->filter);
-      if (!$this->filter->isValid()) {
-        msg_dialog::display(_('Filter error'), _('The filter is incomplete!'), ERROR_DIALOG);
-      }
-    }
-
-    // Handle actions (POSTs and GETs)
-    $str = $this->handleActions($this->detectPostActions());
-    if ($str) {
-      return $this->getHeader().$str;
-    }
-
-    /* Save tab or dialog object */
-    if ($this->tabObject instanceOf simpleTabs) {
-      $this->tabObject->save_object();
-    } elseif (is_object($this->dialogObject) && method_exists($this->dialogObject, 'save_object')) {
-      $this->dialogObject->save_object();
-    }
-
-    /* Display tab object */
-    if ($this->tabObject instanceOf simpleTabs) {
-      $display = $this->tabObject->execute();
-      $display .= $this->getTabFooter();
-      return $this->getHeader().$display;
-    }
-
-    /* Display dialog object */
-    if (is_object($this->dialogObject) && method_exists($this->dialogObject, 'execute')) {
-      $display = $this->dialogObject->execute();
-      $display .= $this->getTabFooter();
-      return $this->getHeader().$display;
-    }
-
-    // Set current restore base for snapshot handling.
-    if (is_object($this->snapHandler)) {
-      $bases = [];
-      foreach ($this->storagePoints as $sp) {
-        $bases[] = $sp.$this->headpage->getBase();
-      }
-
-      // No bases specified? Try base
-      if (!count($bases)) {
-        $bases[] = $this->headpage->getBase();
-      }
-
-      $this->snapHandler->setSnapshotBases($bases);
-    }
-
-    // Display list
-    return $this->renderList();
-  }
-
-  /*!
-   * \brief  Generates the plugin header which is displayed whenever a tab object is opened.
-   */
-  protected function getHeader ()
-  {
-    if ($this->skipHeader) {
-      return '';
-    }
-
-    $plInfos  = pluglist::pluginInfos(get_class($this));
-    $plTitle  = $plInfos['plTitle'];
-    $plIcon   = $plInfos['plIcon'];
-
-    if (!preg_match('/^geticon/', $plIcon)) {
-      $plIcon = get_template_path($plIcon);
-    }
-    return print_header($plIcon, $plTitle, get_object_info());
-  }
-
-  /*!
-   * \brief  Generates the footer which is used whenever a tab object is displayed.
-   */
-  protected function getTabFooter ()
-  {
-    // Do not display tab footer for non tab objects
-    if (!($this->tabObject instanceOf simpleTabs)) {
-      return '';
-    }
-
-    // Check if there is a dialog opened - We don't need any buttons in this case.
-    if ($this->tabObject->dialogOpened()) {
-      return '';
-    }
-
-    // Skip footer if requested;
-    if ($this->skipFooter) {
-      return '';
-    }
-
-    // In case an of locked entry, we may have opened a read-only tab.
-    $str = '';
-    if ($this->tabObject->readOnly()) {
-      $str .= '<p class="plugbottom">'."\n".
-        '<input type="submit" name="edit_cancel" value="'.msgPool::cancelButton().'">'."\n".
-        '</p>';
-      return $str;
-    } else {
-      // Display ok, (apply) and cancel buttons
-      $str .= '<p class="plugbottom">'."\n";
-      $str .= '<input type="submit" name="edit_finish" style="width:80px" value="'.msgPool::okButton().'"/>'."\n";
-      $str .= "&nbsp;\n";
-      if ($this->displayApplyBtn) {
-        $str .= '<input type="submit" name="edit_apply" value="'.msgPool::applyButton().'"/>'."\n";
-        $str .= "&nbsp;\n";
-      }
-      $str .= '<input type="submit" name="edit_cancel" value="'.msgPool::cancelButton().'"/>'."\n";
-      $str .= '</p>';
-    }
-    return $str;
-  }
-
-  /*!
-   * \brief  This method intiates the object creation.
-   *
-   * \param  String  $action  The name of the action which was the used as trigger.
-   *
-   * \param  Array   $target  A list of object dns, which should be affected by this method.
-   *
-   * \param  Array   $all     A combination of both 'action' and 'target'.
-   */
-  function newEntry ($action, array $target, array $all)
-  {
-    $type   = strtoupper(preg_replace('/^new_/', '', $action));
-
-    $this->displayApplyBtn  = FALSE;
-    $this->dn               = 'new';
-    $this->is_single_edit   = FALSE;
-
-    set_object_info($this->dn);
-
-    // Open object
-    $this->openTabObject(objects::open($this->dn, $type), $this->headpage->getBase());
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "Create new entry initiated!");
-  }
-
-  function newEntryTemplate ($action, array $target, array $all)
-  {
-    if (static::$skipTemplates) {
-      return;
-    }
-    $action = preg_replace('/^new_template_/', 'new_', $action);
-    $this->newEntry($action, $target, $all);
-    $this->tabObject->setTemplateMode('template_cn');
-  }
-
-  function newEntryFromTemplate ($action, array $target, array $all)
-  {
-    if (static::$skipTemplates) {
-      return;
-    }
-    if (isset ($target[0])) {
-      $dn = $target[0];
-    } else {
-      $dn = NULL;
-    }
-    if ($action == 'template_apply') {
-      if ($dn === NULL) {
-        return;
-      }
-      $type = $this->getType($dn);
-      $type = preg_replace('/^template_/', '', $type);
-    } else {
-      $type = preg_replace('/^template_apply_/', '', $action);
-    }
-    $this->dialogObject = new templateDialog($this, $type, $dn);
-  }
-
-  function applyTemplateToEntry ($action, array $target, array $all)
-  {
-    global $ui;
-    if (static::$skipTemplates) {
-      return;
-    }
-    if (empty($target)) {
-      return;
-    }
-    $type       = preg_replace('/^template_apply_to_/', '', $action);
-    $this->dns  = $target;
-
-    // check locks
-    if ($locks = get_locks($this->dns)) {
-      return gen_locked_message($locks, $this->dns);
-    }
-
-    // Add locks
-    add_lock($this->dns, $ui->dn);
-
-    $this->dn           = array_shift($this->dns);
-    $this->dialogObject = new templateDialog($this, $type, NULL, $this->dn);
-  }
-
-  function handleTemplateApply ($cancel = FALSE)
-  {
-    if (static::$skipTemplates) {
-      return;
-    }
-    if ($cancel) {
-      $msgs = [];
-    } else {
-      $msgs = $this->tabObject->save();
-    }
-    if (count($msgs)) {
-      msg_dialog::displayChecks($msgs);
-      return;
-    } else {
-      if (!$cancel) {
-        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Template applied!');
-      }
-      del_lock($this->dn);
-      if (empty($this->dns)) {
-        $this->closeDialogs();
-      } else {
-        $this->last_tabObject = $this->tabObject;
-        $this->tabObject      = NULL;
-        $this->dn             = array_shift($this->dns);
-        $this->dialogObject->setNextTarget($this->dn);
-        $this->dialogObject->save_object();
-      }
-    }
-  }
-
-  /*!
-   * \brief  Save object modifications and closes dialogs (returns to object listing).
-   *          - Calls 'simpleTabs::save' to save back object modifications (e.g. to ldap).
-   *          - Calls 'simpleManagement::closeDialogs' to return to the object listing.
-   */
-  protected function saveChanges ()
-  {
-    if (($this->tabObject instanceOf simpleTabs) && ($this->dialogObject instanceOf templateDialog)) {
-      $this->tabObject->save_object();
-      $this->handleTemplateApply();
-      return;
-    }
-    if ($this->tabObject instanceOf simpleTabs) {
-      $this->tabObject->save_object();
-      $msgs = $this->tabObject->save();
-      if (count($msgs)) {
-        msg_dialog::displayChecks($msgs);
-        return;
-      } else {
-        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Entry saved!');
-        $this->remove_lock();
-        $this->closeDialogs();
-      }
-    } elseif ($this->dialogObject instanceOf simplePlugin) {
-      $this->dialogObject->save_object();
-      $msgs = $this->dialogObject->check();
-      if (count($msgs)) {
-        msg_dialog::displayChecks($msgs);
-        return;
-      } else {
-        $this->dialogObject->save();
-        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Entry saved!');
-        $this->remove_lock();
-        $this->closeDialogs();
-      }
-    }
-  }
-
-  /*!
-   *  \brief  Save object modifications and keep dialogs opened
-   */
-  protected function applyChanges ()
-  {
-    if ($this->tabObject instanceOf simpleTabs) {
-      $this->tabObject->save_object();
-      $msgs = $this->tabObject->save();
-      if (count($msgs)) {
-        msg_dialog::displayChecks($msgs);
-      } else {
-        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dns, 'Modifications applied!');
-        $this->tabObject->re_init();
-      }
-    }
-  }
-
-  /*!
-   * \brief  Editing an object was caneled.
-   *          Close dialogs/tabs and remove locks.
-   */
-  protected function cancelEdit ()
-  {
-    if (($this->tabObject instanceOf simpleTabs) && ($this->dialogObject instanceOf templateDialog)) {
-      $this->handleTemplateApply(TRUE);
-      return;
-    }
-    $this->remove_lock();
-    $this->closeDialogs();
-  }
-
-  /*!
-   * \brief  This method opens an existing object or a list of existing objects to be edited.
-   *
-   * \param  String  $action  The name of the action which was the used as trigger.
-   *
-   * \param  Array   $target  A list of object dns, which should be affected by this method.
-   *
-   * \param  Array   $all     A combination of both 'action' and 'target'.
-   */
-  function editEntry ($action, array $target, array $all)
-  {
-    global $ui;
-    // Do not create a new tabObject while there is already one opened,
-    //  the user may have just pressed F5 to reload the page.
-    if (is_object($this->tabObject)) {
-      return;
-    }
-
-    $this->displayApplyBtn = (count($target) == 1);
-
-    // Single edit - we only got one object dn.
-    if (count($target) == 1) {
-      $type = $this->getType($target[0]);
-      if ($type === NULL) {
-        trigger_error('Could not find type for '.$target[0].', open canceled');
-        return;
-      }
-      if (preg_match('/^template_/', $type) && !static::$skipTemplates) {
-        $type = preg_replace('/^template_/', '', $type);
-      }
-
-      $this->is_single_edit = TRUE;
-
-      // Get the dn of the object and creates lock
-      $this->dn = array_pop($target);
-      set_object_info($this->dn);
-      if ($locks = get_locks($this->dn, TRUE)) {
-        return gen_locked_message($locks, $this->dn, TRUE);
-      }
-      add_lock($this->dn, $ui->dn);
-
-      // Open object
-      $this->openTabObject(objects::open($this->dn, $type), $this->dn);
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "Edit entry initiated!");
-      if (isset($all['subaction'])) {
-        if ($this->handleSubAction($all) == FALSE) {
-          trigger_error('Was not able to handle subaction: '.$all['subaction']);
-        }
-      }
-    }
-  }
-
-  /*!
-   * \brief  Detects actions/events send by the ui
-   *           and the corresponding targets.
-   */
-  function detectPostActions ()
-  {
-    if (!is_object($this->headpage)) {
-      trigger_error("No valid headpage given....!");
-      return [];
-    }
-    $action = $this->headpage->getAction();
-    if (isset($_POST['edit_cancel'])) {
-      $action['action'] = 'cancel';
-    } elseif (isset($_POST['edit_finish'])) {
-      $action['action'] = 'save';
-    } elseif (isset($_POST['edit_apply'])) {
-      $action['action'] = 'apply';
-    }
-    if (!$this->is_modal_dialog()) {
-      if (isset($_POST['delete_confirmed'])) {
-        $action['action'] = 'removeConfirmed';
-      }
-      if (isset($_POST['delete_cancel'])) {
-        $action['action'] = 'cancelDelete';
-      }
-    }
-
-    return $action;
-  }
-
-  /*!
-   *  \brief  Calls the registered method for a given action/event.
-   */
-  function handleActions ($action)
-  {
-    // Start action
-    if (isset($this->actions[$action['action']])) {
-      $func = $this->actions[$action['action']];
-      if (!isset($action['targets'])) {
-        $action['targets'] = [];
-      }
-      return $this->$func($action['action'], $action['targets'], $action);
-    }
-  }
-
-  protected function handleSubAction ($all)
-  {
-    if (preg_match('/^tab_/', $all['subaction'])) {
-      $tab = preg_replace('/^tab_/', '', $all['subaction']);
-      if (isset($this->tabObject->by_object[$tab])) {
-        $this->tabObject->current = $tab;
-      } else {
-        trigger_error('Unknown tab: '.$tab);
-      }
-      return TRUE;
-    }
-    return FALSE;
-  }
-
-  function openTabObject ($object, $base)
-  {
-    $this->tabObject = $object;
-    $this->tabObject->set_acl_base($base);
-    $this->tabObject->parent = &$this;
-  }
-
-  /*!
-   * \brief  This method closes dialogs
-   *          and cleans up the cached object info and the ui.
-   */
-  public function closeDialogs ()
-  {
-    $this->last_dn  = $this->dn;
-    $this->dn       = "";
-    $this->last_dns = $this->dns;
-    $this->dns      = [];
-
-    $this->last_tabObject     = $this->tabObject;
-    $this->tabObject          = NULL;
-    $this->last_dialogObject  = $this->dialogObject;
-    $this->dialogObject       = NULL;
-
-    $this->skipFooter   = FALSE;
-    set_object_info();
-  }
-
-  /*!
-   * \brief  Removes ldap object locks created by this class.
-   *         Whenever an object is edited, we create locks to avoid
-   *         concurrent modifications.
-   *         This locks will automatically removed here.
-   */
-  function remove_lock ()
-  {
-    if (!empty($this->dn) && $this->dn != "new") {
-      del_lock($this->dn);
-    }
-    if (count($this->dns)) {
-      del_lock($this->dns);
-    }
-  }
-
-  function is_modal_dialog ()
-  {
-    return (is_object($this->tabObject) || is_object($this->dialogObject));
-  }
-
-  /*! \brief    Queue selected objects to be removed.
-   *            Checks ACLs, Locks and ask for confirmation.
-   */
-  protected function removeEntryRequested ($action, array $target, array $all)
-  {
-    global $ui;
-    $disallowed = [];
-    $this->dns  = [];
-
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, "Entry removal requested!");
-
-    // Check permissons for each target
-    foreach ($target as $dn) {
-      $type = $this->getType($dn);
-      if (preg_match('/^template_/', $type) && !static::$skipTemplates) {
-        $type = preg_replace('/^template_/', '', $type);
-      }
-      try {
-        $info = objects::infos($type);
-        $acl  = $ui->get_permissions($dn, $info['aclCategory'].'/'.$info['mainTab']);
-        if (preg_match('/d/', $acl)) {
-          $this->dns[] = $dn;
-        } else {
-          $disallowed[] = $dn;
-        }
-      } catch (NonExistingObjectTypeException $e) {
-        trigger_error("Unknown object type received :".$e->getMessage());
-      }
-    }
-    if (count($disallowed)) {
-      msg_dialog::display(_('Permission'), msgPool::permDelete($disallowed), INFO_DIALOG);
-    }
-
-    // We've at least one entry to delete.
-    if (count($this->dns)) {
-
-      // check locks
-      if ($locks = get_locks($this->dns)) {
-        return gen_locked_message($locks, $this->dns);
-      }
-
-      // Add locks
-      $objects = [];
-      foreach ($this->dns as $dn) {
-        $type   = $this->getType($dn);
-        if (preg_match('/^template_/', $type) && !static::$skipTemplates) {
-          $type = preg_replace('/^template_/', '', $type);
-          $info = objects::infos($type);
-          $info['mainAttr'] = 'cn';
-        } else {
-          $info = objects::infos($type);
-        }
-        $entry  = $this->getHeadpage()->getEntry($dn);
-        $objects[] = [
-          'name'  => $entry[$info['mainAttr']][0],
-          'dn'    => $dn,
-          'icon'  => $info['icon'],
-          'type'  => $info['name']
-        ];
-      }
-      add_lock($this->dns, $ui->dn);
-
-      // Display confirmation dialog.
-      $smarty = get_smarty();
-      $smarty->assign('objects', $objects);
-      $smarty->assign('multiple', TRUE);
-      return $smarty->fetch(get_template_path('simple-remove.tpl'));
-    }
-  }
-
-  function removeEntryConfirmed ($action, array $target, array $all)
-  {
-    global $ui;
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, "Entry removal confirmed!");
-
-    foreach ($this->dns as $dn) {
-      $type = $this->getType($dn);
-      if (empty($type)) {
-        continue;
-      }
-      if (preg_match('/^template_/', $type) && !static::$skipTemplates) {
-        $type = preg_replace('/^template_/', '', $type);
-      }
-      $infos = objects::infos($type);
-      // Check permissions, are we allowed to remove this object?
-      $acl = $ui->get_permissions($dn, $infos['aclCategory']."/".$infos['mainTab']);
-      if (preg_match("/d/", $acl)) {
-        // Delete the object
-        $this->dn = $dn;
-        $this->openTabObject(objects::open($this->dn, $type), $this->dn);
-        $this->tabObject->delete();
-
-        // Remove the lock for the current object.
-        del_lock($this->dn);
-      } else {
-        msg_dialog::display(_('Permission error'), msgPool::permDelete($dn), ERROR_DIALOG);
-        logging::log('security', 'simpleManagement/'.get_class($this), $dn, [], 'Tried to trick deletion.');
-      }
-    }
-
-    // Cleanup
-    $this->remove_lock();
-    $this->closeDialogs();
-  }
-
-  /*!
-   * \brief  Opens the snapshot creation dialog for the given target.
-   *
-   * \param  String  $action  The name of the action which was the used as trigger.
-   *
-   * \param  Array   $target  A list of object dns, which should be affected by this method.
-   */
-  function createSnapshotDialog ($action, array $target)
-  {
-    global $config, $ui;
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $target, 'Snaptshot creation initiated!');
-
-    if (count($target) == 1) {
-      $this->dn = array_pop($target);
-      if (empty($this->dn)) {
-        return;
-      }
-      $aclCategory = $config->data['OBJECTS'][$this->getType($this->dn)]['aclCategory'];
-      if ($ui->allow_snapshot_create($this->dn, $aclCategory)) {
-        $this->dialogObject = new SnapshotCreateDialog($this->dn, $this, $aclCategory);
-        $this->dialogObject->set_acl_base($this->dn);
-      } else {
-        msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to create a snapshot for %s.'), $this->dn),
-            ERROR_DIALOG);
-      }
-    }
-  }
-
-  /*!
-   * \brief  Displays the "Restore snapshot dialog" for a given target.
-   *          If no target is specified, open the restore removed object
-   *           dialog.
-   * \param  String  $action  The name of the action which was the used as trigger.
-   *
-   * \param  Array   $target  A list of object dns, which should be affected by this method.
-   */
-  function restoreSnapshotDialog ($action, array $target)
-  {
-    global $config, $ui;
-    // Set current restore base for snapshot handling.
-    if (is_object($this->snapHandler)) {
-      $bases = [];
-      foreach ($this->storagePoints as $sp) {
-        $bases[] = $sp.$this->headpage->getBase();
-      }
-    }
-
-    // No bases specified? Try base
-    if (!count($bases)) {
-      $bases[] = $this->headpage->getBase();
-    }
-
-    if (!count($target)) {
-      // No target, open the restore removed object dialog.
-      $this->dn     = $this->headpage->getBase();
-      $aclCategory  = $this->headpage->categories;
-    } else {
-      // Display the restore points for a given object.
-      $this->dn = $target[0];
-      if (empty($this->dn)) {
-        return;
-      }
-      $aclCategory  = $config->data['OBJECTS'][$this->getType($this->dn)]['aclCategory'];
-    }
-
-    if ($ui->allow_snapshot_restore($this->dn, $aclCategory, !count($target))) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Snaptshot restoring initiated!');
-      $this->snapHandler->setSnapshotBases($bases);
-      $this->dialogObject = new SnapshotRestoreDialog($this->dn, $this, !count($target), $aclCategory);
-      $this->dialogObject->set_acl_base($this->dn);
-    } else {
-      msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to restore a snapshot for %s.'), $this->dn),
-          ERROR_DIALOG);
-    }
-  }
-
-  /*! \brief  This method is used to queue and process copy&paste actions.
-   *          Allows to copy, cut and paste mutliple entries at once.
-   *  @param  string  $action  The name of the action which was the used as trigger.
-   *  @param  array   $target  A list of object dns, which should be affected by this method.
-   *  @param  array   $all     A combination of both 'action' and 'target'.
-   */
-  function copyPasteHandler ($action = '', array $target = [], array $all = [])
-  {
-    global $ui;
-    // Return without any actions while copy&paste handler is disabled.
-    if (!is_object($this->cpHandler)) {
-      return FALSE;
-    }
-
-    // Save user input
-    $this->cpHandler->save_object();
-
-    // Add entries to queue
-    if (($action == 'copy') || ($action == 'cut')) {
-      $this->cpHandler->cleanup_queue();
-      foreach ($target as $dn) {
-        $type   = $this->getType($dn);
-        if (preg_match('/^template_/', $type) && !static::$skipTemplates) {
-          $type = preg_replace('/^template_/', '', $type);
-        }
-        $infos  = objects::infos($type);
-
-        if (($action == 'copy') && $ui->is_copyable($dn, $infos['aclCategory'])) {
-          $this->cpHandler->add_to_queue($dn, 'copy', $type);
-          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry copied!');
-        }
-        if (($action == 'cut') && $ui->is_cutable($dn, $infos['aclCategory'], $infos['mainTab'])) {
-          $this->cpHandler->add_to_queue($dn, 'cut', $type);
-          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Entry cut!');
-        }
-      }
-    }
-
-    // Initiate pasting
-    if ($action == "paste") {
-      $this->cpPastingStarted = TRUE;
-    }
-
-    // Display any c&p dialogs, eg. object modifications required before pasting.
-    if ($this->cpPastingStarted && $this->cpHandler->entries_queued()) {
-      $data = $this->cpHandler->execute($this->headpage->getBase());
-      if (!empty($data)) {
-        return $data;
-      }
-    }
-
-    // Automatically disable pasting process since there is no entry left to paste.
-    if (!$this->cpHandler->entries_queued()) {
-      $this->cpPastingStarted = FALSE;
-      $this->cpHandler->resetPaste();
-    }
-    return "";
-  }
-
-  /* Methods related to Snapshots */
-
-  /*!
-   * \brief  Creates a new snapshot entry
-   */
-  function createSnapshot ($dn, $description)
-  {
-    global $ui;
-    if ($this->dn !== $dn) {
-      trigger_error('There was a problem with the snapshot workflow');
-      return;
-    }
-    if (!empty($dn) && $ui->allow_snapshot_create($dn, $this->dialogObject->aclCategory)) {
-      $this->snapHandler->createSnapshot($dn, $description);
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot created!');
-    } else {
-      msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to restore a snapshot for %s.'), $dn),
-          ERROR_DIALOG);
-    }
-  }
-
-  /*!
-   * \brief  Restores a snapshot object.
-   *
-   * \param  String  $dn  The DN of the snapshot
-   */
-  function restoreSnapshot ($dn)
-  {
-    global $ui;
-    if (!empty($dn) && $ui->allow_snapshot_restore($dn, $this->dialogObject->aclCategory, $this->dialogObject->global)) {
-      $this->snapHandler->restoreSnapshot($dn);
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot restored');
-      $this->closeDialogs();
-    } else {
-      msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to restore a snapshot for %s.'), $dn),
-          ERROR_DIALOG);
-    }
-  }
-
-  /*!
-   * \brief Get all deleted snapshots
-   */
-  function getAllDeletedSnapshots ()
-  {
-    $tmp = [];
-    $snapshotBases = $this->snapHandler->getSnapshotBases();
-    if (is_array($snapshotBases)) {
-      foreach ($snapshotBases as $base) {
-        $tmp = array_merge($tmp, $this->snapHandler->getAllDeletedSnapshots($base));
-      }
-    } else {
-      $tmp = $this->snapHandler->getAllDeletedSnapshots($snapshotBases);
-    }
-    return $tmp;
-  }
-
-  /*
-   * \brief Return available snapshots for the given base
-   *
-   * \param string $dn The DN
-   */
-  function getAvailableSnapsShots ($dn)
-  {
-    return $this->snapHandler->getAvailableSnapsShots($dn);
-  }
-
-  /*!
-   * \brief Delete a snapshot
-   *
-   * \param string $dn DN of the snapshot
-   */
-  function removeSnapshot ($dn)
-  {
-    global $ui;
-    if (!empty($dn) && $ui->allow_snapshot_delete($dn, $this->dialogObject->aclCategory)) {
-      $this->snapHandler->removeSnapshot($dn);
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $dn, 'Snaptshot deleted');
-    } else {
-      msg_dialog::display(_('Permission'), sprintf(_('You are not allowed to delete a snapshot for %s.'), $dn),
-          ERROR_DIALOG);
-    }
-  }
-
-  static function mainInc ($classname)
-  {
-    global $remove_lock, $cleanup, $display;
-
-    /* Remove locks */
-    if ($remove_lock && session::is_set($classname)) {
-      $macl = session::get($classname);
-      $macl->remove_lock();
-    }
-
-    if ($cleanup) {
-      /* Clean up */
-      session::un_set($classname);
-    } else {
-      if (!session::is_set($classname) || (isset($_GET['reset']) && $_GET['reset'] == 1)) {
-        /* Create the object if missing or reset requested */
-        $managementObject = new $classname();
-      } else {
-        /* Retrieve the object from session */
-        $managementObject = session::get($classname);
-      }
-      /* Execute and display */
-      $display = $managementObject->execute();
-
-      /* Store the object in the session */
-      session::set($classname, $managementObject);
-    }
-  }
-}
-?>
diff --git a/include/simpleplugin/class_simplePlugin.inc b/include/simpleplugin/class_simplePlugin.inc
index 44a11c05f693b10c20193445985dfed2d0fcf285..c855326db1441b008449de198905ab0702e6141a 100644
--- a/include/simpleplugin/class_simplePlugin.inc
+++ b/include/simpleplugin/class_simplePlugin.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018  FusionDirectory
+
+  Copyright (C) 2012-2019  FusionDirectory
 
   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
@@ -26,7 +27,7 @@
 /*! \brief This class is made for easy plugin creation for editing LDAP attributes
  *
  */
-class simplePlugin
+class simplePlugin implements SimpleTab
 {
   /*! \brief This attribute store all information about attributes */
   public $attributesInfo;
@@ -50,9 +51,8 @@ class simplePlugin
    */
   public $is_account            = FALSE;
   public $initially_was_account = FALSE;
-  public $ignore_account        = FALSE;
+  protected $ignore_account     = FALSE;
 
-  public $acl_base      = '';
   public $acl_category  = '';
 
   /*! \brief dn of the opened object */
@@ -147,7 +147,7 @@ class simplePlugin
    *  \param array $attributesInfo An attributesInfo array, if NULL, getAttributesInfo will be used.
    *
    */
-  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE, $attributesInfo = NULL)
+  function __construct (string $dn = NULL, $object = NULL, $parent = NULL, bool $mainTab = FALSE, array $attributesInfo = NULL)
   {
     global $config;
 
@@ -155,6 +155,17 @@ class simplePlugin
     $this->parent   = $parent;
     $this->mainTab  = $mainTab;
 
+    try {
+      $plInfo = pluglist::pluginInfos(get_class($this));
+    } catch (UnknownClassException $e) {
+      /* May happen in special cases like setup */
+      $plInfo = [];
+    }
+
+    if (empty($this->objectclasses) && isset($plInfo['plObjectClass'])) {
+      $this->objectclasses = $plInfo['plObjectClass'];
+    }
+
     if ($attributesInfo === NULL) {
       $attributesInfo = $this->getAttributesInfo();
     }
@@ -189,31 +200,23 @@ class simplePlugin
     }
 
     /* Ensure that we've a valid acl_category set */
-    if (empty($this->acl_category)) {
-      $tmp = pluglist::pluginInfos(get_class($this));
-      if (isset($tmp['plCategory'])) {
-        $c = key($tmp['plCategory']);
-        if (is_numeric($c)) {
-          $c = $tmp['plCategory'][0];
-        }
-        $this->acl_category = $c.'/';
+    if (empty($this->acl_category) && isset($plInfo['plCategory'])) {
+      $c = key($plInfo['plCategory']);
+      if (is_numeric($c)) {
+        $c = $plInfo['plCategory'][$c];
       }
+      $this->acl_category = $c.'/';
     }
 
-    /* Handle read only */
-    if ($this->dn != 'new') {
-      /* Check if this entry was opened in read only mode */
-      if (isset($_POST['open_readonly'])) {
-        if (session::is_set('LOCK_CACHE')) {
-          $cache = session::get('LOCK_CACHE');
-          if (isset($cache['READ_ONLY'][$this->dn])) {
-            $this->read_only = TRUE;
-          }
-        }
+    /* Check if this entry was opened in read only mode */
+    if (($this->dn != 'new') &&
+        isset($_POST['open_readonly']) &&
+        session::is_set('LOCK_CACHE')
+      ) {
+      $cache = session::get('LOCK_CACHE');
+      if (isset($cache['READ_ONLY'][$this->dn])) {
+        $this->read_only = TRUE;
       }
-
-      /* Save current dn as acl_base */
-      $this->acl_base = $this->dn;
     }
 
     /* Load LDAP data */
@@ -229,11 +232,12 @@ class simplePlugin
         /* From LDAP */
         $ldap = $config->get_ldap_link();
         $ldap->cat($this->dn);
-        $this->attrs = $ldap->fetch();
+        $this->attrs = $ldap->fetch(TRUE);
         if (empty($this->attrs)) {
-          throw new NonExistingLdapNodeException('Could not open dn '.$this->dn);
+          throw new NonExistingLdapNodeException($this->dn);
         }
         if ($this->mainTab) {
+          $this->entryCSN = getEntryCSN($this->dn);
           /* Make sure that initially_was_account is TRUE if we loaded an LDAP node,
            *  even if it’s missing an objectClass */
           $this->is_account = TRUE;
@@ -241,18 +245,16 @@ class simplePlugin
       }
 
       /* Set the template flag according to the existence of objectClass fdTemplate */
-      if (isset($this->attrs['objectClass'])) {
-        if (in_array_ics('fdTemplate', $this->attrs['objectClass'])) {
-          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, 'found', 'Template check');
-          $this->setTemplate(TRUE);
-          $this->templateLoadAttrs($this->attrs);
-        }
+      if (isset($this->attrs['objectClass']) && in_array_ics('fdTemplate', $this->attrs['objectClass'])) {
+        logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, 'found', 'Template check');
+        $this->setTemplate(TRUE);
+        $this->templateLoadAttrs($this->attrs);
       }
 
       /* Is Account? */
       if ($this->is_this_account($this->attrs)) {
         $this->is_account = TRUE;
-        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, 'found', 'Object check');
+        logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, get_class($this), 'Tab active');
       }
     }
 
@@ -264,7 +266,7 @@ class simplePlugin
         if ($this->mainTab) {
           $filter = '(&(objectClass='.$oc.')('.$at.'='.ldap_escape_f($this->dn).'))';
         } else {
-          $filter = '(&(objectClass='.$oc.')'.$this->getObjectClassFilter().'('.$at.'='.ldap_escape_f($this->dn).'))';
+          $filter = '(&(objectClass='.$oc.')'.static::getLdapFilter().'('.$at.'='.ldap_escape_f($this->dn).'))';
         }
         $ldap->search($filter, $this->attributes);
         if ($ldap->count() == 1) {
@@ -287,7 +289,6 @@ class simplePlugin
 
     if ($this->mainTab) {
       $this->is_account = TRUE;
-      $this->entryCSN = getEntryCSN($this->dn);
     }
 
     if (!isset($this->templatePath)) {
@@ -320,20 +321,27 @@ class simplePlugin
 
   function is_this_account ($attrs)
   {
-    $found = TRUE;
-    foreach ($this->objectclasses as $obj) {
-      if (preg_match('/^top$/i', $obj)) {
-        continue;
+    $result = static::isAccount($attrs);
+    if ($result === NULL) {
+      if (!empty($this->objectclasses)) {
+        trigger_error('Deprecated fallback was used for '.get_called_class().'::is_this_account');
       }
-      if (!isset($attrs['objectClass']) || !in_array_ics($obj, $attrs['objectClass'])) {
-        $found = FALSE;
-        break;
+      $found = TRUE;
+      foreach ($this->objectclasses as $obj) {
+        if (preg_match('/^top$/i', $obj)) {
+          continue;
+        }
+        if (!isset($attrs['objectClass']) || !in_array_ics($obj, $attrs['objectClass'])) {
+          $found = FALSE;
+          break;
+        }
       }
+      return $found;
     }
-    return $found;
+    return $result;
   }
 
-  function setTemplate ($bool)
+  function setTemplate (bool $bool)
   {
     $this->is_template = $bool;
     if ($this->is_template && $this->mainTab) {
@@ -380,7 +388,7 @@ class simplePlugin
     global $config;
     $ldap = $config->get_ldap_link();
     $ldap->cat($this->dn);
-    $template_attrs = $ldap->fetch();
+    $template_attrs = $ldap->fetch(TRUE);
     if (!$template_attrs) {
       if (!$this->mainTab) {
         trigger_error('It seems main tab has not been saved.');
@@ -401,11 +409,8 @@ class simplePlugin
    */
   function getObjectClassFilter ()
   {
-    if (!empty($this->objectclasses)) {
-      return '(&(objectClass='.implode(')(objectClass=', $this->objectclasses).'))';
-    } else {
-      return '';
-    }
+    trigger_error('Deprecated');
+    return static::getLdapFilter();
   }
 
   /*! \brief This function allows to use the syntax $plugin->attributeName to get attributes values
@@ -447,7 +452,7 @@ class simplePlugin
     }
   }
 
-  /*! \brief This function allows to use the syntax isset ($plugin->attributeName)
+  /*! \brief This function allows to use the syntax isset($plugin->attributeName)
 
     It returns FALSE if the attribute has an empty value.
    */
@@ -461,35 +466,28 @@ class simplePlugin
 
   /*! \brief This function returns the dn this object should have
    */
-  public function compute_dn ()
+  public function compute_dn (): string
   {
     global $config;
     if (!$this->mainTab) {
-      msg_dialog::display(_('Fatal error'), _('Only main tab can compute dn'), FATAL_ERROR_DIALOG);
-      exit;
+      throw new FatalError(htmlescape(_('Only main tab can compute dn')));
     }
     if (!isset($this->parent) || !($this->parent instanceof simpleTabs)) {
-      msg_dialog::display(
-        _('Fatal error'),
-        sprintf(
+      throw new FatalError(
+        htmlescape(sprintf(
           _('Could not compute dn: no parent tab class for "%s"'),
           get_class($this)
-        ),
-        FATAL_ERROR_DIALOG
+        ))
       );
-      exit;
     }
     $infos = $this->parent->objectInfos();
     if ($infos === FALSE) {
-      msg_dialog::display(
-        _('Fatal error'),
-        sprintf(
-          _('Could not compute dn: could not find objectType infos from tab class "%s"'),
+      throw new FatalError(
+        htmlescape(sprintf(
+          _('Could not compute dn: could not find objectType info from tab class "%s"'),
           get_class($this->parent)
-        ),
-        FATAL_ERROR_DIALOG
+        ))
       );
-      exit;
     }
     $attr = $infos['mainAttr'];
     $ou   = $infos['ou'];
@@ -499,13 +497,12 @@ class simplePlugin
       $base = $config->current['BASE'];
     }
     if ($this->is_template) {
-      $dn = 'cn='.ldap_escape_dn($this->_template_cn).',ou=templates,'.$ou.$base;
-      return $dn;
+      return 'cn='.ldap_escape_dn($this->_template_cn).',ou=templates,'.$ou.$base;
     }
     return $attr.'='.ldap_escape_dn($this->attributesAccess[$attr]->computeLdapValue()).','.$ou.$base;
   }
 
-  protected function addAttribute ($section, $attr)
+  protected function addAttribute (string $section, \FusionDirectory\Core\SimplePlugin\Attribute $attr)
   {
     $name = $attr->getLdapName();
     $this->attributesInfo[$section]['attrs'][$name] = $attr;
@@ -514,7 +511,7 @@ class simplePlugin
     unset($this->$name);
   }
 
-  protected function removeAttribute ($section, $id)
+  protected function removeAttribute (string $section, string $id)
   {
     unset($this->attributesInfo[$section]['attrs'][$id]);
     unset($this->attributesAccess[$id]);
@@ -529,45 +526,37 @@ class simplePlugin
    *
    * \return array [dn] => "..name"  // All deps. we are allowed to act on.
   */
-  function get_allowed_bases ()
+  function get_allowed_bases (): array
   {
     global $config;
     $deps = [];
 
     /* Is this a new object ? Or just an edited existing object */
-    foreach ($config->idepartments as $dn => $name) {
-      if (!$this->initially_was_account && $this->acl_is_createable($dn)) {
-        $deps[$dn] = $name;
-      } elseif ($this->initially_was_account && $this->acl_is_moveable($dn)) {
+    $departmentTree = $config->getDepartmentTree();
+    foreach ($departmentTree as $dn => $name) {
+      if (
+          (!$this->initially_was_account && $this->acl_is_createable($dn)) ||
+          ($this->initially_was_account && $this->acl_is_moveable($dn))
+        ) {
         $deps[$dn] = $name;
       }
     }
 
     /* Add current base */
-    if (isset($this->base) && isset($config->idepartments[$this->base])) {
-      $deps[$this->base] = $config->idepartments[$this->base];
+    if (isset($this->base) && isset($departmentTree[$this->base])) {
+      $deps[$this->base] = $departmentTree[$this->base];
     } elseif (strtolower($this->dn) != strtolower($config->current['BASE'])) {
       trigger_error('Cannot return list of departments, no default base found in class '.get_class($this).'. (base is "'.$this->base.'")');
     }
     return $deps;
   }
 
-  /*!
-   * \brief Set acl base
-   *
-   * \param string $base
-   */
-  function set_acl_base ($base)
-  {
-    $this->acl_base = $base;
-  }
-
   /*!
    * \brief Set acl category
    *
    * \param string $category
    */
-  function set_acl_category ($category)
+  function set_acl_category (string $category)
   {
     $this->acl_category = "$category/";
   }
@@ -581,7 +570,7 @@ class simplePlugin
     *
     * \return TRUE on success, error string on failure
     */
-  function move ($src_dn, $dst_dn)
+  function move (string $src_dn, string $dst_dn)
   {
     global $config, $ui;
 
@@ -593,28 +582,28 @@ class simplePlugin
     /* Try to move with ldap routines */
     $ldap = $config->get_ldap_link();
     $ldap->cd($config->current['BASE']);
-    $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $dst_dn));
+    try {
+      $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $dst_dn));
+    } catch (FusionDirectoryError $error) {
+      $error->display();
+    }
     if (!$ldap->rename_dn($src_dn, $dst_dn)) {
-      logging::log('debug', 'Ldap Protocol v3 implementation error, ldap_rename failed.',
-        "FROM: $src_dn  -- TO: $dst_dn", [], $ldap->get_error());
-      @DEBUG(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, "Rename failed FROM: $src_dn  -- TO:  $dst_dn",
+      logging::log('error', 'ldap', "FROM: $src_dn -- TO: $dst_dn", [], 'Ldap Protocol v3 implementation error, ldap_rename failed: '.$ldap->get_error());
+      logging::debug(DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, "Rename failed FROM: $src_dn  -- TO:  $dst_dn",
         'Ldap Protocol v3 implementation error. Error:'.$ldap->get_error());
       return $ldap->get_error();
     }
 
     /* Update userinfo if necessary */
     if (preg_match('/'.preg_quote($src_dn, '/').'$/i', $ui->dn)) {
-      $ui_dn = preg_replace('/'.preg_quote($src_dn, '/').'$/i', $dst_dn, $ui->dn);
-      logging::log('view', 'acl/'.get_class($this), $this->dn, [], 'Updated userinfo dn from "'.$ui->dn.'" to "'.$ui_dn.'"');
-      $ui->dn = $ui_dn;
+      $ui->dn = preg_replace('/'.preg_quote($src_dn, '/').'$/i', $dst_dn, $ui->dn);
     }
 
-    /* Check if departments were moved. If so, force the reload of config->departments */
+    /* Check if departments were moved. If so, force the reload of $config departments cache */
     $ldap->cd($dst_dn);
     $ldap->search('(objectClass=gosaDepartment)', ['dn']);
     if ($ldap->count()) {
-      $config->get_departments();
-      $config->make_idepartments();
+      $config->resetDepartmentCache();
       $ui->reset_acl_cache();
     }
 
@@ -622,7 +611,7 @@ class simplePlugin
     return TRUE;
   }
 
-  function getRequiredAttributes ()
+  function getRequiredAttributes (): array
   {
     $tmp = [];
     foreach ($this->attributesAccess as $attr) {
@@ -651,11 +640,30 @@ class simplePlugin
     return $this->read_only;
   }
 
+  function execute (): string
+  {
+    trigger_error('obsolete');
+    $this->update();
+    return $this->render();
+  }
+
+  public function update (): bool
+  {
+    if (is_object($this->dialog)) {
+      $dialogState = $this->dialog->update();
+      if ($dialogState === FALSE) {
+        $this->closeDialog();
+      }
+    }
+
+    return TRUE;
+  }
+
   /*! \brief This function display the plugin and return the html code
    */
-  function execute ()
+  public function render (): string
   {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "execute");
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'render');
 
     /* Reset Lock message POST/GET check array, to prevent preg_match errors */
     session::set('LOCK_VARS_TO_USE', []);
@@ -664,26 +672,21 @@ class simplePlugin
     session::set('LOCK_VARS_USED_REQUEST', []);
 
     $this->displayPlugin  = TRUE;
-    $this->header         = "";
+    $this->header         = '';
 
     if (is_object($this->dialog)) {
-      $dialogResult = $this->dialog->execute();
-      if ($dialogResult === FALSE) {
-        $this->closeDialog();
-      } else {
-        $this->header         = $dialogResult;
-        $this->displayPlugin  = FALSE;
-        return $this->header;
-      }
+      $this->header         = $this->dialog->render();
+      $this->displayPlugin  = FALSE;
+      return $this->header;
     }
 
     if ($this->displayHeader) {
       /* Show tab dialog headers */
       if ($this->parent !== NULL) {
-        list($disabled, $buttonText, $text) = $this->getDisplayHeaderInfos();
+        list($disabled, $buttonHtmlText, $htmlText) = $this->getDisplayHeaderInfos();
         $this->header = $this->show_header(
-          $buttonText,
-          $text,
+          $buttonHtmlText,
+          $htmlText,
           $this->is_account,
           $disabled,
           get_class($this).'_modify_state'
@@ -694,9 +697,8 @@ class simplePlugin
         }
       } elseif (!$this->is_account) {
         $plInfo = pluglist::pluginInfos(get_class($this));
-        $this->header = '<img alt="'._('Error').'" src="geticon.php?context=status&amp;icon=dialog-error&amp;size=16" align="middle"/>&nbsp;<b>'.
+        $this->header = '<img alt="'.htmlescape(_('Error')).'" src="geticon.php?context=status&amp;icon=dialog-error&amp;size=16" align="middle"/>&nbsp;<b>'.
                         msgPool::noValidExtension($plInfo['plShortName'])."</b>";
-        $this->header .= back_to_main();
         $this->displayPlugin = FALSE;
         return $this->header.$this->inheritanceDisplay();
       }
@@ -716,7 +718,7 @@ class simplePlugin
     return $this->header.$smarty->fetch($this->templatePath);
   }
 
-  public function getDisplayHeaderInfos ()
+  public function getDisplayHeaderInfos (): array
   {
     $plInfo   = pluglist::pluginInfos(get_class($this));
     $disabled = $this->acl_skip_write();
@@ -732,8 +734,8 @@ class simplePlugin
           }
         }
       }
-      $buttonText = msgPool::removeFeaturesButton($plInfo['plShortName']);
-      $text       = msgPool::featuresEnabled($plInfo['plShortName'], $depends);
+      $buttonHtmlText = msgPool::removeFeaturesButton($plInfo['plShortName']);
+      $htmlText       = msgPool::featuresEnabled($plInfo['plShortName'], $depends);
     } else {
       $depends    = [];
       $conflicts  = [];
@@ -757,18 +759,18 @@ class simplePlugin
           }
         }
       }
-      $buttonText = msgPool::addFeaturesButton($plInfo['plShortName']);
-      $text       = msgPool::featuresDisabled($plInfo['plShortName'], $depends, $conflicts);
+      $buttonHtmlText = msgPool::addFeaturesButton($plInfo['plShortName']);
+      $htmlText       = msgPool::featuresDisabled($plInfo['plShortName'], $depends, $conflicts);
     }
-    return [$disabled,$buttonText,$text];
+    return [$disabled,$buttonHtmlText,$htmlText];
   }
 
   /*!
    * \brief Show header message for tab dialogs
    *
-   * \param string $button_text The button text
+   * \param string $buttonHtmlText The button text, escaped for HTML output
    *
-   * \param string $text The text
+   * \param string $htmlText The text to show, as HTML code
    *
    * \param boolean $plugin_enabled Is the plugin/tab activated
    *
@@ -776,45 +778,101 @@ class simplePlugin
    *
    * \param string $name The html name of the input, defaults to modify_state
    */
-  function show_header ($button_text, $text, $plugin_enabled, $button_disabled = FALSE, $name = 'modify_state')
+  function show_header (string $buttonHtmlText, string $htmlText, bool $plugin_enabled, bool $button_disabled = FALSE, string $name = 'modify_state'): string
   {
     if ($button_disabled || ((!$this->acl_is_createable() && !$plugin_enabled) || (!$this->acl_is_removeable() && $plugin_enabled))) {
-        $state = 'disabled="disabled"';
+      $state = 'disabled="disabled"';
     } else {
-        $state = '';
+      $state = '';
     }
-    $display = '<div width="100%"><p><b>'.$text.'</b><br/>'."\n";
-    $display .= '<input type="submit" value="'.$button_text.'" name="'.$name.'" '.$state.'></p></div><hr class="separator"/>';
+    $display = '<div width="100%"><p><b>'.$htmlText.'</b><br/>'."\n";
+    $display .= '<input type="submit" formnovalidate="formnovalidate" value="'.$buttonHtmlText.'" name="'.$name.'" '.$state.'></p></div><hr class="separator"/>';
 
     return $display;
   }
 
+  /*!
+   * \brief Test whether a tab is active
+   */
+  public function isActive (): bool
+  {
+    return ($this->is_account || $this->ignore_account);
+  }
+
+  /*!
+   * \brief Test whether a tab can be deactivated
+   */
+  public function isActivatable (): bool
+  {
+    return $this->displayHeader;
+  }
+
+  /*! \brief Check if logged in user have enough right to read this attribute value
+   *
+   * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
+   */
+  function attrIsReadable ($attr): bool
+  {
+    if (!is_object($attr)) {
+      $attr = $this->attributesAccess[$attr];
+    }
+    if ($attr->getLdapName() == 'base') {
+      return TRUE;
+    }
+    if ($attr->getAcl() == 'noacl') {
+      return TRUE;
+    }
+    return $this->acl_is_readable($attr->getAcl());
+  }
+
   /*! \brief Check if logged in user have enough right to write this attribute value
    *
    * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
    */
-  function attrIsWriteable ($attr)
+  function attrIsWriteable ($attr): bool
   {
     if (!is_object($attr)) {
       $attr = $this->attributesAccess[$attr];
     }
     if ($attr->getLdapName() == 'base') {
-      if (!$this->acl_skip_write() && (!$this->initially_was_account || $this->acl_is_moveable() || $this->acl_is_removeable())) {
-        return TRUE;
-      } else {
-        return FALSE;
-      }
+      return (
+        !$this->acl_skip_write() &&
+        (!$this->initially_was_account || $this->acl_is_moveable() || $this->acl_is_removeable())
+      );
+    }
+    if ($attr->getAcl() == 'noacl') {
+      return FALSE;
     }
     return $this->acl_is_writeable($attr->getAcl(), $this->acl_skip_write());
   }
 
-  function renderAttributes ($readOnly = FALSE)
+  /*!
+   * \brief Get LDAP base to use for ACL checks
+   */
+  function getAclBase (bool $callParent = TRUE): string
+  {
+    global $config;
+
+    if (($this->parent instanceof simpleTabs) && $callParent) {
+      return $this->parent->getAclBase();
+    }
+    if (isset($this->dn) && ($this->dn != 'new')) {
+      return $this->dn;
+    }
+    if (isset($this->base)) {
+      return 'new,'.$this->base;
+    }
+
+    return $config->current['BASE'];
+  }
+
+  function renderAttributes (bool $readOnly = FALSE)
   {
     global $ui;
     $smarty = get_smarty();
 
     if ($this->is_template) {
-      $smarty->assign('template_cnACL', $ui->get_permissions($this->acl_base, $this->acl_category.'template', 'template_cn', $this->acl_skip_write()));
+      $smarty->assign('template_cnACL', $ui->get_permissions($this->getAclBase(), $this->acl_category.'template', 'template_cn', $this->acl_skip_write()));
     }
 
     /* Handle rights to modify the base */
@@ -828,29 +886,32 @@ class simplePlugin
 
     $sections = [];
     foreach ($this->attributesInfo as $section => $sectionInfo) {
-      $legend = $sectionInfo['name'];
-      if (isset($sectionInfo['icon'])) {
-        $legend = '<img '.
-                  'src="'.htmlentities($sectionInfo['icon'], ENT_COMPAT, 'UTF-8').'" '.
-                  'alt="" '.
-                  '/>'.$legend;
-      }
-      $smarty->assign("section", $legend);
-      $smarty->assign("sectionId", $section);
+      $smarty->assign('section',      $sectionInfo['name']);
+      $smarty->assign('sectionIcon',  ($sectionInfo['icon'] ?? NULL));
+      $smarty->assign('sectionId',    $section);
+      $sectionClasses = '';
       if (isset($sectionInfo['class'])) {
-        $smarty->assign("sectionClasses", ' '.join(' ', $sectionInfo['class']));
-      } else {
-        $smarty->assign("sectionClasses", '');
+        $sectionClasses .= ' '.join(' ', $sectionInfo['class']);
       }
-      $attributes = [];
+      $attributes       = [];
+      $readableSection  = FALSE;
       foreach ($sectionInfo['attrs'] as $attr) {
         if ($attr->getAclInfo() !== FALSE) {
           // We assign ACLs so that attributes can use them in their template code
-          $smarty->assign($attr->getAcl()."ACL", $this->aclGetPermissions($attr->getAcl(), NULL, $this->acl_skip_write()));
+          $smarty->assign($attr->getAcl().'ACL', $this->aclGetPermissions($attr->getAcl(), NULL, $this->acl_skip_write()));
         }
-        $attr->renderAttribute($attributes, $readOnly);
+        $readable = $this->attrIsReadable($attr);
+        $writable = $this->attrIsWriteable($attr);
+        if (!$readableSection && ($readable || $writable)) {
+          $readableSection = TRUE;
+        }
+        $attr->renderAttribute($attributes, $readOnly, $readable, $writable);
+      }
+      $smarty->assign('attributes', $attributes);
+      if (!$readableSection) {
+        $sectionClasses .= ' nonreadable';
       }
-      $smarty->assign("attributes", $attributes);
+      $smarty->assign('sectionClasses', $sectionClasses);
       // We fetch each section with the section template
       if (isset($sectionInfo['template'])) {
         $displaySection = $smarty->fetch($sectionInfo['template']);
@@ -862,7 +923,7 @@ class simplePlugin
     $smarty->assign("sections", $sections);
   }
 
-  function inheritanceDisplay ()
+  function inheritanceDisplay (): string
   {
     if (!$this->member_of_group) {
       return "";
@@ -881,9 +942,9 @@ class simplePlugin
 
   /*! \brief This function allows you to open a dialog
    *
-   *  \param mixed $dialog The dialog object
+   *  \param FusionDirectoryDialog $dialog The dialog object
    */
-  function openDialog ($dialog)
+  function openDialog (FusionDirectoryDialog $dialog)
   {
     $this->dialog = $dialog;
   }
@@ -895,20 +956,20 @@ class simplePlugin
     $this->dialog = NULL;
   }
 
-  public function setNeedEditMode ($bool)
+  public function setNeedEditMode (bool $bool)
   {
     $this->needEditMode = $bool;
   }
 
-  protected function acl_skip_write ()
+  protected function acl_skip_write (): bool
   {
     return ($this->needEditMode && !session::is_set('edit'));
   }
 
   /*! \brief Can we write the attribute */
-  function acl_is_writeable ($attribute, $skipWrite = FALSE)
+  function acl_is_writeable ($attribute, bool $skipWrite = FALSE): bool
   {
-    return preg_match('/w/', $this->aclGetPermissions($attribute, NULL, $skipWrite));
+    return (strpos($this->aclGetPermissions($attribute, NULL, $skipWrite), 'w') !== FALSE);
   }
 
   /*!
@@ -916,9 +977,9 @@ class simplePlugin
    *
    * \param string $attribute
    */
-  function acl_is_readable ($attribute)
+  function acl_is_readable ($attribute): bool
   {
-    return preg_match('/r/', $this->aclGetPermissions($attribute));
+    return (strpos($this->aclGetPermissions($attribute), 'r') !== FALSE);
   }
 
   /*!
@@ -926,9 +987,9 @@ class simplePlugin
    *
    * \param string $base Empty string
    */
-  function acl_is_createable ($base = NULL)
+  function acl_is_createable (string $base = NULL): bool
   {
-    return preg_match('/c/', $this->aclGetPermissions('0', $base));
+    return (strpos($this->aclGetPermissions('0', $base), 'c') !== FALSE);
   }
 
   /*!
@@ -936,9 +997,9 @@ class simplePlugin
    *
    * \param string $base Empty string
    */
-  function acl_is_removeable ($base = NULL)
+  function acl_is_removeable (string $base = NULL): bool
   {
-    return preg_match('/d/', $this->aclGetPermissions('0', $base));
+    return (strpos($this->aclGetPermissions('0', $base), 'd') !== FALSE);
   }
 
   /*!
@@ -946,13 +1007,21 @@ class simplePlugin
    *
    * \param string $base Empty string
    */
-  function acl_is_moveable ($base = NULL)
+  function acl_is_moveable (string $base = NULL): bool
   {
-    return preg_match('/m/', $this->aclGetPermissions('0', $base));
+    return (strpos($this->aclGetPermissions('0', $base), 'm') !== FALSE);
+  }
+
+  /*! \brief Test if there are ACLs for this plugin */
+  function aclHasPermissions (): bool
+  {
+    global $config;
+
+    return in_array(get_class($this), $config->data['CATEGORIES'][rtrim($this->acl_category, '/')]['classes']);
   }
 
   /*! \brief Get the acl permissions for an attribute or the plugin itself */
-  function aclGetPermissions ($attribute = '0', $base = NULL, $skipWrite = FALSE)
+  function aclGetPermissions ($attribute = '0', string $base = NULL, bool $skipWrite = FALSE): string
   {
     if (isset($this->parent) && isset($this->parent->ignoreAcls) && $this->parent->ignoreAcls) {
       return 'cdmr'.($skipWrite ? '' : 'w');
@@ -960,14 +1029,14 @@ class simplePlugin
     $ui         = get_userinfo();
     $skipWrite  |= $this->readOnly();
     if ($base === NULL) {
-      $base = $this->acl_base;
+      $base = $this->getAclBase();
     }
     return $ui->get_permissions($base, $this->acl_category.get_class($this), $attribute, $skipWrite);
   }
 
   /*! \brief This function removes the object from LDAP
    */
-  function remove ($fulldelete = FALSE)
+  function remove (bool $fulldelete = FALSE): array
   {
     if (!$this->initially_was_account) {
       return [];
@@ -979,7 +1048,7 @@ class simplePlugin
     }
 
     $this->prepare_remove();
-    if ($this->is_template && (!defined('_OLD_TEMPLATES_') || !_OLD_TEMPLATES_)) {
+    if ($this->is_template) {
       $this->attrs = $this->templateSaveAttrs();
       $this->saved_attributes = [];
     }
@@ -1007,7 +1076,7 @@ class simplePlugin
       $ldap = $config->get_ldap_link();
 
       /* Get current objectClasses in order to add the required ones */
-      $ldap->cat($this->dn);
+      $ldap->cat($this->dn, ['fdTemplateField','objectClass']);
       $tmp  = $ldap->fetch();
       $oc   = [];
       if ($this->is_template) {
@@ -1038,11 +1107,11 @@ class simplePlugin
   protected function pre_remove ()
   {
     if ($this->initially_was_account) {
-      return $this->handle_pre_events('remove');
+      return $this->handle_pre_events('remove', ['modifiedLdapAttrs' => array_keys($this->attrs)]);
     }
   }
 
-  protected function ldap_remove ()
+  protected function ldap_remove (): array
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -1058,7 +1127,15 @@ class simplePlugin
     if ($ldap->success()) {
       return [];
     } else {
-      return [msgPool::ldaperror($this->ldap_error, $this->dn, LDAP_MOD, get_class())];
+      return [
+        new SimplePluginLdapError(
+          $this,
+          $this->dn,
+          ($this->mainTab ? LDAP_DEL : LDAP_MOD),
+          $ldap->get_error(),
+          $ldap->get_errno()
+        )
+      ];
     }
   }
 
@@ -1067,7 +1144,7 @@ class simplePlugin
     logging::log('remove', 'plugin/'.get_class($this), $this->dn, array_keys($this->attrs), $this->ldap_error);
 
     /* Optionally execute a command after we're done */
-    $errors = $this->handle_post_events('remove');
+    $errors = $this->handle_post_events('remove', ['modifiedLdapAttrs' => array_keys($this->attrs)]);
     if (!empty($errors)) {
       msg_dialog::displayChecks($errors);
     }
@@ -1077,7 +1154,16 @@ class simplePlugin
    */
   function save_object ()
   {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'save_object');
+    trigger_error('obsolete');
+    $this->readPost();
+  }
+
+  /*! \brief This function handle $_POST informations
+   */
+  function readPost ()
+  {
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'readPost');
+
     if ($this->displayHeader && isset($_POST[get_class($this).'_modify_state'])) {
       if ($this->is_account && $this->acl_is_removeable()) {
         $this->is_account = FALSE;
@@ -1085,30 +1171,29 @@ class simplePlugin
         $this->is_account = TRUE;
       }
     }
+    if (is_object($this->dialog)) {
+      $this->dialog->readPost();
+    }
     if (isset($_POST[get_class($this).'_posted'])) {
       // If our form has been posted
       // A first pass that loads the post values
-      foreach ($this->attributesInfo as $section => &$sectionInfo) {
-        foreach ($sectionInfo['attrs'] as &$attr) {
+      foreach ($this->attributesInfo as $sectionInfo) {
+        foreach ($sectionInfo['attrs'] as $attr) {
           if ($this->attrIsWriteable($attr)) {
             // Each attribute know how to read its value from POST
             $attr->loadPostValue();
           }
         }
-        unset($attrs);
       }
-      unset($sectionInfo);
       // A second one that applies them. That allow complex stuff such as attribute disabling
-      foreach ($this->attributesInfo as $section => &$sectionInfo) {
-        foreach ($sectionInfo['attrs'] as &$attr) {
+      foreach ($this->attributesInfo as $sectionInfo) {
+        foreach ($sectionInfo['attrs'] as $attr) {
           if ($this->attrIsWriteable($attr)) {
             // Each attribute know how to read its value from POST
             $attr->applyPostValue();
           }
         }
-        unset($attrs);
       }
-      unset($sectionInfo);
     }
   }
 
@@ -1122,7 +1207,8 @@ class simplePlugin
         continue;
       }
 
-      if (!in_array_ics($index, $this->attributes) && strcasecmp('objectClass', $index)) {
+      list($attribute, ) = explode(';', $index, 2);
+      if (!in_array_ics($index, $this->attributes) && !in_array_ics($attribute, $this->attributes) && strcasecmp('objectClass', $attribute)) {
         unset($this->saved_attributes[$index]);
         continue;
       }
@@ -1149,7 +1235,6 @@ class simplePlugin
   function cleanup ()
   {
     foreach ($this->attrs as $index => $value) {
-
       /* Convert arrays with one element to non arrays, if the saved
          attributes are no array, too */
       if (is_array($this->attrs[$index]) &&
@@ -1179,11 +1264,10 @@ class simplePlugin
       /* Remove arrays that do not differ */
       if (is_array($this->attrs[$index]) &&
           isset($this->saved_attributes[$index]) &&
-          is_array($this->saved_attributes[$index])) {
-        if (!array_differs($this->attrs[$index], $this->saved_attributes[$index])) {
-          unset($this->attrs[$index]);
-          continue;
-        }
+          is_array($this->saved_attributes[$index]) &&
+          !array_differs($this->attrs[$index], $this->saved_attributes[$index])) {
+        unset($this->attrs[$index]);
+        continue;
       }
     }
   }
@@ -1198,14 +1282,14 @@ class simplePlugin
 
   /*! \brief This function saves the object in the LDAP
    */
-  function save ()
+  function save (): array
   {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "save");
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, "save");
     $errors = $this->prepare_save();
     if (!empty($errors)) {
       return $errors;
     }
-    if ($this->is_template && (!defined('_OLD_TEMPLATES_') || !_OLD_TEMPLATES_)) {
+    if ($this->is_template) {
       $errors = templateHandling::checkFields($this->attrs);
       if (!empty($errors)) {
         return $errors;
@@ -1233,7 +1317,7 @@ class simplePlugin
     return [];
   }
 
-  protected function shouldSave ()
+  protected function shouldSave (): bool
   {
     if ($this->mainTab && !$this->initially_was_account) {
       return TRUE;
@@ -1242,53 +1326,55 @@ class simplePlugin
   }
 
   /* Used by prepare_save and template::apply */
-  public function mergeObjectClasses (array $oc)
+  public function mergeObjectClasses (array $oc): array
   {
     return array_merge_unique($oc, $this->objectclasses);
   }
 
-  protected function prepare_save ()
+  /* \!brief Prepare $this->attrs */
+  protected function prepare_save (): array
   {
     global $config;
-    /* prepare $this->attrs */
-    $ldap = $config->get_ldap_link();
 
     $this->entryCSN = '';
 
     /* Start with empty array */
-    $this->attrs = [];
+    $this->attrs  = [];
+    $oc           = [];
 
-    /* Get current objectClasses in order to add the required ones */
-    $ldap->cat($this->dn, ['fdTemplateField', 'objectClass']);
+    if (!$this->mainTab || $this->initially_was_account) {
+      /* Get current objectClasses in order to add the required ones */
+      $ldap = $config->get_ldap_link();
+      $ldap->cat($this->dn, ['fdTemplateField', 'objectClass']);
 
-    $tmp  = $ldap->fetch();
-    $oc   = [];
+      $tmp  = $ldap->fetch();
 
-    if ($this->is_template) {
-      if (isset($tmp['fdTemplateField'])) {
-        foreach ($tmp['fdTemplateField'] as $tpl_field) {
-          if (preg_match('/^objectClass:(.+)$/', $tpl_field, $m)) {
-            $oc[] = $m[1];
+      if ($this->is_template) {
+        if (isset($tmp['fdTemplateField'])) {
+          foreach ($tmp['fdTemplateField'] as $tpl_field) {
+            if (preg_match('/^objectClass:(.+)$/', $tpl_field, $m)) {
+              $oc[] = $m[1];
+            }
           }
         }
-      }
-    } else {
-      if (isset($tmp['objectClass'])) {
-        $oc = $tmp['objectClass'];
-        unset($oc['count']);
+      } else {
+        if (isset($tmp['objectClass'])) {
+          $oc = $tmp['objectClass'];
+          unset($oc['count']);
+        }
       }
     }
 
     $this->attrs['objectClass'] = $this->mergeObjectClasses($oc);
 
     /* Fill attributes LDAP values into the attrs array */
-    foreach ($this->attributesInfo as $section => $sectionInfo) {
+    foreach ($this->attributesInfo as $sectionInfo) {
       foreach ($sectionInfo['attrs'] as $attr) {
         $attr->fillLdapValue($this->attrs);
       }
     }
     /* Some of them have post-filling hook */
-    foreach ($this->attributesInfo as $section => $sectionInfo) {
+    foreach ($this->attributesInfo as $sectionInfo) {
       foreach ($sectionInfo['attrs'] as $attr) {
         $attr->fillLdapValueHook($this->attrs);
       }
@@ -1297,35 +1383,48 @@ class simplePlugin
     return [];
   }
 
-  protected function pre_save ()
+  protected function pre_save (): array
   {
     if ($this->initially_was_account) {
-      return $this->handle_pre_events('modify');
+      return $this->handle_pre_events('modify', ['modifiedLdapAttrs' => array_keys($this->attrs)]);
     } else {
-      return $this->handle_pre_events('add');
+      return $this->handle_pre_events('add', ['modifiedLdapAttrs' => array_keys($this->attrs)]);
     }
   }
 
   /* Returns an array with the errors or an empty array */
-  protected function ldap_save ()
+  protected function ldap_save (): array
   {
     global $config;
 
     /* Check if this is a new entry ... add/modify */
     $ldap = $config->get_ldap_link();
-    $ldap->cat($this->dn, ["objectClass"]);
     if ($this->mainTab && !$this->initially_was_account) {
-      if ($ldap->count()) {
-        return [sprintf(_('There is already an entry with the same dn : %s'), $this->dn)];
+      if ($ldap->dn_exists($this->dn)) {
+        return [
+          new SimplePluginError(
+            $this,
+            htmlescape(sprintf(_('There is already an entry with the same dn: %s'), $this->dn))
+          )
+        ];
       }
       $ldap->cd($config->current['BASE']);
-      $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
-      $action = "add";
+      try {
+        $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
+      } catch (FusionDirectoryError $error) {
+        return [$error];
+      }
+      $action = 'add';
     } else {
-      if (!$ldap->count()) {
-        return [sprintf(_('The entry %s is not existing'), $this->dn)];
+      if (!$ldap->dn_exists($this->dn)) {
+        return [
+          new SimplePluginError(
+            $this,
+            htmlescape(sprintf(_('The entry %s is not existing'), $this->dn))
+          )
+        ];
       }
-      $action = "modify";
+      $action = 'modify';
     }
 
     $ldap->cd($this->dn);
@@ -1334,7 +1433,15 @@ class simplePlugin
 
     /* Check for errors */
     if (!$ldap->success()) {
-      return [msgPool::ldaperror($this->ldap_error, $this->dn, 0, get_class())];
+      return [
+        new SimplePluginLdapError(
+          $this,
+          $this->dn,
+          ($action == 'modify' ? LDAP_MOD : LDAP_ADD),
+          $ldap->get_error(),
+          $ldap->get_errno()
+        )
+      ];
     }
     return [];
   }
@@ -1347,10 +1454,10 @@ class simplePlugin
   {
     /* Propagate and log the event */
     if ($this->initially_was_account) {
-      $errors = $this->handle_post_events('modify');
+      $errors = $this->handle_post_events('modify', ['modifiedLdapAttrs' => array_keys($this->attrs)]);
       logging::log('modify', 'plugin/'.get_class($this), $this->dn, array_keys($this->attrs), $this->ldap_error);
     } else {
-      $errors = $this->handle_post_events('add');
+      $errors = $this->handle_post_events('add', ['modifiedLdapAttrs' => array_keys($this->attrs)]);
       logging::log('create', 'plugin/'.get_class($this), $this->dn, array_keys($this->attrs), $this->ldap_error);
     }
     if (!empty($errors)) {
@@ -1367,7 +1474,7 @@ class simplePlugin
    *
    * \param  array  $addAttrs
    */
-  protected function handle_hooks ($when, $mode, array $addAttrs = [])
+  protected function handle_hooks (string $when, string $mode, array $addAttrs = []): array
   {
     switch ($mode) {
       case 'add':
@@ -1381,14 +1488,14 @@ class simplePlugin
 
       default:
         trigger_error(sprintf('Invalid %s event type given: "%s"! Valid types are: add, modify, remove.', strtolower($when), $mode));
-        break;
+        return [];
     }
   }
 
   /*! \brief Forward command execution requests
    *         to the post hook execution method.
    */
-  function handle_post_events ($mode, array $addAttrs = [])
+  function handle_post_events (string $mode, array $addAttrs = [])
   {
     /* Update foreign keys */
     if ($mode == 'remove') {
@@ -1403,7 +1510,7 @@ class simplePlugin
    *  \brief Forward command execution requests
    *         to the pre hook execution method.
    */
-  function handle_pre_events ($mode, array $addAttrs = [])
+  function handle_pre_events (string $mode, array $addAttrs = []): array
   {
     global $config;
 
@@ -1418,12 +1525,22 @@ class simplePlugin
     return $this->handle_hooks('PRE', $mode, $addAttrs);
   }
 
+  function fillHookAttrs (array &$addAttrs)
+  {
+    // Walk trough attributes list and add the plugins attributes.
+    foreach ($this->attributes as $attr) {
+      if (!isset($addAttrs[$attr])) {
+        $addAttrs[$attr] = $this->$attr;
+      }
+    }
+  }
+
   /*!
    * \brief    Calls external hooks which are defined for this plugin (fusiondirectory.conf)
    *           Replaces placeholder by class values of this plugin instance.
    *       Allows to a add special replacements.
    */
-  function callHook ($cmd, array $addAttrs = [], &$returnOutput = [], &$returnCode = NULL)
+  function callHook ($cmd, array $addAttrs = [], &$returnOutput = [], &$returnCode = NULL): array
   {
     if ($this->is_template) {
       return [];
@@ -1434,10 +1551,7 @@ class simplePlugin
     $messages = [];
 
     foreach ($commands as $command) {
-      // Walk trough attributes list and add the plugins attributes.
-      foreach ($this->attributes as $attr) {
-        $addAttrs[$attr] = $this->$attr;
-      }
+      $this->fillHookAttrs($addAttrs);
 
       $ui = get_userinfo();
 
@@ -1451,11 +1565,9 @@ class simplePlugin
       $addAttrs['location']   = $config->current['NAME'];
 
       if (isset($this->parent->by_object)) {
-        foreach ($this->parent->by_object as $object) {
-          foreach ($object->attributes as $attr) {
-            if (!isset($addAttrs[$attr])) {
-              $addAttrs[$attr] = $object->$attr;
-            }
+        foreach ($this->parent->by_object as $class => $object) {
+          if ($class != get_class($this)) {
+            $object->fillHookAttrs($addAttrs);
           }
         }
       }
@@ -1465,35 +1577,54 @@ class simplePlugin
       }
 
       $command = templateHandling::parseString($command, $addAttrs, 'escapeshellarg');
-
-      @DEBUG(DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute");
+      logging::debug(DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, 'Execute');
       exec($command, $arr, $returnCode);
+
+      $command = static::passwordProtect($command);
+
       $returnOutput = $arr;
 
       if ($returnCode != 0) {
         $str = implode("\n", $arr);
-        @DEBUG(DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execution failed code: ".$returnCode);
-        $message = msgPool::cmdexecfailed($cmd, $command, get_class($this));
-        if (!empty($str)) {
-          $message .= "Result: ".$str;
-        }
-        $messages[] = $message;
+        $str = static::passwordProtect($str);
+        logging::debug(DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, 'Execution failed code: '.$returnCode);
+        logging::debug(DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, 'Output: '.$str);
+        $messages[] = new SimplePluginHookError(
+          $this,
+          $cmd,
+          $str,
+          $returnCode
+        );
       } elseif (is_array($arr)) {
         $str = implode("\n", $arr);
-        @DEBUG(DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Result: ".$str);
-        if (!empty($str) && $config->get_cfg_value("displayHookOutput", "FALSE") == "TRUE") {
-          msg_dialog::display('['.get_class($this).' '.strtolower($cmd)."hook] $command", $str, INFO_DIALOG);
+        $str = static::passwordProtect($str);
+        logging::debug(DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, 'Output: '.$str);
+        if (!empty($str) && $config->get_cfg_value('displayHookOutput', 'FALSE') == 'TRUE') {
+          msg_dialog::display('['.get_class($this).' '.strtolower($cmd).'trigger] '.$command, htmlescape($str), INFO_DIALOG);
         }
       }
+      unset($arr, $command, $returnCode);
     }
     return $messages;
   }
 
+  /*! \brief This function protect the clear string password by replacing char.
+   */
+  protected static function passwordProtect (string $hookCommand = NULL): string
+  {
+    if (isset($_POST["userPassword_password"]) && !empty($_POST["userPassword_password"])) {
+      if (strpos($hookCommand, $_POST["userPassword_password"]) !== FALSE) {
+        $hookCommand = str_replace($_POST["userPassword_password"], '*******', $hookCommand);
+      }
+    }
+      return $hookCommand;
+  }
+
   /*! \brief This function checks the attributes values and yell if something is wrong
    */
-  function check ()
+  function check (): array
   {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'check');
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'check');
     $messages = [];
 
     foreach ($this->attributesInfo as $sectionInfo) {
@@ -1512,8 +1643,7 @@ class simplePlugin
     $error = $this->callHook('CHECK', ['nbCheckErrors' => count($messages)], $returnOutput);
     if (!empty($error)) {
       $messages = array_merge($messages, $error);
-    }
-    if (!empty($returnOutput)) {
+    } elseif (!empty($returnOutput)) {
       $messages[] = join("\n", $returnOutput);
     }
 
@@ -1522,14 +1652,14 @@ class simplePlugin
       $current_csn = getEntryCSN($this->dn);
       if (($current_csn != $this->entryCSN) && !empty($current_csn)) {
         $this->entryCSN = $current_csn;
-        $messages[] = _('The object has changed since opened in FusionDirectory. All changes that may be done by others will get lost if you save this entry!');
+        $messages[] = _('The object has changed since being opened in FusionDirectory. All changes that may be done by others will get lost if you save this entry!');
       }
     }
 
     return $messages;
   }
 
-  function handleForeignKeys ($olddn = NULL, $newdn = NULL, $mode = 'move')
+  function handleForeignKeys (string $olddn = NULL, string $newdn = NULL, string $mode = 'move')
   {
     if (($olddn !== NULL) && ($olddn == $newdn)) {
       return;
@@ -1544,7 +1674,7 @@ class simplePlugin
     );
   }
 
-  function browseForeignKeys ($mode, $param1 = NULL, $param2 = NULL)
+  function browseForeignKeys (string $mode, $param1 = NULL, $param2 = NULL)
   {
     global $config, $plist;
 
@@ -1623,79 +1753,85 @@ class simplePlugin
       }
     }
     foreach ($classes as $tabclass) {
-      $infos = pluglist::pluginInfos($tabclass);
-      foreach ($infos['plForeignRefs'] as $field => $refs) {
-        if (preg_match('/^handle_/', $mode)) {
-          if (($newdn !== NULL) && ($field != 'dn') && ($mode == 'handle_move')) {
-            // Move action, ignore other fields than dn
-            continue;
-          } elseif (($newdn === NULL) && ($olddn === NULL) && (($field == 'dn') || (!$this->attributeHaveChanged($field)))) {
-            // Edit action, ignore dn changes or attributes which did not change
-            continue;
-          }
-          // else = delete action, all fields are concerned, nothing to do here
-        }
-        foreach ($refs as $ref) {
-          $class  = $ref[0];
-          $ofield = $ref[1];
-          $filter = $ref[2];
-          $cinfos = pluglist::pluginInfos($class);
-          if ($class == 'aclAssignment') {
-            /* Special case: aclAssignment foreignKey is ignored on department types as it’s handled by the aclAssignment objectType */
-            $objectTypes = ['ACLASSIGNMENT'];
-          } elseif (is_subclass_of($class, 'simpleService')) {
-            $objectTypes = ['SERVER'];
-          } else {
-            $objectTypes = [];
-            foreach ($cinfos['plObjectType'] as $key => $objectType) {
-              if (!is_numeric($key)) {
-                $objectType = $key;
-              }
-              if (preg_match('/^ogroup-/i', $objectType)) {
-                $objectType = 'OGROUP';
-              }
-              $objectTypes[] = $objectType;
+      try {
+        $infos = pluglist::pluginInfos($tabclass);
+        foreach ($infos['plForeignRefs'] as $field => $refs) {
+          if (preg_match('/^handle_/', $mode)) {
+            if (
+                (($newdn !== NULL) && ($field != 'dn') && ($mode == 'handle_move')) ||
+                (($newdn === NULL) && ($olddn === NULL) && (($field == 'dn') || (!$this->attributeHaveChanged($field))))
+              ) {
+              // Move action, ignore other fields than dn
+              // Edit action, ignore dn changes or attributes which did not change
+              continue;
             }
-            $objectTypes = array_unique($objectTypes);
+            // else = delete action, all fields are concerned, nothing to do here
           }
-          foreach ($objectTypes as $objectType) {
-            if (preg_match('/^handle_/', $mode)) {
-              if ($field == 'dn') {
-                $oldvalue = $olddn;
-                $newvalue = $newdn;
-              } elseif (($olddn !== NULL) && ($newdn === NULL)) {
-                $oldvalue = $this->attributeInitialValue($field);
-                $newvalue = NULL;
-              } else {
-                $oldvalue = $this->attributeInitialValue($field);
-                $newvalue = $this->attributeValue($field);
+          foreach ($refs as $ref) {
+            $class  = $ref[0];
+            $ofield = $ref[1];
+            $filter = $ref[2];
+            $cinfos = pluglist::pluginInfos($class);
+            if ($class == 'aclAssignment') {
+              /* Special case: aclAssignment foreignKey is ignored on department types as it’s handled by the aclAssignment objectType */
+              $objectTypes = ['ACLASSIGNMENT'];
+            } elseif (is_subclass_of($class, 'simpleService')) {
+              $objectTypes = ['SERVER'];
+            } else {
+              $objectTypes = [];
+              foreach ($cinfos['plObjectType'] as $key => $objectType) {
+                if (!is_numeric($key)) {
+                  $objectType = $key;
+                }
+                if (preg_match('/^ogroup-/i', $objectType)) {
+                  $objectType = 'OGROUP';
+                }
+                $objectTypes[] = $objectType;
               }
-              $foreignRefs[$objectType]['refs'][$class][$ofield][$field] =
-                [
-                  'tab'       => $tabclass,
-                  'field'     => $field,
-                  'oldvalue'  => $oldvalue,
-                  'newvalue'  => $newvalue,
-                ];
-              $filter = templateHandling::parseString($filter, ['oldvalue' => $oldvalue, 'newvalue' => $newvalue], 'ldap_escape_f');
-            } elseif ($mode == 'references') {
-              $foreignRefs[$objectType]['refs'][$class]['name'] = $cinfos['plShortName'];
-
-              $foreignRefs[$objectType]['refs'][$class]['fields'][$ofield][$field] =
-                [
-                  'tab'     => $tabclass,
-                  'field'   => $field,
-                  'tabname' => $this->parent->by_name[$tabclass],
-                  'value'   => $this->parent->by_object[$tabclass]->$field,
-                ];
-              $filter = templateHandling::parseString($filter, ['oldvalue' => $this->parent->by_object[$tabclass]->$field], 'ldap_escape_f');
+              $objectTypes = array_unique($objectTypes);
             }
-            if (!preg_match('/^\(.*\)$/', $filter)) {
-              $filter = '('.$filter.')';
+            foreach ($objectTypes as $objectType) {
+              if (preg_match('/^handle_/', $mode)) {
+                if ($field == 'dn') {
+                  $oldvalue = $olddn;
+                  $newvalue = $newdn;
+                } elseif (($olddn !== NULL) && ($newdn === NULL)) {
+                  $oldvalue = $this->attributeInitialValue($field);
+                  $newvalue = NULL;
+                } else {
+                  $oldvalue = $this->attributeInitialValue($field);
+                  $newvalue = $this->attributeValue($field);
+                }
+                $foreignRefs[$objectType]['refs'][$class][$ofield][$field] =
+                  [
+                    'tab'       => $tabclass,
+                    'field'     => $field,
+                    'oldvalue'  => $oldvalue,
+                    'newvalue'  => $newvalue,
+                  ];
+                $filter = templateHandling::parseString($filter, ['oldvalue' => $oldvalue, 'newvalue' => $newvalue], 'ldap_escape_f');
+              } elseif ($mode == 'references') {
+                $foreignRefs[$objectType]['refs'][$class]['name'] = $cinfos['plShortName'];
+
+                $foreignRefs[$objectType]['refs'][$class]['fields'][$ofield][$field] =
+                  [
+                    'tab'     => $tabclass,
+                    'field'   => $field,
+                    'tabname' => $this->parent->by_name[$tabclass],
+                    'value'   => $this->parent->by_object[$tabclass]->$field,
+                  ];
+                $filter = templateHandling::parseString($filter, ['oldvalue' => $this->parent->by_object[$tabclass]->$field], 'ldap_escape_f');
+              }
+              if (!preg_match('/^\(.*\)$/', $filter)) {
+                $filter = '('.$filter.')';
+              }
+              $foreignRefs[$objectType]['filters'][$filter] = $filter;
             }
-            $foreignRefs[$objectType]['filters'][$filter] = $filter;
           }
         }
+      } catch (UnknownClassException $e) {
+        /* May happen in special cases like setup */
+        continue;
       }
     }
 
@@ -1717,8 +1853,6 @@ class simplePlugin
       }
       // For each object of this type
       foreach (array_keys($objects) as $dn) {
-        /* Avoid sending POST to opened objects */
-        $_POST = [];
         // Build the object
         $tabobject = objects::open($dn, $objectType);
         if (preg_match('/^handle_/', $mode)) {
@@ -1744,7 +1878,7 @@ class simplePlugin
                   );
                 }
               }
-              $pluginobject->save_object();
+              $pluginobject->update();
             }
           }
           $errors = $tabobject->save();
@@ -1818,7 +1952,7 @@ class simplePlugin
    *
    * \param string $base
    */
-  function create_unique_dn ($attribute, $base)
+  function create_unique_dn (string $attribute, string $base): string
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -1854,16 +1988,18 @@ class simplePlugin
     throw new FusionDirectoryException(_('Failed to create a unique DN'));
   }
 
-  /*
-   * \brief Adapt from template, using 'dn'
+  /*!
+   * \brief Adapt from template
    *
-   * \param string $dn The DN
+   * Adapts fields to the values from a template.
+   * Should not empty any fields, only take values for the ones provided by the caller.
    *
-   * \param array $skip A new array
+   * \param array $attrs LDAP attributes values for template-modified attributes
+   * \param array $skip attributes to leave untouched
    */
-  function adapt_from_template ($attrs, $skip = [])
+  function adapt_from_template (array $attrs, array $skip = [])
   {
-    $this->attrs = $attrs;
+    $this->attrs = array_merge($this->attrs, $attrs);
 
     /* Walk through attributes */
     foreach ($this->attributesAccess as $ldapName => &$attr) {
@@ -1872,7 +2008,7 @@ class simplePlugin
         continue;
       }
       /* Load values */
-      $attr->loadValue($this->attrs);
+      $attr->loadValue($attrs);
     }
     unset($attr);
 
@@ -1892,26 +2028,37 @@ class simplePlugin
     $this->initially_was_account  = FALSE;
   }
 
-  protected function attributeHaveChanged ($field)
+  protected function attributeHaveChanged (string $field): bool
   {
     return $this->attributesAccess[$field]->hasChanged();
   }
 
-  protected function attributeValue ($field)
+  protected function attributeValue (string $field)
   {
     return $this->attributesAccess[$field]->getValue();
   }
 
-  protected function attributeInitialValue ($field)
+  protected function attributeInitialValue (string $field)
   {
     return $this->attributesAccess[$field]->getInitialValue();
   }
 
-  function foreignKeyUpdate ($field, $oldvalue, $newvalue, $source)
+  function foreignKeyUpdate (string $field, $oldvalue, $newvalue, array $source)
   {
     if (!isset($source['MODE'])) {
       $source['MODE'] = 'move';
     }
+
+    // In case of SetAttribute, value is an array needing to be changed to string.
+    if (is_array($oldvalue) && isset($oldvalue[0])) {
+
+      $oldvalue = $oldvalue[0];
+    }
+    if (is_array($newvalue) && isset($newvalue[0])) {
+
+      $newvalue = $newvalue[0];
+    }
+
     $this->attributesAccess[$field]->foreignKeyUpdate($oldvalue, $newvalue, $source);
   }
 
@@ -1925,12 +2072,17 @@ class simplePlugin
    * )
    * mode being either 'copy' or 'move', defaults to 'move'
    */
-  function foreignKeyCheck ($field, $value, $source)
+  function foreignKeyCheck (string $field, $value, array $source)
   {
+    // In case of SetAttribute, value is an array needing to be changed to string.
+    if (is_array($value) && isset($value[0])) {
+
+      $value = $value[0];
+    }
     return $this->attributesAccess[$field]->foreignKeyCheck($value, $source);
   }
 
-  function deserializeValues ($values, $checkAcl = TRUE)
+  function deserializeValues (array $values, bool $checkAcl = TRUE)
   {
     foreach ($values as $name => $value) {
       if (isset($this->attributesAccess[$name])) {
@@ -1940,17 +2092,23 @@ class simplePlugin
             return $error;
           }
         } else {
-          return msgPool::permModify($this->dn, $name);
+          return new SimplePluginPermissionError($this, msgPool::permModify($this->dn, $name));
         }
       } else {
-        return sprintf(_('Unknown field "%s"'), $name);
+        return new SimplePluginError(
+          $this,
+          htmlescape(sprintf(_('Unknown field "%s"'), $name))
+        );
       }
     }
     return TRUE;
   }
 
-  /* Returns TRUE if this attribute should be asked in the creation by template dialog */
-  function showInTemplate ($attr, $templateAttrs)
+  /*! \brief Returns TRUE if this attribute should be asked in the creation by template dialog
+   *
+   * \return bool whether this attribute should be asked
+   */
+  function showInTemplate (string $attr, array $templateAttrs): bool
   {
     if (isset($templateAttrs[$attr])) {
       return FALSE;
@@ -1958,17 +2116,57 @@ class simplePlugin
     return TRUE;
   }
 
-  function is_modal_dialog ()
+  function is_modal_dialog (): bool
   {
     return (isset($this->dialog) && $this->dialog);
   }
 
+  static function fillAccountAttrsNeeded (&$needed)
+  {
+    $infos = pluglist::pluginInfos(get_called_class());
+    if (isset($infos['plFilterObject'])) {
+      $attrs = $infos['plFilterObject']->listUsedAttributes();
+      foreach ($attrs as $attr) {
+        if (!isset($needed[$attr])) {
+          $needed[$attr] = '*';
+        }
+      }
+    }
+  }
+
+  static function isAccount ($attrs)
+  {
+    $infos = pluglist::pluginInfos(get_called_class());
+    if (isset($infos['plFilterObject'])) {
+      return $infos['plFilterObject']($attrs);
+    }
+    return NULL;
+  }
+
+  static function getLdapFilter ()
+  {
+    $infos = pluglist::pluginInfos(get_called_class());
+    if (isset($infos['plFilter'])) {
+      return $infos['plFilter'];
+    }
+    return NULL;
+  }
+
+  static function getLdapFilterObject ()
+  {
+    $infos = pluglist::pluginInfos(get_called_class());
+    if (isset($infos['plFilterObject'])) {
+      return $infos['plFilterObject'];
+    }
+    return NULL;
+  }
+
   /*!
    * \brief Return plugin informations for acl handling
    *
    * \return an array
    */
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [];
   }
@@ -1976,25 +2174,35 @@ class simplePlugin
   /*! \brief This function generate the needed ACLs for a given attribtues array
    *
    *  \param array $attributesInfo the attribute array
+   *
+   *  \param bool? $operationalAttributes Whether to add ACLs for operational attributes. Use NULL for autodetection (default)
    */
-  static function generatePlProvidedAcls ($attributesInfo)
+  static function generatePlProvidedAcls (array $attributesInfo, bool $operationalAttributes = NULL): array
   {
     $plProvidedAcls = [];
     foreach ($attributesInfo as $sectionInfo) {
       foreach ($sectionInfo['attrs'] as $attr) {
+        if (($attr->getLdapName() === 'base') && ($operationalAttributes === NULL)) {
+          /* If we handle base, we also handle LDAP operational attributes */
+          $operationalAttributes = TRUE;
+        }
         $aclInfo = $attr->getAclInfo();
         if ($aclInfo !== FALSE) {
           $plProvidedAcls[$aclInfo['name']] = $aclInfo['desc'];
         }
       }
     }
+    if ($operationalAttributes) {
+      $plProvidedAcls['createTimestamp'] = _('The time the entry was added');
+      $plProvidedAcls['modifyTimestamp'] = _('The time the entry was last modified');
+    }
 
     return $plProvidedAcls;
   }
 
   /*! \brief This function is the needed main.inc for plugins that are not used inside a management class
    *
-   *  \param array $classname the class name to read plInfo from. (plIcon, plShortname and plCategory are gonna be used)
+   *  \param array $classname the class name to read plInfo from. (plIcon, plTitle, plShortname and plObjectType may be used)
    *
    *  \param string $entry_dn the dn of the object to show/edit
    *
@@ -2005,9 +2213,17 @@ class simplePlugin
    *  \param string $objectType The objectType to use (will be taken in the plInfo if FALSE)
    *
    */
-  static function mainInc ($classname, $entry_dn, $tabs = FALSE, $edit_mode = TRUE, $objectType = FALSE)
+  static function mainInc ($classname = NULL, $entry_dn = NULL, $tabs = FALSE, $edit_mode = TRUE, $objectType = FALSE)
   {
-    global $remove_lock, $cleanup, $display, $config, $plug, $ui;
+    global $remove_lock, $cleanup, $display, $config, $plug, $ui, $smarty;
+
+    if ($classname === NULL) {
+      $classname = get_called_class();
+    }
+
+    if ($entry_dn === NULL) {
+      $entry_dn = $ui->dn;
+    }
 
     $plInfo     = pluglist::pluginInfos($classname);
     $plIcon     = (isset($plInfo['plIcon']) ? $plInfo['plIcon'] : 'plugin.png');
@@ -2019,22 +2235,13 @@ class simplePlugin
       }
       $objectType = $key;
     }
-    $plCategory = (isset($plInfo['plCategory']) ? $plInfo['plCategory'] : ['user']);
-    $key = key($plCategory);
-    if (is_numeric($key)) {
-      $plCategory = $plCategory[$key];
-    } else {
-      $plCategory = $key;
-    }
 
     $lock_msg = "";
-    if ($edit_mode) {
+    if ($edit_mode
+      && ($remove_lock || (isset($_POST['edit_cancel']) && session::is_set('edit')))
+      && session::is_set($classname)) {
       /* Remove locks created by this plugin */
-      if ($remove_lock || (isset($_POST['edit_cancel']) && session::is_set('edit'))) {
-        if (session::is_set($classname)) {
-          del_lock($entry_dn);
-        }
-      }
+      Lock::deleteByObject($entry_dn);
     }
 
     /* Remove this plugin from session */
@@ -2061,55 +2268,50 @@ class simplePlugin
         if (!$tabs) {
           $tabObject->current = $classname;
         }
-        if (($entry_dn != '') && ($entry_dn != 'new')) {
-          $tabObject->set_acl_base($entry_dn);
-        } else {
-          $tabObject->set_acl_base($config->current['BASE']);
-        }
         session::set($classname, $tabObject);
       }
       $tabObject = session::get($classname);
 
-      /* save changes back to object */
       if (!$edit_mode || session::is_set('edit')) {
-        $tabObject->save_object();
+        /* Save changes back to object */
+        $tabObject->readPost();
+        $tabObject->update();
+      } else {
+        /* Allow changing tab before going into edit mode */
+        $tabObject->readPostTabChange();
       }
 
       if ($edit_mode) {
         /* Enter edit mode? */
         if ((isset($_POST['edit'])) && (!session::is_set('edit'))) {
           /* Check locking */
-          if ($locks = get_locks($entry_dn)) {
-            session::set('back_plugin', $plug);
-            session::set('LOCK_VARS_TO_USE', ["/^edit$/", "/^plug$/"]);
-            $lock_msg = gen_locked_message($locks, $entry_dn);
+          if ($locks = Lock::get($entry_dn)) {
+            session::set('LOCK_VARS_TO_USE', ['/^edit$/', '/^plug$/']);
+            $lock_msg = Lock::genLockedMessage($locks);
           } else {
             /* Lock the current entry */
-            add_lock($entry_dn, $ui->dn);
+            Lock::add($entry_dn);
             session::set('edit', TRUE);
           }
         }
 
         /* save changes to LDAP and disable edit mode */
-        $info = "";
         if (isset($_POST['edit_finish'])) {
           /* Perform checks */
-          $message = $tabObject->save();
+          $errors = $tabObject->save();
 
           /* No errors, save object */
-          if (count($message) == 0) {
-            del_lock($entry_dn);
+          if (count($errors) == 0) {
+            Lock::deleteByObject($entry_dn);
             session::un_set('edit');
 
             /* Remove from session */
             session::un_set($classname);
           } else {
-            /* Errors found, show message */
-            msg_dialog::displayChecks($message);
+            /* Errors found, show errors */
+            msg_dialog::displayChecks($errors);
           }
         }
-      } else {
-        $info = "";
       }
 
       /* Execute formular */
@@ -2117,9 +2319,9 @@ class simplePlugin
         $display = $lock_msg;
       } else {
         if ($tabs) {
-          $display .= $tabObject->execute();
+          $display .= $tabObject->render();
         } else {
-          $display .= $tabObject->by_object[$classname]->execute();
+          $display .= $tabObject->by_object[$classname]->render();
         }
       }
 
@@ -2131,33 +2333,31 @@ class simplePlugin
       /* Show page footer depending on the mode */
       $info = $entry_dn.'&nbsp;';
       if ($edit_mode && (!$tabObject->dialogOpened()) && empty($lock_msg)) {
-        $display .= '<p class="plugbottom">';
-
         /* Are we in edit mode? */
         if (session::is_set('edit')) {
+          $display .= '<p class="plugbottom">'."\n";
           $display .= '<input type="submit" name="edit_finish" style="width:80px" value="'.msgPool::okButton().'"/>'."\n";
           $display .= '&nbsp;';
-          $display .= '<input type="submit" name="edit_cancel" value="'.msgPool::cancelButton().'"/>'."\n";
-        } else {
-          /* Only display edit button if there is at least one attribute editable */
-          if (preg_match('/r/', $ui->get_permissions($entry_dn, $plCategory.'/'.$tabObject->current))) {
-            $info .= '<div style="float:left;" class="optional"><img class="center" alt="information" '.
-                      'src="geticon.php?context=status&amp;icon=dialog-information&amp;size=16"> '.
-                      msgPool::clickEditToChange().'</div>';
-
-            $display .= '<input type="submit" name="edit" value="'.msgPool::editButton().'"/>'."\n";
-          }
-          $display .= '<input type="hidden" name="ignore"/>'."\n";
+          $display .= '<input type="submit" formnovalidate="formnovalidate" name="edit_cancel" value="'.msgPool::cancelButton().'"/>'."\n";
+          $display .= "</p>\n";
+        } elseif (strpos($tabObject->by_object[$tabObject->current]->aclGetPermissions(''), 'w') !== FALSE) {
+          /* Only display edit button if there is at least one attribute writable */
+          $display  .= '<p class="plugbottom">'."\n";
+          $info     .= '<div style="float:left;" class="optional"><img class="center" alt="information" '.
+                    'src="geticon.php?context=status&amp;icon=dialog-information&amp;size=16"> '.
+                    msgPool::clickEditToChange().'</div>';
+          $display  .= '<input type="submit" name="edit" value="'.msgPool::editButton().'"/>'."\n";
+          $display  .= "</p>\n";
         }
-        $display .= "</p>\n";
       }
 
       /* Page header */
       if (!preg_match('/^geticon/', $plIcon)) {
         $plIcon = get_template_path($plIcon);
       }
-      $display = print_header($plIcon, $plHeadline, $info).$display;
+      $smarty->assign('headline', $plHeadline);
+      $smarty->assign('headline_image', $plIcon);
+      $display = '<div class="pluginfo">'.$info."</div>\n".$display;
     }
   }
 }
-?>
diff --git a/include/simpleplugin/class_simpleSelectManagement.inc b/include/simpleplugin/class_simpleSelectManagement.inc
deleted file mode 100644
index e754c15325f25246f9b959a74b7234e359ec3fef..0000000000000000000000000000000000000000
--- a/include/simpleplugin/class_simpleSelectManagement.inc
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/*!
- * \brief Management base class for selection dialogs
- */
-class simpleSelectManagement extends simpleManagement
-{
-  protected $skipFooter = TRUE;
-  protected $skipHeader = TRUE;
-
-  protected $skipCpHandler    = TRUE;
-  protected $autoActions      = FALSE;
-
-  public static $skipSnapshots = TRUE;
-
-  protected $departmentRootVisible  = FALSE;
-
-  function __construct ()
-  {
-    if ($this->listXMLPath === NULL) {
-      $this->listXMLPath = get_template_path('simple-select-list.xml', TRUE, dirname(__FILE__));
-    }
-
-    parent::__construct();
-  }
-
-  /* Build the action menu, fill the object definition, etc, based on objectTypes info */
-  function configureHeadpage ()
-  {
-    parent::configureHeadpage();
-    $this->headpage->registerElementFilter("selectLink", "simpleSelectManagement::filterSelectLink");
-  }
-
-  function configureFilter ()
-  {
-    parent::configureFilter();
-    if ($this->autoFilter) {
-      $this->filter->query['0']['backend'] = 'LDAPBlacklist';
-    }
-  }
-
-  function configureHeadline ()
-  {
-  }
-
-  function configureFilterCategory ()
-  {
-    $infos = objects::infos($this->objectTypes[0]);
-    $this->filter->category = $infos['aclCategory'];
-  }
-
-  static function filterSelectLink ()
-  {
-    if (func_num_args() < 4) {
-      return '&nbsp';
-    }
-    $pid    = func_get_arg(0);
-    $row    = func_get_arg(1);
-    $dn     = func_get_arg(2);
-    $trans  = func_get_arg(3);
-    if (is_array($trans)) {
-      $trans  = $trans[0];
-    }
-    if ($trans != '') {
-      return '<a href="?plug='.$_GET['plug'].'&amp;PID='.$pid.'&amp;act=listing_select_'.$row.'&amp;add_finish=1" title="'.htmlentities($dn, ENT_COMPAT, 'UTF-8').'">'.htmlentities($trans, ENT_COMPAT, 'UTF-8').'</a>';
-    }
-
-    return '';
-  }
-}
-?>
diff --git a/include/simpleplugin/class_simpleService.inc b/include/simpleplugin/class_simpleService.inc
index 52b4152c8ae0b2877182dbd7214eeced2c8835ba..889ea71a82eb41514fa7b76fedebc118091aad93 100644
--- a/include/simpleplugin/class_simpleService.inc
+++ b/include/simpleplugin/class_simpleService.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -33,40 +34,44 @@ class simpleService extends simplePlugin
   /*! \brief constructor
    *
    *  \param string $dn The dn of this instance
-   *  \param Object $parent The serverService instance
+   *  \param Object $parent The servicesManagement instance
    *  \param array $attributesInfo An attributesInfo array, if NULL, getAttributesInfo will be used.
    *
    */
   function __construct ($dn = NULL, $parent = NULL, $attributesInfo = NULL)
   {
-    /* $parent is the instance of serverService in this case, we set it as parent */
+    /* $parent is the instance of servicesManagement in this case, we set it as parent */
     parent::__construct($dn, $parent, $parent, FALSE, $attributesInfo);
+
+    /* Services do not have the activation header, but can still be disabled */
+    $this->ignore_account = FALSE;
+
     $plInfos = pluglist::pluginInfos(get_class($this));
     $this->DisplayName  = $plInfos['plShortName'];
   }
 
   /*! \brief This function display the service and return the html code
    */
-  function execute ()
+  public function render (): string
   {
-    $str = parent::execute();
+    $str = parent::render();
 
     if (!$this->dialog) {
-      $str .= '<div class="plugbottom servicebottom">'.
+      $str .= '<p class="plugbottom servicebottom">'.
              '  <input type="submit" name="SaveService" value="'.msgPool::saveButton().'"/>&nbsp;'.
-             '  <input type="submit" name="CancelService" value="'.msgPool::cancelButton().'"/>'.
+             '  <input type="submit" formnovalidate="formnovalidate" name="CancelService" value="'.msgPool::cancelButton().'"/>'.
              '</div>';
     }
 
     return $str;
   }
 
-  protected function acl_skip_write ()
+  protected function acl_skip_write (): bool
   {
     return FALSE;
   }
 
-  /*! \brief Get service information for serverService plugin */
+  /*! \brief Get service information for servicesManagement plugin */
   function getListEntry ()
   {
     /* Assign status flag */
@@ -106,7 +111,7 @@ class simpleService extends simplePlugin
     $this->status = $value;
   }
 
-  static function generatePlProvidedAcls ($attributesInfo)
+  static function generatePlProvidedAcls (array $attributesInfo, bool $operationalAttributes = NULL): array
   {
     $acls = parent::generatePlProvidedAcls($attributesInfo);
     if (static::$showActions) {
@@ -119,4 +124,3 @@ class simpleService extends simplePlugin
     return $acls;
   }
 }
-?>
diff --git a/include/simpleplugin/class_simpleTabs.inc b/include/simpleplugin/class_simpleTabs.inc
index 5dd21b4d60600b1026cf9a5b81c38d05fd78312c..29df963d68ec4fe45e65489e28981e5cc7ac1ef8 100644
--- a/include/simpleplugin/class_simpleTabs.inc
+++ b/include/simpleplugin/class_simpleTabs.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -27,7 +27,7 @@
 /*!
  * \brief This class contains all function to manage tabs classes
  */
-class simpleTabs
+class simpleTabs implements FusionDirectoryDialog
 {
   var $dn;
   var $acl;
@@ -41,6 +41,9 @@ class simpleTabs
   var $current    = "";
   var $disabled   = "";
   var $by_name    = [];
+  /**
+   * @var array<string,SimpleTab>
+   */
   var $by_object  = [];
   var $acl_category;
 
@@ -54,14 +57,10 @@ class simpleTabs
   /*!
    * \brief Tabs classes constructor
    * */
-  function __construct ($type, $dn, $attrs_object = NULL)
+  function __construct (string $type, $dn, $attrs_object = NULL)
   {
     global $config;
 
-    if (!is_string($type)) {
-      die('deprecated call to old tabclass constructor');
-    }
-
     $infos              = objects::infos($type);
     $data               = $config->data['TABS'][$infos['tabGroup']];
     $this->acl_category = $infos['aclCategory'];
@@ -69,27 +68,31 @@ class simpleTabs
     $this->dn           = $dn;
 
     if (!count($data)) {
-      $data[] = ['CLASS' => 'plugin','NAME' => 'Error'];
-      msg_dialog::display(_('Error'),
-        sprintf(_('No plugin definitions found to initialize "%s", please check your configuration file.'), get_class($this)),
-        ERROR_DIALOG);
+      throw new FusionDirectoryException(
+        sprintf(
+          _('No plugin definitions found to initialize "%s", please check your configuration file.'),
+          get_class($this)
+        )
+      );
     }
 
-    $baseobject         = NULL;
+    $this->baseclass = NULL;
     foreach ($data as $tab) {
       if (!plugin_available($tab['CLASS'])) {
         continue;
       }
+      if (!is_a($tab['CLASS'], 'SimpleTab', TRUE)) {
+        throw new FusionDirectoryException('Invalid class '.$tab['CLASS'].' found in '.$type.' tab list');
+      }
 
       $this->by_name[$tab['CLASS']]   = $tab['NAME'];
       $this->plNotify[$tab['CLASS']]  = FALSE;
 
-      if ($baseobject === NULL) {
-        $baseobject = new $tab['CLASS']($this->dn, $attrs_object, $this, TRUE);
-        $this->by_object[$tab['CLASS']] = $baseobject;
+      if ($this->baseclass === NULL) {
+        $this->by_object[$tab['CLASS']] = new $tab['CLASS']($this->dn, $attrs_object, $this, TRUE);
         $this->baseclass                = $tab['CLASS'];
       } else {
-        $this->by_object[$tab['CLASS']] = new $tab['CLASS']($this->dn, $baseobject, $this, FALSE);
+        $this->by_object[$tab['CLASS']] = new $tab['CLASS']($this->dn, $this->by_object[$this->baseclass], $this, FALSE);
       }
 
       $this->by_object[$tab['CLASS']]->set_acl_category($this->acl_category);
@@ -104,7 +107,7 @@ class simpleTabs
         ($baseobject instanceof simplePlugin) &&
         ($baseobject->attributesAccess[$infos['mainAttr']]->getUnique() === FALSE)
       ) {
-        $baseobject->attributesAccess[$infos['mainAttr']]->setUnique(TRUE);
+        $baseobject->attributesAccess[$infos['mainAttr']]->setUnique('one');
       }
     }
 
@@ -137,13 +140,23 @@ class simpleTabs
     }
   }
 
+  /*!
+   * \brief Returns the list of tabs which may appear for a given object type
+   */
+  public static function getPotentialTabList (string $type, array $infos): array
+  {
+    global $config;
+
+    return $config->data['TABS'][$infos['tabGroup']];
+  }
+
   /*!
    * \brief Sets the active tabs from this instance to an other one. Used by templates
    */
   function setActiveTabs (&$tabObject)
   {
     foreach ($this->by_object as $class => $plugin) {
-      if ($plugin->is_account || $plugin->ignore_account) {
+      if ($plugin->isActive()) {
         $tabObject->by_object[$class]->is_account = $plugin->is_account;
       }
     }
@@ -160,25 +173,18 @@ class simpleTabs
 
   function resetBase ()
   {
+    global $ui;
     $baseobject = $this->getBaseObject();
     if (isset($baseobject->base)) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixing base');
-      if (session::is_set('CurrentMainBase')) {
-        $baseobject->base = dn2base('cn=dummy,'.session::get('CurrentMainBase'));
-      } else {
-        $baseobject->base = dn2base(get_userinfo()->dn);
-      }
-      if (!($baseobject instanceOf simplePlugin) && is_object($baseobject->baseSelector)) {
-        /* For some plugins not yet migrated to simple plugin. */
-        $baseobject->baseSelector->setBase($baseobject->base);
-      }
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixed base');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixing base');
+      $baseobject->base = $ui->getCurrentBase();
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $baseobject->base, 'Fixed base');
     } else {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, '', 'no base');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, '', 'no base');
     }
   }
 
-  function getBaseObject ()
+  function getBaseObject (): SimpleTab
   {
     return $this->by_object[$this->baseclass];
   }
@@ -190,37 +196,26 @@ class simpleTabs
   }
 
   /*!
-   * \brief Save the tab(s) contents
+   * \brief Save a tabs object
    */
-  function execute ()
+  function save_object ()
+  {
+    trigger_error('obsolete');
+    $this->readPost();
+  }
+
+  public function readPostTabChange ()
   {
-    /* Look for pressed tab button first */
-    foreach ($this->by_object as $class => &$obj) {
-      if (isset($_POST[$class]) || (isset($_POST['arg']) && $_POST['arg'] == "$class")) {
+    /* Look for pressed tab button */
+    foreach (array_keys($this->by_object) as $class) {
+      if (isset($_POST[$class]) || (isset($_POST['arg']) && ($_POST['arg'] == $class))) {
         $this->current = $class;
         break;
       }
     }
-    unset($obj);
-
-    /* Show object */
-    $display = '<div class="tab-content">'."\n";
-
-    $display .= $this->by_object[$this->current]->execute();
-
-    /* Build tab line */
-    $tabs   = $this->gen_tabs($this->dialogOpened());
-
-    /* Footer for tabbed dialog */
-    $display = $tabs.$display.'</div>';
-
-    return $display;
   }
 
-  /*!
-   * \brief Save a tabs object
-   */
-  function save_object ()
+  public function readPost ()
   {
     /* Ensure that the currently selected tab is valid. */
     if (!isset($this->by_name[$this->current])) {
@@ -231,11 +226,55 @@ class simpleTabs
     $this->last = $this->current;
 
     /* Save last tab */
-    if ($this->last != "") {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->last, "Saving");
+    if ($this->last != '') {
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->last, 'Reading POST');
+
+      $this->by_object[$this->last]->readPost();
+    }
+
+    $this->readPostTabChange();
+  }
+
+  function execute ()
+  {
+    trigger_error('obsolete');
+    $this->update();
+    return $this->render();
+  }
 
-      $this->by_object[$this->last]->save_object();
+  public function update (): bool
+  {
+    /* Call update on all tabs as they may react to changes in other tabs */
+    foreach ($this->by_object as $key => $obj) {
+      $obj->update();
     }
+
+    return TRUE;
+  }
+
+  /*! \brief This function display the plugin and return the html code
+   */
+  public function render (): string
+  {
+    /* Compute tab content */
+    $tabContent = $this->by_object[$this->current]->render();
+
+    /* Build tab line */
+    $display = $this->renderTabList($this->dialogOpened());
+
+    /* Show object */
+    $display .= '<div class="tab-content">'."\n";
+    $display .= $tabContent;
+    $display .= '</div>';
+
+    return $display;
+  }
+
+  /*!
+   * \brief Load tab list if needed
+   */
+  public function loadTabs ()
+  {
   }
 
   /*!
@@ -243,9 +282,9 @@ class simpleTabs
    *
    * \param boolean $disabled false
    */
-  function gen_tabs ($disabled = FALSE)
+  protected function renderTabList (bool $disabled = FALSE): string
   {
-    $display = "";
+    $display = '';
     if (!$disabled) {
       $display .= '<input type="hidden" name="arg" value=""/>';
     }
@@ -253,17 +292,20 @@ class simpleTabs
     $index    = 0;
     $style    = ['tab-left', 'tab-active', 'tab-right'];
     foreach ($this->by_name as $class => $name) {
+      $obj = $this->by_object[$class];
 
-      /* Activate right tabs with style "tab-right" */
-      if ($index == 1) {
-        $index++;
-      } elseif ($class == $this->current) {
-        /* Activate current tab with style "tab-active " */
+      /* Activate right tabs with style "tab-right"
+       * Activate current tab with style "tab-active " */
+      if (($index == 1) || ($class == $this->current)) {
         $index++;
       }
 
       /* Paint tab */
-      $display .= '<td>';
+      if ($obj->aclHasPermissions() && empty($obj->aclGetPermissions(''))) {
+        $display .= '<td class="nonreadable">';
+      } else {
+        $display .= '<td>';
+      }
 
       /* Shorten string if its too long for the tab headers*/
       $title = _($name);
@@ -271,20 +313,16 @@ class simpleTabs
         $title = mb_substr($title, 0, 25, 'UTF-8')."...";
       }
 
-      /* nobr causes w3c warnings so we use &nbsp; to keep the tab name in one line */
-      $title = str_replace(' ', '&nbsp;', $title);
-
       $cssClasses = $style[$index];
 
       /* Take care about notifications */
-      $obj = $this->by_object[$class];
-      if ($this->plNotify[$class] && ($obj->is_account || $obj->ignore_account)) {
+      if ($this->plNotify[$class] && $obj->isActive()) {
         $cssClasses .= ' tab-notify';
       }
       if ($disabled) {
         $cssClasses .= ' tab-disabled';
       }
-      if (!$obj->is_account && !$obj->ignore_account) {
+      if (!$obj->isActive()) {
         $cssClasses .= ' tab-inactive';
       }
 
@@ -298,7 +336,7 @@ class simpleTabs
           'onclick="return true;" '.
           'href="'."javascript:document.mainform.arg.value='$class';document.mainform.submit();".'">';
       }
-      $display .= $title.'</a></div></td>';
+      $display .= htmlescape($title).'</a></div></td>';
     }
 
     $display .= "<td>\n";
@@ -309,29 +347,30 @@ class simpleTabs
 
   /*!
    * \brief Remove object from LDAP
+   *
+   * Returns errors
    */
-  function delete ()
+  public function delete (bool $checkAcl = TRUE): array
   {
-    if (!$this->getBaseObject()->acl_is_removeable()) {
-      msg_dialog::display(_('Permission'), msgPool::permDelete($this->getBaseObject()->dn), ERROR_DIALOG);
-      return FALSE;
+    if ($checkAcl && !$this->getBaseObject()->acl_is_removeable()) {
+      return [new SimplePluginPermissionError($this, msgPool::permDelete($this->getBaseObject()->dn))];
     }
 
     /* Delete all tabs in reverse order */
     foreach (array_reverse($this->by_object) as $obj) {
       $errors = $obj->remove(TRUE);
       if (!empty($errors)) {
-        msg_dialog::displayChecks($errors);
-        return FALSE;
+        return $errors;
       }
     }
-    return TRUE;
+
+    return [];
   }
 
   /*!
    * \brief Check
    */
-  protected function check ()
+  public function check (): array
   {
     global $config;
     $messages = [];
@@ -343,7 +382,10 @@ class simpleTabs
       $ldap->search($filter, ['dn']);
       while ($attrs = $ldap->fetch()) {
         if ($attrs['dn'] != $this->getBaseObject()->dn) {
-          $messages[] = msgPool::duplicated($this->getBaseObject()->attributesAccess['_template_cn']->getLabel(), $attrs['dn']);
+          $messages[] = new SimplePluginCheckError(
+            $this->getBaseObject()->attributesAccess['_template_cn'],
+            msgPool::duplicated($this->getBaseObject()->attributesAccess['_template_cn']->getLabel(), $attrs['dn'])
+          );
         }
       }
       return $messages;
@@ -354,8 +396,8 @@ class simpleTabs
     /* Check all plugins */
     foreach ($this->by_object as $key => $obj) {
       $this->plNotify[$key] = FALSE;
-      if (($obj->is_account || $obj->ignore_account) && (!$obj->is_template)) {
-        @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Checking");
+      if ($obj->isActive() && (!$obj->is_template)) {
+        logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Checking");
 
         $msg = $obj->check();
 
@@ -375,8 +417,6 @@ class simpleTabs
 
   /*
    * \brief Save object in the tab
-   *
-   * \param boolean $ignore_account false
    */
   function save ()
   {
@@ -390,10 +430,15 @@ class simpleTabs
     $old_dn     = $this->dn;
     try {
       $new_dn     = $baseobject->compute_dn();
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $new_dn, 'Saving');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $new_dn, 'Saving');
     } catch (FusionDirectoryException $e) {
       return [
-        sprintf(_('Failed to compute DN for object: %s'), $e->getMessage())
+        new SimplePluginError(
+          $baseobject,
+          htmlescape(sprintf(_('Failed to compute DN for object: %s'), $e->getMessage())),
+          0,
+          $e
+        )
       ];
     }
 
@@ -410,7 +455,10 @@ class simpleTabs
         if (($error = $baseobject->move($this->dn, $new_dn)) === TRUE) {
           $this->dn = $new_dn;
         } else {
-          $errors[] = sprintf(_('Move from "%s" to "%s" failed: %s'), $this->dn, $new_dn, $error);
+          $errors[] = new SimplePluginError(
+            $baseobject,
+            htmlescape(sprintf(_('Move from "%s" to "%s" failed: %s'), $this->dn, $new_dn, $error))
+          );
           return $errors;
         }
       }
@@ -419,34 +467,30 @@ class simpleTabs
     /* Save all plugins */
     $first = TRUE;
     foreach ($this->by_object as $key => $obj) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Saving');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Saving');
 
       $obj->dn = $this->dn;
 
-      if (!($obj instanceof simplePlugin) && !($obj instanceOf simpleManagement)) {
-        trigger_error('Something went wrong while saving '.$obj->dn.'. Class "'.get_class($obj).'".');
+      if ($obj->isActive()) {
+        $result = $obj->save();
       } else {
-        if ($obj->is_account || $obj->ignore_account) {
-          $result = $obj->save();
-        } else {
-          $result = $obj->remove(FALSE);
-        }
-        if (!empty($result)) {
-          if ($creation && $first) {
-            /* If the save of main tab fails for a creation, cancel the save of other tabs */
-            $this->dn = $old_dn;
-            $obj->dn  = $this->dn;
-            return $result;
-          }
-          $errors = array_merge($errors, $result);
+        $result = $obj->remove(FALSE);
+      }
+      if (!empty($result)) {
+        if ($creation && $first) {
+          /* If the save of main tab fails for a creation, cancel the save of other tabs */
+          $this->dn = $old_dn;
+          $obj->dn  = $this->dn;
+          return $result;
         }
+        $errors = array_merge($errors, $result);
       }
       if ($first) {
         $first = FALSE;
       }
     }
 
-    if (empty($errors) && ($this->dn == $ui->dn)) {
+    if (empty($errors) && isset($ui->dn) && ($this->dn == $ui->dn)) {
       /* If the logged in user was edited, update his information */
       $ui->loadLDAPInfo();
     }
@@ -467,10 +511,10 @@ class simpleTabs
    * \param array $attrs an LDAP-like values array
    * \param array $skip Attributes to skip
    */
-  function adapt_from_template ($attrs, $skip = [])
+  function adapt_from_template (array $attrs, array $skip = [])
   {
     foreach ($this->by_object as $key => &$obj) {
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Adapting");
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, "Adapting");
       $obj->parent = &$this;
       $obj->adapt_from_template($attrs, $skip);
     }
@@ -497,23 +541,11 @@ class simpleTabs
   }
 
   /*!
-   * \brief Set acl base
-   *
-   * \param string $base The new acl base
+   * \brief Get LDAP base to use for ACL checks
    */
-  function set_acl_base ($base = "")
+  function getAclBase (): string
   {
-    /* Update reference, transfer variables */
-    $first = ($base == "");
-    foreach ($this->by_object as &$obj) {
-      if ($first) {
-        $first  = FALSE;
-        $base   = $obj->acl_base;
-      } else {
-        $obj->set_acl_base($base);
-      }
-    }
-    unset($obj);
+    return $this->getBaseObject()->getAclBase(FALSE);
   }
 
   function setTemplateMode ($cn)
@@ -539,7 +571,7 @@ class simpleTabs
     $this->ignoreAcls = $bool;
   }
 
-  public function dialogOpened ()
+  public function dialogOpened (): bool
   {
     return $this->by_object[$this->current]->is_modal_dialog();
   }
@@ -555,10 +587,10 @@ class simpleTabs
   /* Return tab or service if activated, FALSE otherwise */
   function getTabOrServiceObject ($tab)
   {
-    if (isset($this->by_object[$tab]) && ($this->by_object[$tab]->is_account || $this->by_object[$tab]->ignore_account)) {
+    if (isset($this->by_object[$tab]) && $this->by_object[$tab]->isActive()) {
       return $this->by_object[$tab];
-    } elseif (is_subclass_of($tab, 'simpleService') && isset($this->by_object['ServerService']->plugins[$tab]) && $this->by_object['ServerService']->plugins[$tab]->is_account) {
-      return $this->by_object['ServerService']->plugins[$tab];
+    } elseif (is_subclass_of($tab, 'simpleService') && isset($this->by_object['servicesManagement'])) {
+      return $this->by_object['servicesManagement']->getServiceObject($tab);
     } else {
       return FALSE;
     }
@@ -572,4 +604,3 @@ class simpleTabs_noSpecial extends simpleTabs
 {
   protected $specialTabs = FALSE;
 }
-?>
diff --git a/include/simpleplugin/interface_SimpleTab.inc b/include/simpleplugin/interface_SimpleTab.inc
new file mode 100644
index 0000000000000000000000000000000000000000..456636f0d7f51db4f26fb038aa507402d7a04868
--- /dev/null
+++ b/include/simpleplugin/interface_SimpleTab.inc
@@ -0,0 +1,168 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2018-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \file interface_SimpleTab.inc
+ * Source code for the interface SimpleTab
+ */
+
+/*! \brief This interface is implemented by classes intended to be used as tabs, mainly simplePlugin itself.
+ */
+
+/**
+ * @property bool $is_account
+ * @property string $dn
+ * @property bool $is_template
+ * @property string $_template_cn (only for main tab of templates)
+ * @property array $attributesAccess (only for main tab of templates)
+ * @property simpleTabs $parent
+ */
+interface SimpleTab extends FusionDirectoryDialog
+{
+  /*
+   * Public methods needed in some cases:
+   * compute_dn (): string (only for main tab)
+   * move (string $src_dn, string $dst_dn): TRUE|string (only for main tab)
+   * getAclBase (): string (only for main tab)
+   */
+
+  public static function plInfo (): array;
+
+  /*! \brief Checks data and return errors
+   */
+  public function check (): array;
+
+  /*! \brief Delete tab data from LDAP and return errors
+   */
+  public function remove (bool $fulldelete = FALSE): array;
+
+  /*! \brief Save data to the LDAP and return errors
+   */
+  public function save (): array;
+
+  /*! \brief Reset information after a copy/paste
+   */
+  public function resetCopyInfos ();
+
+  /*! \brief Sets ACL category provided by simpleTabs
+   */
+  public function set_acl_category (string $category);
+
+  /*!
+   * \brief Can we delete the object
+   *
+   * Only used on main tab
+   *
+   * \param string $base
+   */
+  public function acl_is_removeable (string $base = NULL): bool;
+
+  /*!
+   * \brief Sets whether the opened objet is a template
+   *
+   * \param bool $isTemplate
+   */
+  public function setTemplate (bool $isTemplate);
+
+  /*!
+   * \brief Sets whether the opened objet has an edit button
+   *
+   * \param bool $needEditMode
+   */
+  public function setNeedEditMode (bool $needEditMode);
+
+  /*!
+   * \brief Is there a modal dialog opened
+   */
+  public function is_modal_dialog (): bool;
+
+  /*!
+   * \brief Returns list of required LDAP attributes
+   *
+   * Used by template
+   */
+  public function getRequiredAttributes (): array;
+
+  /*!
+   * \brief Returns TRUE if this attribute should be asked in the creation by template dialog
+   */
+  public function showInTemplate (string $attr, array $templateAttrs): bool;
+
+  /*! \brief Check if logged in user have enough right to read this attribute value
+   *
+   * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
+   */
+  public function attrIsReadable ($attr): bool;
+
+  /*! \brief Check if logged in user have enough right to write this attribute value
+   *
+   * \param mixed $attr Attribute object or name (in this case it will be fetched from attributesAccess)
+   */
+  public function attrIsWriteable ($attr): bool;
+
+  /*!
+   * \brief Adapt from template
+   */
+  public function adapt_from_template (array $attrs, array $skip = []);
+
+  /*!
+   * \brief Deserialize values
+   *
+   * Returns TRUE or error
+   */
+  public function deserializeValues (array $values, bool $checkAcl = TRUE);
+
+  /*!
+   * \brief Test if the plugins have ACLs declared
+   *
+   * If FALSE tab is always shown, if TRUE aclGetPermissions('') is called
+   */
+  public function aclHasPermissions (): bool;
+
+  /*!
+   * \brief Get the acl permissions for an attribute or the plugin itself
+   */
+  public function aclGetPermissions ($attribute = '0', string $base = NULL, bool $skipWrite = FALSE): string;
+
+  /*!
+   * \brief Merge in objectClasses needed by this tab
+   *
+   *  Used by prepare_save and template::apply
+   */
+  public function mergeObjectClasses (array $oc): array;
+
+  /*!
+   * \brief Fill attributes which may be used in hooks
+   *
+   *  Used by simplePlugin::callHook
+   */
+  public function fillHookAttrs (array &$addAttrs);
+
+  /*!
+   * \brief Test whether a tab is active
+   */
+  public function isActive (): bool;
+
+  /*!
+   * \brief Test whether a tab can be deactivated
+   */
+  public function isActivatable (): bool;
+}
diff --git a/include/simpleplugin/simple-filter.xml b/include/simpleplugin/simple-filter.xml
deleted file mode 100644
index 9d7a49a1757463c4099d6a76d56578cfb4f65522..0000000000000000000000000000000000000000
--- a/include/simpleplugin/simple-filter.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<filterdef>
-  <definition>
-    <category>noneyet</category>
-    <template>simple-filter.tpl</template>
-    <initial>true</initial>
-  </definition>
-
-  <search>
-    <query>
-      <backend>LDAP</backend>
-      <filter>FILTER</filter>
-      <attribute>dn</attribute>
-      <attribute>cn</attribute>
-    </query>
-    <scope>auto</scope>
-  </search>
-
-  <element>
-    <type>textfield</type>
-    <tag>NAME</tag>
-    <size>20</size>
-    <default></default>
-    <unset></unset>
-    <set>FILTER</set>
-    <alphabet>true</alphabet>
-    <autocomplete>
-      <backend>LDAP</backend>
-      <filter>FILTER</filter>
-      <attribute>cn</attribute>
-      <attribute>description</attribute>
-      <frequency>0.5</frequency>
-      <characters>3</characters>
-    </autocomplete>
-  </element>
-</filterdef>
diff --git a/include/simpleplugin/simple-list.xml b/include/simpleplugin/simple-list.xml
deleted file mode 100644
index 84c2fb784a68eb6b17103e38d0ab5caaf7dd01ed..0000000000000000000000000000000000000000
--- a/include/simpleplugin/simple-list.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<list>
-  <definition>
-    <departmentBrowser>true</departmentBrowser>
-    <departmentRootVisible>true</departmentRootVisible>
-    <baseMode>true</baseMode>
-    <multiSelect>true</multiSelect>
-    <template>simple-list.tpl</template>
-    <module>simple</module>
-    <label>NO LABEL</label>
-    <defaultSortColumn>1</defaultSortColumn>
-  </definition>
-
-  <table>
-    <layout>|20px;c|||150px;r|</layout>
-
-    <department>
-      <value>%{filter:departmentType(row,dn)}</value>
-    </department>
-
-    <department>
-      <value>%{filter:departmentLink(row,dn,description)}</value>
-      <span>3</span>
-    </department>
-
-    <column>
-      <value>%{filter:objectType(row,dn)}</value>
-    </column>
-
-    <column>
-      <label>Name</label>
-      <sortAttribute>cn</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:nameLink(row,dn)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Description</label>
-      <sortAttribute>description</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:link(row,dn,"%s",description)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Actions</label>
-      <value>%{filter:actions(dn,row,objectClass)}</value>
-    </column>
-
-  </table>
-
-  <actionmenu>
-
-    <action>
-      <type>sub</type>
-      <image>geticon.php?context=actions&amp;icon=document-new&amp;size=16</image>
-      <label>Create</label>
-      <acl>[c]</acl>
-    </action>
-
-    <action>
-      <name>edit</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=document-edit&amp;size=16</image>
-      <label>Edit</label>
-      <acl>[r]</acl>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <label>Remove</label>
-      <acl>[d]</acl>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>exporter</type>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>copypaste</type>
-    </action>
-
-    <action>
-      <type>snapshot</type>
-    </action>
-
-  </actionmenu>
-
-  <actiontriggers snapshot="true" copypaste="true">
-
-    <action>
-      <name>cp</name>
-      <type>copypaste</type>
-    </action>
-
-    <action>
-      <name>edit</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=document-edit&amp;size=16</image>
-      <label>Edit</label>
-    </action>
-
-    <action>
-      <name>snapshot</name>
-      <type>snapshot</type>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <acl>%acl[d]</acl>
-      <label>Remove</label>
-    </action>
-
-  </actiontriggers>
-
-</list>
diff --git a/include/simpleplugin/simple-select-list.xml b/include/simpleplugin/simple-select-list.xml
deleted file mode 100644
index 788cd2103af553fafd444ce387a69cbf968b87af..0000000000000000000000000000000000000000
--- a/include/simpleplugin/simple-select-list.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<list>
-  <definition>
-    <departmentBrowser>true</departmentBrowser>
-    <departmentRootVisible>true</departmentRootVisible>
-    <baseMode>true</baseMode>
-    <multiSelect>true</multiSelect>
-    <template>simple-select-list.tpl</template>
-    <module>simple</module>
-    <label>Please select the desired entries</label>
-    <defaultSortColumn>1</defaultSortColumn>
-  </definition>
-
-  <table>
-    <layout>|20px;c|||</layout>
-
-    <department>
-      <value>%{filter:departmentType(row,dn)}</value>
-    </department>
-
-    <department>
-      <value>%{filter:departmentLink(row,dn,description)}</value>
-      <span>2</span>
-    </department>
-
-    <column>
-      <value>%{filter:objectType(row,dn)}</value>
-    </column>
-
-    <column>
-      <label>Name</label>
-      <sortAttribute>cn</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:selectLink(pid,row,dn,cn)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Description</label>
-      <sortAttribute>description</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:selectLink(pid,row,dn,description)}</value>
-      <export>true</export>
-    </column>
-  </table>
-
-  <actionmenu>
-  </actionmenu>
-
-  <actiontriggers snapshot="false" copypaste="false">
-  </actiontriggers>
-
-</list>
diff --git a/include/variables.inc b/include/variables.inc
index c7ea9b72a19404acd332359bb937fafa422b203a..0240aa59d2785fb933da9bee2037a55cad46f0e3 100644
--- a/include/variables.inc
+++ b/include/variables.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -22,7 +22,7 @@
 /*!
  * \file variables.inc
  * Define common locations and variables
- * Generated by fusiondirectory-setup
+ * Generated by fusiondirectory-configuration-manager
  */
 
 require_once('variables_common.inc');
@@ -83,5 +83,3 @@ define("SUPANN_DIR", "/etc/fusiondirectory/supann/"); /* FusionDirectory supann
  * \brief name of the class.cache file
  */
 define("CLASS_CACHE", "class.cache"); /* name of the class cache */
-
-?>
diff --git a/include/variables_common.inc b/include/variables_common.inc
index 06378dd609b7712de454eec4ad2c2b0d48623b2a..7804db1f93e45b006e6a67e56d93aa437778ecdd 100644
--- a/include/variables_common.inc
+++ b/include/variables_common.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003-2010  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2017  FusionDirectory
 
   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
@@ -63,7 +63,7 @@ define("FPDF_FONTPATH", "/usr/share/php/fpdf/font/"); /*! Define fpdf font path
 /*!
  * \brief FusionDirectory Version
  */
-define("FD_VERSION", "1.3.1"); /*! Define FusionDirectory version */
+define("FD_VERSION", "1.4"); /*! Define FusionDirectory version */
 
 /*!
  * \brief FusionDirectory config object RDN
@@ -80,4 +80,23 @@ define('PHP_MIN_VERSION', '7.3.0');
  */
 define('PHP_ERROR_FATAL', 'FALSE');
 
-?>
+/* Define constants for debugging */
+define('DEBUG_TRACE',    1); /*! Debug level for tracing of common actions (save, check, etc.) */
+define('DEBUG_LDAP',     2); /*! Debug level for LDAP queries */
+define('DEBUG_DB',       4); /*! Debug level for database operations */
+define('DEBUG_SHELL',    8); /*! Debug level for shell commands */
+define('DEBUG_POST',     16); /*! Debug level for POST content */
+define('DEBUG_SESSION',  32); /*! Debug level for SESSION content */
+define('DEBUG_CONFIG',   64); /*! Debug level for CONFIG information */
+define('DEBUG_ACL',      128); /*! Debug level for ACL infos */
+define('DEBUG_SI',       256); /*! Debug level for communication with Argonaut */
+define('DEBUG_MAIL',     512); /*! Debug level for all about mail (mailAccounts, imap, sieve etc.) */
+define('DEBUG_FAI',      1024); /* FAI (incomplete) */
+
+/* Define constants for LDAP operations */
+define('LDAP_READ',   1);
+define('LDAP_ADD',    2);
+define('LDAP_MOD',    3);
+define('LDAP_DEL',    4);
+define('LDAP_SEARCH', 5);
+define('LDAP_AUTH',   6);
diff --git a/locale/af_ZA/fusiondirectory.po b/locale/af_ZA/fusiondirectory.po
index 664de7f7d71aca6070dd10c66194a2165bb9d8aa..1a8569ed88fd7fa7d06ebfc77b56790e35508442 100644
--- a/locale/af_ZA/fusiondirectory.po
+++ b/locale/af_ZA/fusiondirectory.po
@@ -8,327 +8,606 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Language-Team: Afrikaans (South Africa) (https://www.transifex.com/fusiondirectory/teams/12202/af_ZA/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Language-Team: Afrikaans (South Africa) (https://app.transifex.com/fusiondirectory/teams/12202/af_ZA/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: af_ZA\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -336,1534 +615,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr ""
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
+
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot connect to %s database!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:245
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot select %s database!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr ""
-
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:457
-#, php-format
-msgid "'%s' are not allowed!"
-msgstr ""
-
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1872,127 +1970,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr ""
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2001,265 +2114,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2277,8 +2355,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2294,391 +2372,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2686,103 +2826,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2794,31 +2936,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2827,699 +2969,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3527,36 +3759,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3564,16 +3923,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3581,273 +3962,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3919,10 +4349,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3945,46 +4371,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4000,387 +4426,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4395,21 +4853,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4428,217 +4886,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4655,24 +4948,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4682,7 +4963,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4732,8 +5013,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4744,7 +5025,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4752,7 +5033,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4798,10 +5079,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4823,7 +5106,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4867,12 +5150,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4932,7 +5215,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5041,14 +5329,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5059,6 +5359,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5068,28 +5421,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5106,6 +5457,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5124,6 +5480,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5131,20 +5491,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/ar/fusiondirectory.po b/locale/ar/fusiondirectory.po
index cf3d0725ccd0d5641373c7280224d8fb9322ff8b..1159fba0cd516269db6153c8b2a9238153bdb58a 100644
--- a/locale/ar/fusiondirectory.po
+++ b/locale/ar/fusiondirectory.po
@@ -4,335 +4,614 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2017
+# fusiondirectory <contact@fusiondirectory.org>, 2018
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2017\n"
-"Language-Team: Arabic (https://www.transifex.com/fusiondirectory/teams/12202/ar/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Language-Team: Arabic (https://app.transifex.com/fusiondirectory/teams/12202/ar/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ar\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "خطأ"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "النوع"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "الوصف"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "إزالة"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "النوع"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -340,1534 +619,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "خطأ داخلي"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
+msgstr ""
+
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "تحذير"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "الرجوع"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "الإسم"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "الوصف"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "إزالة"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "تحذير"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "القسم"
-
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1876,127 +1974,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "القسم"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "الخواص"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "البلد"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "العنوان"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "الهاتف"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "الفاكس"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "الإسم"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "مجموعة"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "الإسم العائلي"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "الإسم الأول"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "الهاتف المحمول"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "رقم المنزل"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "الرقم البريدي"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "خطأ"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4659,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4690,7 +4971,7 @@ msgstr[4] ""
 msgstr[5] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4756,8 +5037,8 @@ msgstr[4] ""
 msgstr[5] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4776,7 +5057,7 @@ msgstr[4] ""
 msgstr[5] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4784,7 +5065,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4834,10 +5115,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4859,7 +5142,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4903,12 +5186,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4968,7 +5251,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5077,14 +5365,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5095,6 +5395,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5104,28 +5457,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5142,6 +5493,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5160,6 +5516,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5167,20 +5527,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/ca/fusiondirectory.po b/locale/ca/fusiondirectory.po
index 2ad81a4d3e746b7370b2bb6ea7d2ada9ae0f7109..0ec92c5e76ddf9aaaf30b8623069e1187d92aab9 100644
--- a/locale/ca/fusiondirectory.po
+++ b/locale/ca/fusiondirectory.po
@@ -4,335 +4,614 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2016
+# fusiondirectory <contact@fusiondirectory.org>, 2018
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2016\n"
-"Language-Team: Catalan (https://www.transifex.com/fusiondirectory/teams/12202/ca/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Language-Team: Catalan (https://app.transifex.com/fusiondirectory/teams/12202/ca/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ca\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Error de la configuració"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Error d'LDAP"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objecte"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Marca de temps"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
-msgstr "El meu compte"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
+msgstr "El meu compte"
+
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:99
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -340,657 +619,571 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr "Nom de la plantilla"
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr ""
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Entra"
+
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:56
 #, php-format
-msgid "Searches in %s"
+msgid ""
+"LDAP schema error:\n"
+"%s"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Especifiqueu un nom d'usuari vàlid."
+
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Especifiqueu la vostra contrasenya."
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "El compte és blocat. Contacteu el vostre administrador de sistemes."
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Error d'LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "The size limit of %d entries is exceed!"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Error fatal"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Error d'autenticació."
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
+"La configuració %s/%s del FusionDirectori no és llegible. S'està avortant."
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Avís"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Entrada"
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Canceŀla-ho tot"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr ""
-
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr ""
-
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Canceŀla"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "D'acord"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Aplica"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Desa"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Edita…"
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Edita %s…"
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Enrere"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Aquest compte no té extensions de %s vàlides!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -999,877 +1192,783 @@ msgstr ""
 "Aquest compte té paràmetres de %s habilitats. Podeu inhabilitar-los fent "
 "clic a sota."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "gener"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "febrer"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "març"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "abril"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "maig"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "juny"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "juliol"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "agost"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "setembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "octubre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "novembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "desembre"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "diumenge"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "dilluns"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "dimarts"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "dimecres"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "dijous"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "divendres"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "dissabte"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objecte"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
+msgstr "Base"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
 #, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nom"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
-msgstr "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Grup de l'usuari"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Avís"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Marca de temps"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Departament"
-
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1878,127 +1977,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organització"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Departament"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Departaments"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Categoria"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Responsable"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Localització"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Província"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Estat"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adreça"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telèfon"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nom"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2007,265 +2121,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Localitat"
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2283,8 +2362,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Número de telèfon"
 
@@ -2300,391 +2379,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2692,103 +2833,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2800,31 +2943,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2833,699 +2976,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Paràmetres de la contrasenya"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Entrada"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3533,36 +3766,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3570,16 +3930,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Mètode de contrasenya"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3587,273 +3969,322 @@ msgstr ""
 msgid "Password"
 msgstr "Contrasenya"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Informació personal"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Cognoms"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Nom"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Núm de sala"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Número de sala"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Mòbil"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Buscapersones"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Pàgina principal"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Llengua preferida"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Adreça postal personal"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Telèfon privat"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Número de telèfon personal"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Núm de department"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Número de departament"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Núm d'empleat"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Número d'empleat"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Categoria professional"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Contrasenya nova"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "La contrasenya nova i l'actual són massa similars."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3925,10 +4356,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3951,46 +4378,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4006,387 +4433,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Error"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4401,21 +4860,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4434,220 +4893,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-"La configuració %s/%s del FusionDirectori no és llegible. S'està avortant."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Configuració del PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Canvi de contrasenya"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "S'està exhaurint la memòria!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "S'han inhabilitat les comprovacions de les ACL dels usuaris"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Connector"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Entra"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "La vostra sessió del FusionDirectori ha caducat!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Especifiqueu un nom d'usuari vàlid."
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Especifiqueu la vostra contrasenya."
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "El compte és blocat. Contacteu el vostre administrador de sistemes."
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"El vostre navegador té les galetes inhabilitades. Habiliteu les galetes i "
-"torneu a carregar aquesta pàgina abans d'entrar."
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4664,24 +4955,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4691,7 +4970,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4741,8 +5020,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4753,7 +5032,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4761,7 +5040,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4807,10 +5086,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4832,7 +5113,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4876,12 +5157,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4941,7 +5222,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5050,14 +5336,28 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"El vostre navegador té les galetes inhabilitades. Habiliteu les galetes i "
+"torneu a carregar aquesta pàgina abans d'entrar."
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Feu clic ací per entrar"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5068,6 +5368,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5077,28 +5430,26 @@ msgstr ""
 msgid "Continue"
 msgstr "Continua"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Només lectura"
 
@@ -5115,6 +5466,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Principal"
@@ -5133,6 +5489,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5140,20 +5500,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/cs_CZ/fusiondirectory.po b/locale/cs_CZ/fusiondirectory.po
index 9be96c445c5f9d05a7e2f6a30496c44f4a3392da..365c766b6ead84dcd6949d9c17d9fbb36f9bee7a 100644
--- a/locale/cs_CZ/fusiondirectory.po
+++ b/locale/cs_CZ/fusiondirectory.po
@@ -4,107 +4,485 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# Pavel Borecki <pavel.borecki@gmail.com>, 2019
-# fusiondirectory <contact@fusiondirectory.org>, 2021
+# fusiondirectory <contact@fusiondirectory.org>, 2023
+# Pavel Borecki <pavel.borecki@gmail.com>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Czech (Czech Republic) (https://www.transifex.com/fusiondirectory/teams/12202/cs_CZ/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2023\n"
+"Language-Team: Czech (Czech Republic) (https://app.transifex.com/fusiondirectory/teams/12202/cs_CZ/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: cs_CZ\n"
 "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Chyba"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Opravte prosím výše zmíněnou chybu a znovunačtěte stránku."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr "Nastavení správy"
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr "Sloupce"
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr "Sloupce zobrazené pro tento správní seznam"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Typ"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr "Typ sloupce"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr "Atribut"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "jmenovka"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr "Nadpis sloupce"
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr "Rozlišený název"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Datum"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Popis"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "r-m-d, h:m:v"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Obnovit"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr "Zachycený stav"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr "Obsluha zachyceného stavu"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr "Obnovit přes existující objekt"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr "Obnovit smazaný objekt"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Došlo k problému s rozbalováním dat zachyceného stavu"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr "Nepodařilo se získat data zachyceného stavu"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr "Obnovení zachycených stavů"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objekt"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr "DN objektu, ze kterého pořizujete zachycený stav"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Zachycené stavy"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr "Zachycené stavy, které jsou pro tento objekt k dispozici"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr "Pořizuje se zachycený stavu objektu"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Časová značka"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr "Kdy byl tento zachycený stav pořízen"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr "Důvod"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr "Důvod pořízení tohoto zachyceného stavu"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr "Hledá v %s"
 
-#: include/class_config.inc:151
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr "Pevné"
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "vyberte prosím požadované položky"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "%s šablona"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr "Panely"
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Å ablona"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Ze šablony"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Vytvořit"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "exportovat seznam"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Upravit"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "vyjmout"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Zkopírovat"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Vložit"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "aplikovat šablonu"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Odebrat"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Pořídit zachycený stav"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "obnovit ze snímku"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Nejste oprávněn(a) vytvořit snímek %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Nejste oprávněn(a) obnovit ze snímku %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr "Nemáte oprávnění pro smazání zachyceného stavu pro %s."
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "přejít do kořene všech oddělení"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "kořen"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "přejít o jedno oddělení výše"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "nahoru"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Přejít do uživatelova oddělení"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "domovské"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "znovunačtení seznamu"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr "Znovu načíst"
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr "Nastavit tento správní seznam"
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Nastavit"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Chybné XML ve fusiondirectory.conf: %s na řádku %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Chyba v nastavení"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
-"Zdá se, že se snažíte dekódovat něco, co není zakódované: %s<br/>\n"
-"Ověřte, že nepoužíváte soubor fusiondirectory.secrets když jsou hesla nešifrovaná."
-
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Chyba LDAP"
 
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr "Nedaří se přihlášení do LDAPu. Kontaktujte prosím správce systémů."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr "Umístění „%s“ se v souboru s nastaveními nepodařilo najít"
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
@@ -113,7 +491,7 @@ msgstr ""
 "Funkce pořizování zachyceného stavu je zapnutá, ale potřebná proměnná „%s“ "
 "není nastavena."
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
@@ -122,36 +500,65 @@ msgstr ""
 "Funkce pořizování zachycených stavů je zapnutá, ale potřebný komprimační "
 "modul chybí. Nainstalujte „%s“."
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Všechny kategorie"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Můj účet"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Stránka"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 "Není možné exportovat do formátu PDF: není nainstalována potřebná knihovna."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "kdo vytvořil"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Soubor"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "linka"
 
@@ -175,470 +582,385 @@ msgstr "neměnné"
 msgid "method"
 msgstr "metoda"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "stopa"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Typ"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argumenty"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Během vytváření této stránky ohlásil interpret PHP několik chyb!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "zaslat hlášení o chybě vývojářům FusionDirectory"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "zaslat hlášení o chybě"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "přepnout informace"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "nahoru"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "dolů"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Seřadit vzestupně"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Seřadit sestupně"
-
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Vybrat vše"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "kdo vytvořil"
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "přejít do kořene všech oddělení"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "kořen"
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "přejít o jedno oddělení výše"
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr "Přejít do uživatelova oddělení"
-
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "domovské"
-
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "znovunačtení seznamu"
-
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Akce"
-
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Zkopírovat"
-
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "vyjmout"
-
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Vložit"
-
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "vyjmout tuto položku"
-
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "kopírovat tuto položku"
-
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "obnovit ze snímků"
-
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "exportovat seznam"
-
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "obnovit ze snímku"
-
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Pořídit zachycený stav"
-
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "vytvořit nový snímek tohoto objektu"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
 
 #: include/class_timezone.inc:52
 #, php-format
 msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr "Nastavení časové zóny %s ve vašem nastavení není platné."
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
-msgstr "Zachycený stav"
-
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
-msgstr "Obsluha zachyceného stavu"
-
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
-msgstr "Obnovit přes existující objekt"
-
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
-msgstr "Obnovit smazaný objekt"
-
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
-msgstr "Došlo k problému s rozbalováním dat zachyceného stavu"
-
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr "Nepodařilo se získat data zachyceného stavu"
-
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Å ablona"
-
 #: include/class_template.inc:44
 msgid "Object template, used to create several objects with similar values"
 msgstr ""
 "Šablona objektu, slouží k vytvoření vícero objektů s podobnými hodnotami"
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr "Název šablony"
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Vnitřní chyba"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr "přihlášení selhalo: %s"
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr "Zadána neplatná volba „%s“!"
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 "Jako objectType (typ objektu) buď nebylo zadáno nic, nebo nesprávná hodnota."
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
-msgstr "Heslo nelze změnit, neznámý uživatel „%s“"
-
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
-"Aby bylo možné používat SASL, je třeba vyplnit kolonky saslRealm nebo "
-"saslExop na obrazovce s nastaveními"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Odeslat"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "Ústřední ověřovací služba (CAS)"
+
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr "Přihlášení účtem uživatele „%s“ vyvolalo chybu: %s"
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Použít filtr"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "hledat v podstromech"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Přihlásit"
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
-msgstr "Hledá v %s"
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Limit velikosti položek %d je překročen!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+"Varování: Délka platnosti sezení nastavená ve fusiondirectory.conf bude "
+"přebita nastaveními z php.ini."
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr "Chyby nahlášené při kontrole LDAP schématu:"
+
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
-"nastavit novou hodnotu limitu %s a v případě, že ani to nebude stačit, "
-"zobrazit toto hlášení znovu"
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Nastavit"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Zadejte prosím platné uživatelské jméno!"
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "neúplné"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Zadejte prosím své heslo!"
 
-#: include/functions.inc:97
-#, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Účet je uzamčen. Prosím kontaktujte svého správce systémů."
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "chyba LDAPu"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
-"fatální chyba: není určeno umístění třídy – pro nápravu prosím spusťe '%s'"
 
-#: include/functions.inc:116
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr "Fatální chyba!"
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
+msgstr "V HTTP hlavičce „%s“ nebyla nalezena žádná hodnota"
+
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
-"fatální chyba: nelze vytvořit instanci třídy '%s' – pokuste se to napravit "
-"spuštěním '%s' --update-cache (na serveru) a restartujte svůj webový "
-"prohlížeč"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Fatální chyba"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "E-mailová adresa"
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Obnova zapomenutého hesla"
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr "FATÁLNÍ: chyba při připojování do LDAPu. Server ohlásil '%s'."
+msgid "Did not find an account with login \"%s\""
+msgstr "Účet s uživatelským jménem %s nebyl nalezen"
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Bylo nalezeno hned několik účtů s uživatelským jménem %s"
+
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr "Žádný z účtů nepoužívá e-mail „%s“"
+
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
+msgstr "Je zde několik účtů které používají e-mail „%s“"
+
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
-"Přihlašovací údaj (uid) není v rámci LDAP stromu jedinečný! Kontaktujte "
-"svého správce systémů."
+"Uživatel používající e-mail „%s“ je uzamčen. Obraťte se na svého správce."
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "chyba ověření"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "tato poukázka (token) je neplatná"
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
-"Zdá se, že platnost vašeho hesla skončila. Změňte jej pomocí funkce <a "
-"href=\"recovery.php\">obnovení hesla</a>."
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/password-methods/class_passwordMethodSasl.inc:66
+#, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr "Heslo nelze změnit, neznámý uživatel „%s“"
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
+msgid ""
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
-"Nastala chyba při pokusu o přidání zámku. Nahlaste to prosím vývojářům!"
+"Aby bylo možné používat SASL, je třeba vyplnit kolonky saslRealm nebo "
+"saslExop na obrazovce s nastaveními"
+
+#: include/class_standAlonePage.inc:127
+#, php-format
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "Nastavení %s/%s FusionDirectory není čitelné. Akce byla zrušena."
+
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr "Složka %s, zadaná jako kompilační, není přístupná!"
+
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "neúplné"
 
-#: include/functions.inc:594
+#: include/class_ldapSizeLimit.inc:152
 #, php-format
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
-"Nemohu vytvořit informaci o zamykání ve stromu LDAPu. Kontaktujte prosím "
-"svého správce systémů!"
 
-#: include/functions.inc:594
+#: include/functions.inc:55
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "LDAP server odpověděl: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Varování"
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"fatální chyba: není určeno umístění třídy – pro nápravu prosím spusťe '%s'"
 
-#: include/functions.inc:783
+#: include/functions.inc:78
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
-"Při pokusu o vyhrazení přístupu k objektu bylo nalezeno několik již "
-"existujících zámků. To by se nemělo stávat – probíhá jejich odstraňování."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Pokračovat i tak"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Upravit i tak"
+"fatální chyba: nelze vytvořit instanci třídy '%s' – pokuste se to napravit "
+"spuštěním '%s' --update-cache (na serveru) a restartujte svůj webový "
+"prohlížeč"
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "chystáte se upravit položky LDAPu %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
+msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
+msgstr ""
+
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
-"Soubor %s nebylo možné smazat. Zkuste opravit přístupová práva spuštěním "
-"příkazu fusiondirectory-setup --check-directories"
 
-#: include/functions.inc:1722
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Nelze zapsat do souboru s revizemi!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
-msgstr "Nedaří se číst soubor s revizí!"
-
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "varování LDAPu"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
+msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Nedaří se získat informace o schématech ze serveru. Schémata proto nelze "
 "ověřit!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr "Hlavní FusionDirectory schéma"
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr "Schéma použité pro uložení nastavení FusionDirectory"
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 "Použito pro ukládání informace o režimu důvěry v uživatele nebo skupiny."
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr "Použito pro ukládání šablon."
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr "Použito pro ukládání POSIX informací."
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr "Chybějící vyžadovaná třída objektu „%s“!"
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr "Chybějící volitelná třída objektu „%s“!"
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "dostupné třídy"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
@@ -646,7 +968,7 @@ msgstr ""
 "Zásuvný modul smíšených skupin je nainstalován, ale vaše nastavení schématu "
 "ho nepodporuje."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
@@ -654,7 +976,7 @@ msgstr ""
 "Aby bylo možné použít smíšené skupiny v objectClass posixGroup, je třeba aby"
 " byly POMOCNÉ"
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
@@ -662,375 +984,231 @@ msgstr ""
 "Stávající schéma je nastaveno pro smíšené skupiny, ale není přítomen "
 "příslušný zásuvný modul."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr "Je třeba, aby ObjectClass posixGroup bylo STRUKTURÁLNÍ"
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Nemohu nalézt soubor '%s' – opravte to prosím spuštěním '%s' (na serveru)."
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Všechny objekty v této kategorii"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "uživatelské jméno"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Oprávnění"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Zrušit vše"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Nelze vložit"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Vyberte pro vypsání objektů typu '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Vyberte pro vypsání objektů obsahujících '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Vyberte pro vypsání objektů, které mají zapnuto '%s'."
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "zvolte pro vyhledávání i v podstromech"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Tento objekt bude smazán!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Tento „%s“ objekt bude smazán!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Tento objekt bude smazán: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Tento '%s' objekt bude smazán: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Tento objekt bude smazán:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Tento „%s“ objekt bude smazán:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Tyto objekty budou smazány: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Těchto „%s“ objektů bude smazáno: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Nejste oprávněn(a) ke smazání tohoto objektu!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Nejste oprávněn(a) ke smazání objektu:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Nejste oprávněn(a) ke smazání těchto objektů!"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Nejste oprávněn(a) k vytvoření tohoto objektu!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Nejste oprávněni k vytvoření objektu:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Nejste oprávněni k vytvoření těchto objektů:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Nejste oprávněn(a) k úpravám tohoto objektu!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr "Nemáte oprávnění upravovat kolonku „%s“ objektu „%s“"
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
-msgstr "Nemáte oprávnění upravovat objekt:<br/>%s"
+msgid "You have no permission to modify the object:%s"
+msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
-msgstr "Nemáte oprávnění upravovat tyto objekty:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
+msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Nejste oprávněn(a) k zobrazení tohoto objektu!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Nejste oprávněn(a) k zobrazení objektu:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Nejste oprávněn(a) k zobrazení těchto objektů:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Nejste oprávněn(a) k přesunutí tohoto objektu!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Nejste oprávněn(a) k přesunutí tohoto objektu!"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Nejste oprávněn(a) k přesunutí těchto objektů:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Informace o spojení"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Nelze se připojit k databázi %s!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Nelze vybrat databázi %s!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "není určen server %s!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Nedaří se dotazovat do databáze %s!"
-
-#: include/class_msgPool.inc:285
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "The field '%s' contains a reserved keyword!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
-"Pole '%s' obsahuje vyhrazené klíčové slovo (použijte prosím něco jiného)!"
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "Příkaz určený jako háček %s pro zásuvný modul '%s' neexistuje!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "Příkaz „%s“ není platný!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "'%s' příkaz pro zásuvný modul %s není správný!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "'%s' příkaz (%s) není správný!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "'%s' příkaz (%s) pro zásuvný modul %s není správný!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Nedaří se spustit příkaz '%s'!"
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Nedaří se spustit příkaz '%s' pro zásuvný modul %s!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "Nedaří se spustit příkaz '%s' (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Nedaří se spustit příkaz '%s' (%s) pro zásuvný modul %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "Hodnota '%s' je příliš vysoká!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "Je třeba, aby „%s“ bylo menší, než %s!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "Hodnota „%s“ je příliš nízká!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "Je třeba, aby „%s“ bylo %d a více!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s' závisí na '%s' – zadejte prosím obě hodnoty!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "V systému již existuje položka s atributem '%s'!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
-msgstr "Položka %s již používá tento %s atribut!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
+msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Pole '%s' nemůže být prázdné!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "Příklad:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
+msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
-msgstr "Políčko %s obsahuje neplatné znaky"
+msgid "The required field \"%s\" is empty!"
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' není dovoleno:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s' nejsou dovolené!"
+msgid "Example: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "Chybějící rozšíření PHP %s!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Zrušit"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "v pořádku"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "použít"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Uložit"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Přidat"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Přidat %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Smazat"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Smazat %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Upravit…"
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Upravit %s…"
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Zpět"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Tento účet nemá platná rozšíření %s!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1038,7 +1216,7 @@ msgid ""
 msgstr ""
 "Tento účet má povolena nastavení %s. Zakázat je můžete kliknutím níže."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1047,7 +1225,7 @@ msgstr ""
 "Tento účet má vytvořena nastavení pro %s. Pokud je chcete odebrat, musíte "
 "ale nejprve odebrat nastavení pro %s!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1056,7 +1234,7 @@ msgstr ""
 "Tento účet má deaktivována nastavení pro %s. Zapnout je můžete kliknutím "
 "níže."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1065,7 +1243,7 @@ msgstr ""
 "Tento účet má deaktivována nastavení pro %s. Zapnout je ale můžete teprve "
 "poté, co přidáte nastavení pro %s!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
@@ -1074,241 +1252,191 @@ msgstr ""
 "Tento účet má %s nastavení vypnutá. Pro jejich zapnutí je nejprve třeba "
 "vypnout nastavení %s!"
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "přidat nastavení pro %s"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "odebrat nastavení pro %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "leden"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "únor"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "březen"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "duben"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "květen"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "červen"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "červenec"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "srpen"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "září"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "říjen"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "listopad"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "prosinec"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "neděle"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "pondělí"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "úterý"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "středa"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "čtvrtek"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "pátek"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "sobota"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "operace čtení"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "operace přidání"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "operace upravování"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "operace smazání"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "operace hledání"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "ověření"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "LDAP %s selhalo!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "Operace v LDAPu selhala!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objekt"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Nahrání se nezdařilo!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Nahrání se nezdařilo: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Selhání komunikace se službou infrastruktury!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Selhání komunikace se službou infrastruktury: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "toto '%s' je stále používáno objektem: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "Toto '%s' je stále používáno."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "toto '%s' je stále používáno následujícími objekty: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Soubor '%s' neexistuje!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Soubor '%s' nelze číst!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Do souboru '%s' nelze zapisovat!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"Hodnota '%s' v tuto chvíli buď není nastavena, nebo je neplatná – "
-"překontrolujte prosím Váš soubor s nastaveními!"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Soubor '%s' nelze smazat!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Složku '%s' nelze vytvořit!"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Složku '%s' nelze smazat!"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "kontroluji, zda je podporováno: %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Nainstalovat a aktivovat modul PHP %s."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Nainstalovat a zapnout Pear modul %s"
-
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
-msgstr ""
-"Nelze připravit třídu '%s'! Možná ve Vaší instalaci FusionDirectory chybí "
-"příslušný zásuvný modul?"
-
-#: include/class_msgPool.inc:856
+#: include/class_msgPool.inc:600
 msgid ""
 "The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 "Nově zadaná hodnota základu není platná a proto je stále používána "
 "předchozí!"
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:149
+#, php-format
+msgid "\"%s\" was not found in attributes"
+msgstr ""
+
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr ""
+
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
@@ -1317,56 +1445,26 @@ msgstr ""
 "Rekurzivní závislost v kolonkách šablony: „%1$s“ nemůže záviset na „%2$s“, "
 "protože „%2$s“ už závisí na „%1$s“"
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Vyberte požadované položky"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Název"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Popis"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr "Získat stav služby"
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Spustit službu"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Zastavit službu"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Restartovat službu"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "základ"
 
@@ -1378,86 +1476,128 @@ msgstr "Základ objektu"
 msgid "Base field value should always be a string"
 msgstr "Hodnota základní kolonky by vždy měla být řetězec"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr "ano"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr "ne"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr "Atribut %s je vypnutý, jeho hodnotu nelze nastavit"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Neznámý typ: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "Neexistující rozlišený název: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "žádné"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Neznámé"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr "Přidat (dialog)"
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
-msgstr "Chyba, nesprávné datum: %s"
+msgid "Incorrect date: %s"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "hodiny"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "minuty"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "Sekund"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Datum"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "ÄŒas"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Nelze přečíst nahraný soubor: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "soubor je prázdný"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "soubor nebyl nenalezen"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "soubor není čitelný"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr "%s (%d bajtů)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr "Atribut %s je vypnutý, jeho hodnotu nelze nastavit"
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Nahrát"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
-msgstr "Stáhnout"
+msgstr "stažení"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
@@ -1465,125 +1605,106 @@ msgstr ""
 "Obrázek uživatele v tuto chvíli není možné uložit, FusionDirectory "
 "potřebuje, aby byl nainstalovaný PHP modul „imagick“!"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "odebrat"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr "Číslo"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Upravit"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Celé kladné číslo z rozmezí %d až %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Celé kladné číslo větší než %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Celé kladné číslo menší než %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Desetinné číslo z rozsahu %f až %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Desetinné číslo větší než %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Desetinné číslo menší než %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
-msgstr "Hodnota pro vícehodnotovou kolonku „%s“ není pole"
+msgid "Invalid: %s"
+msgstr "Neplatné: %s"
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (vyžadováno)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr "SetAttribute „%s“ byl nastaven na nekompatibilní hodnotu"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Neplatná hodnota pro %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Seřadit vzestupně"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "žádné"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Seřadit sestupně"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
-msgstr "Hodnota „%s“ pro kolonku „%s“ není v seznamu možných voleb"
+msgid "\"%s\" is not in the list of possible choices"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr "StringAttribute „%s“ byl nastaven na nekompatibilní hodnotu"
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "Nastavení šablony"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Toto je název šablony"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr "Pouze hlavní panel může vypočítat rozlišený název"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
@@ -1591,50 +1712,53 @@ msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
-"Nedaří se spočítat dn: nedaří se nalézt objectType informace z panelu třídy "
-"%s"
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Položka s takovým rozlišeným názvem již existuje: %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "Položka %s neexistuje"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
-"Po jeho otevření ve FusionDirectory byl objekt změněn. Pokud tuto položku "
-"uložíte, pak veškeré změny, učiněné ostatními, budou ztraceny!"
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr "Služba „%s“"
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Panel „%s“"
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr "Nepodařilo se vytvořit neopakující se rozlišený název"
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr "Neznámá kolonka „%s“"
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
@@ -1643,190 +1767,168 @@ msgstr ""
 "Pro inicializaci „%s“ nebyly nalezeny žádné definice zásuvného modulu, "
 "zkontrolujte svůj soubor s nastaveními."
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr "Nepodařilo se vypočítat rozlišený název pro objekt: %s"
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr "Přesun z „%s“ do „%s“ se nezdařil: %s"
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr "Neplatné: %s"
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "vteřiny"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "minuty"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "hodiny"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "dny"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "přístupová práva (ACL)"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr "POSIX skupina %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "správa seznamů pro řízení přístupu (ACL)"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "ACL role"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr "Skupina %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "skupina uživatelů"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Neznámé"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "Ze šablony"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Neznámá položka „%s“!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "%s šablona"
+msgid "All users"
+msgstr "Všichni uživatelé"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Zobrazit %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "chyba filtru"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"Přihlašovací údaj (uid) není v rámci LDAP stromu jedinečný! Kontaktujte "
+"svého správce systémů."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Tento filtr je neúplný!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Varování"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Chyba oprávnění"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Nejste oprávněn(a) vytvořit snímek %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Nejste oprávněn(a) obnovit ze snímku %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr "Nemáte oprávnění pro smazání zachyceného stavu pro %s."
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "BEZ POPISKU"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "vytvořit"
+msgid "Exit code: %d"
+msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "přístupová práva (ACL)"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "správa seznamů pro řízení přístupu (ACL)"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "ACL role"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
-"Neznámý typ ACL %s!\n"
-"Pro převod acl do nového formátu spusťte fusiondirectory-setup --migrate-acls."
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Neznámá položka „%s“!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
+"Zdá se, že platnost vašeho hesla skončila. Změňte jej pomocí funkce <a "
+"href=\"recovery.php\">obnovení hesla</a>."
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Všichni uživatelé"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Varování ohledně výkonnosti"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr "Výkonnost LDAPu je špatná: poslední dotaz trval celých %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
-msgstr "Nedaří se automaticky vytvořit podstromy s RDN %s: nepodporováno"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr ""
+
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
@@ -1834,114 +1936,95 @@ msgstr ""
 "Podstromy s RDN %s se nedaří automaticky vytvářet: nebyla nalezena žádná "
 "třída objektu!"
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr "Nedaří se automaticky vytvořit podstromy s RDN %s: nepodporováno"
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "při operaci na '%s' na LDAP serveru '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "při operaci na LDAP serveru '%s'"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr "proc_open se nezdařilo vykonat ldapsearch"
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr "Chyba na řádku %s, první řádek položky nemůže začínat mezerou"
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr "Chyba na řádku %s, odkazování na vnější soubory není podporované"
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr "Chyba na řádku %s, atribut „%s“ nemá vyplněnou hodnotu"
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 "Chyba na řádku %s, položka bloc může mít pouze jeden rozlišený název (dn)"
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 "Chyba na řádku %s, položka bloc by měla začínat pouze rozlišeným názvem (dn)"
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 "Chyba při importu rozlišeného názvu (DN): „%s“, zkontrolujte svůj LDIF od "
 "řádku %s dále!"
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr "Pořizuje se zachycený stavu objektu"
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr "DN objektu, ze kterého pořizujete zachycený stav"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Časová značka"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr "Kdy byl tento zachycený stav pořízen"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr "Důvod"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr "Důvod pořízení tohoto zachyceného stavu"
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "r-m-d, h:m:v"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr "Rozlišený název"
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Obnovit"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+"Nastala chyba při pokusu o přidání zámku. Nahlaste to prosím vývojářům!"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr "Obnovení zachycených stavů"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Nemohu vytvořit informaci o zamykání ve stromu LDAPu. Kontaktujte prosím "
+"svého správce systémů!"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Zachycené stavy"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP server odpověděl: %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
-msgstr "Zachycené stavy, které jsou pro tento objekt k dispozici"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Při pokusu o vyhrazení přístupu k objektu bylo nalezeno několik již "
+"existujících zámků. To by se nemělo stávat – probíhá jejich odstraňování."
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Seznam oddělení"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
+msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Oddělení"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Upravit i tak"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Doména"
@@ -1950,127 +2033,142 @@ msgstr "Doména"
 msgid "domain"
 msgstr "doména"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organizace"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "organizace"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Oddělení"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Oddělení"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "oddělení"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Vlastnosti"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Název %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Název pro toto %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Stručný popis tohoto %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Kategorie"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Kategorie tohoto %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr "Webové stránky"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr "Webové stránky tohoto %s"
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Nadřízený"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Nadřízený tohoto %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Umístění"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Stát"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "ZemÄ›"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adresa"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Poštovní adresa pro toto %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telefon"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Telefonní číslo"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
-msgstr "Fax"
+msgstr "fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "Telefonní číslo faxu"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Název"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "část (prvek) názvu domény"
@@ -2079,33 +2177,33 @@ msgstr "část (prvek) názvu domény"
 msgid "domain component"
 msgstr "Doménová část"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "zemÄ›"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr "Kód země"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "místo"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "místo"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Spravovat oddělení"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
@@ -2113,233 +2211,198 @@ msgstr ""
 "Spravovat oddělení, země, doménové části, domény, lokality a uzly "
 "organizace,"
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Uživatelé a skupiny"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Úkoly"
+
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Hlášení"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Stav"
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
+msgstr ""
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:41
 #: plugins/personal/roles/class_userRoles.inc:33
 msgid "Groups and roles"
 msgstr "Skupiny a role"
 
-#: plugins/admin/groups/class_groupManagement.inc:36
+#: plugins/admin/groups/class_groupManagement.inc:42
 msgid "Manage groups and roles"
 msgstr "Spravovat skupiny a role"
 
-#: plugins/admin/groups/class_groupManagement.inc:37
+#: plugins/admin/groups/class_groupManagement.inc:43
 msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr "Umožňuje spravovat skupiny objektů, POSIX skupiny a role"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr "Akce zrušena"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Spustit akci"
+
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Naplánovat akci"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
+#: plugins/admin/groups/class_groupManagement.inc:136
 #, php-format
 msgid "System %s has no mac address defined, cannot trigger action"
 msgstr "Systém %s nemá definovánu MAC adresu, akci nelze spustit"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
+#: plugins/admin/groups/class_groupManagement.inc:145
 #, php-format
 msgid "Could not find system %s, cannot trigger action"
 msgstr "Nedaří se najít systém %s, není možné spustit akci"
 
-#: plugins/admin/groups/class_groupManagement.inc:176
+#: plugins/admin/groups/class_groupManagement.inc:169
 #, php-format
-msgid "System %s is currently installing"
-msgstr "Systém %s je nyní instalován"
+msgid "System %s is currently installing, cannot trigger action"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr "Služba infrastruktury"
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/groups/class_groupManagement.inc:200
 msgid "Action triggered"
 msgstr "Spuštěná akce"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Úloha"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Upravit vlastnosti role"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "POSIX"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "upravit POSIXové vlastnosti"
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Zobrazit skupiny uživatele"
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Zobrazit organizační úlohy"
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Zobrazit skupiny aplikací"
-
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
-msgstr "Zobrazit skupiny skupin"
-
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
-msgstr "Zobrazit neidentifikované skupiny"
-
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "zobrazovat primární skupiny"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "zobrazovat e-mailové skupiny"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "zobrazovat skupiny Samby"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr "Zobrazit DSA položky"
-
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Zobrazit skupiny serverů"
-
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Zobrazit skupiny počítačů"
-
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Zobrazit skupiny terminálů"
-
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Zobrazit skupiny tiskáren"
-
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Zobrazit skupiny telefonů"
-
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "Neznámý typ: %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr "Akce zavolána bez chyby (výsledky jsou „%s“)"
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
-msgstr "Neexistující rozlišený název: %s"
+msgid "Action called without error (result was \"%s\")"
+msgstr "Akce zavolána bez chyby (výsledek je „%s“)"
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "skupina objektu"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Informace o skupinÄ› objektu"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Skupina"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Název této skupiny"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Stručný popis této skupiny"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Vlastník"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "členské objekty"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Objekty spadající do této skupiny"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "důvěryhodnost systémů"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "režim důvěryhodnosti"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Typ ověřování pro tyto stroje"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "zakázáno"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "plný přístup"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
-msgstr "umožnit přístup k těmto strojům"
+msgstr "povolit přístup k těmto strojům"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr "Této skupině umožnit připojení pouze na stroje z tohoto seznamu"
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr "Není možné umístit počítače a terminály do jedné skupiny"
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Seznam skupin"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Spustit akci"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Členové"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Naplánovat akci"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Úloha"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Informace o roli"
 
@@ -2357,199 +2420,187 @@ msgid "Description of the role"
 msgstr "Popis role"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Telefonní číslo"
 
-#: plugins/admin/groups/class_roleGeneric.inc:99
-msgid "Fax number"
-msgstr "Faxové číslo"
+#: plugins/admin/groups/class_roleGeneric.inc:99
+msgid "Fax number"
+msgstr "Faxové číslo"
+
+#: plugins/admin/groups/class_roleGeneric.inc:105
+msgid "Role members"
+msgstr "Členové role"
+
+#: plugins/admin/groups/class_roleGeneric.inc:108
+msgid "Add users for the role"
+msgstr "Přidat uživatele pro tuto roli"
+
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Přiřazení ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "přiřazení ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Přiřazení úlohy řízení přístupu"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Přiřazení"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Přiřazení ACL úlohy pro tento základ"
 
-#: plugins/admin/groups/class_roleGeneric.inc:105
-msgid "Role members"
-msgstr "Členové role"
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Přiřazení na objektu či podstromu %s"
 
-#: plugins/admin/groups/class_roleGeneric.inc:108
-msgid "Add users for the role"
-msgstr "Přidat uživatele pro tuto roli"
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ", a %d dalších"
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr "Dialog přiřazení ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Dialog přiřazení úloh řízení přístupu"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Režim"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr "Týká se toto celého podstromu nebo jen základu?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Podstrom"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Pouze základ"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Role, kterou použít"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Pro všechny uživatele"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Použít tento ACL seznam pro všechny uživatele LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Členové"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr "Uživatelé či skupiny, kterým má být tato role přiřazena"
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
-msgstr ", a %d dalších"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "Přiřazení ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "přiřazení ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Přiřazení úlohy řízení přístupu"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Přiřazení"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "Přiřazení ACL úlohy pro tento základ"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
-msgstr "Přiřazení na objektu či podstromu %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr "Vytvoření přiřazení ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr "Vytvořit ACL přiřazení na libovolném rozlišeném názvu"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr "Rozlišený název"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr "Rozlišený název kterému chcete přiřadit"
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
-msgstr "Zadaný rozlišený název nebyl v LDAP nalezen"
+msgid "The dn you entered could not be found in LDAP"
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "Přiřazení ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr "Správa přiřazení ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr "Spravovat přiřazení ACL rolí uživatelům"
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Seznam uživatelů"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Příjmení"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Jméno"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Uživatel"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "zamknout uživatele"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "odemknout uživatele"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "aplikovat šablonu"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "vytvořit nového uživatele pomocí šablony"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Upravit uživatele"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Odebrat uživatele"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Uživatelé"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Spravovat uživatele"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr "Spravovat uživatelské účty a jejich vlastnosti"
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "zamykání účtu"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
@@ -2558,7 +2609,7 @@ msgstr ""
 "Způsob ukládání hesel %s neumožňuje uzamykání účtů. Účet %s proto nebyl "
 "uzamčen!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
@@ -2566,198 +2617,268 @@ msgid ""
 msgstr ""
 "Uzamčení pomocí metody hesla „%s“ se nezdařilo. Účet „%s“ nebyl zamčen!"
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "povolit účet"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Zamknout účet"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Uživatelský účet"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Informace o uživatelském účtu"
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "obsahuje nastavení pro následující objekty: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "role řízení přístupu"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "Role ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Název této úlohy"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Stručný popis této úlohy"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "Seznamy pro řízení přístupu"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr "ACL seznamy, které jsou součástí této skupiny"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "pro tuto kategorii není nastaven žádný ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL pro tyto objekty: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "upravit ACL kategorie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "resetovat ACL kategorie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "seznam dostupných katergorií ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "všechny objekty v současném podstromu"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr "Upravit ACL pro „%s“"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "číst"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Správa úloh ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "zapisovat"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "Spravovat ACL role"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "zobrazit/skrýt pokročilá nastavení"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "vytvářet objekty"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "přesouvat objekty"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "mazat objekty"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "dát oprávnění i vlastníkovi"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "celý objekt"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "Správa úloh ACL"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
-msgstr "Spravovat ACL role"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "zapnout pořizování snímků aktuálního stavu"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr "Toto umožňuje uložit určité stavy položek a později je zase obnovit."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "podstrom pro uložení snímků"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Nastavení zásuvných modulů"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "Nastavení zásuvných modulů pro FusionDirectory"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "skupiny objektů"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "Relativní rozlišený název skupin"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Větev, ve které budou ukládány objekty skupin"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
-msgstr "Vynutit dotázání se na heslo"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
-"Hodí se pro přidání háčku, používajícího hodnotu hesla když jsou upravována "
-"SASL uživatelská hesla"
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Nastavení Přehledu"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr "Nastavení zásuvného modulu Přehled pro FusionDirectory"
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Schéma názvů Přehledu"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Počet číslic"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "Počet číslic, které umístit za předponu"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Předpony"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr "Předpony pro identifikátory počítačů"
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "Přehled uživatelů, jejichž účtům skončila platnost"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Počet dnů"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
@@ -2766,6 +2887,8 @@ msgstr ""
 "přehledu účtů, kterým končí platnost"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Zásuvné moduly"
 
@@ -2773,48 +2896,50 @@ msgstr "Zásuvné moduly"
 msgid "Configuration for plugins"
 msgstr "Nastavení zásuvných modulů"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Obnova zapomenutého hesla"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Nastavení funkce obnovení zapomenutého hesla"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "nastavení obnovy zapomenutého hesla"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Zapnout funkci pro obnovu zapomenutého hesla"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
-msgstr "Zda zapnout funkci pro obnovování zapomenutých hesel"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "E-mailová adresa odesilatele"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "E-mailová adresa, ze které budou zprávy posílány"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Doba platnosti odkazu (minuty)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Počet minut, po jejichž uplynutí skončí platnost obnovovacího odkazu"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "Kryptografická „sůl“ pro tokeny"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2822,53 +2947,51 @@ msgstr ""
 "Pouze bezpečnostní opatření, můžete zde zadat cokoli, třeba i nahodile "
 "zvolené znaky"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Umožnit používání alternativních adres"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Uživatelé budou moci pro obnovení svých hesel použít jednu ze svých "
-"alternativních adres"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "atribut použitý pro přihlašování"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 "Obvykle identifikátor uživatele (uid), ale například v případě sjednoceného "
 "přihlašování (SSO) je možné použít něco jiného"
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "První e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Předmět"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Předmět prvního e-mailu"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] odkaz pro obnovu hesla"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Tělo zprávy (první %s je přihlašovací jméno, druhé je odkaz)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2877,7 +3000,7 @@ msgstr ""
 "Obsah první e-mailové zprávy, poslané uživateli, když požádá o nové heslo. "
 "Pro přihlašovací jméno a obnovovací odkaz použijte %s."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2896,24 +3019,24 @@ msgstr ""
 "\n"
 "Odkaz je platný pouze po dobu 10 minut."
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Druhý e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Předmět druhého e-mailu"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] obnova ztraceného hesla proběhla úspěšně"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Tělo zprávy (%s je přihlašovací jméno)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2922,7 +3045,7 @@ msgstr ""
 "Obsah druhé e-mailové zprávy, poslané pro potvrzení toho, že heslo bylo "
 "změněno. Na místě přihlašovacího jména uživatele použijte %s – bude dosazeno"
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2935,29 +3058,84 @@ msgstr ""
 "Vaše heslo bylo změněno.\n"
 "Uživatelské jméno je samozřejmě pořád stejné – %s"
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr "Karta"
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Kdy spouštět tento příkaz"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr "Příkaz"
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Příkaz, který bude spouštěn"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Nastavení"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "Nastavení FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr "Nastavovací obrazovka pro FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Vzhled a chování"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Jazyk"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2966,40 +3144,40 @@ msgstr ""
 "dispozici, bude použit jazyk, požadovaný prohlížečem. Toto nastavení je "
 "možné změnit pro jednotlivé uživatele."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "vzhled"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Vzhled, který má být použit"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Časová zóna"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Časová zóna, která má být použita"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Základní nastavení"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "Nejvyšší umožněná velikost LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 "Určuje počet položek, které budou ve výchozím nastavení získávány z LDAP."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Upravit zamykání"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -3007,95 +3185,82 @@ msgstr ""
 "Kontrolovat, zda aktuálně upravovaná položka nebyla mezitím změněna mimo "
 "FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Zapnout protokolování"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Protokolování událostí na straně FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr "Ověření schématu"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr "Zapíná kontrolu schématu při přihlašování."
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "zapnout pořizování snímků aktuálního stavu"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr "Toto umožňuje uložit určité stavy položek a později je zase obnovit."
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "podstrom pro uložení snímků"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "Základ, ve kterém by měly být zachycené stavy ukládány v LDAP."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr "Zástupnými znaky vyjádřené cizí klíče"
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
-"Zapíná hledání zástupnými znaky jako member=* při přesouvání celého "
-"oddělení. Toto otevře všechny existující skupiny a role aby bylo zajištěno, "
-"že cizí klíče jsou respektovány. Pomalé na rozsáhlých stromech."
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Nastavení hesel"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "Výchozí otisk hesla"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "Výchozí otisk, který bude použit"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Vynutit výchozí otisk"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr "Vynutit použití výchozího otisku hesla"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "minimální délka hesla"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Minimální délka hesel uživatelů"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "O kolik je třeba, aby se hesla lišila"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr "Nejnižší umožněný počet rozdílných znaků oproti předchozímu heslu"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "omezovat platnost uživatelský účtů na základě platnosti jejich hesel"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
@@ -3103,33 +3268,33 @@ msgstr ""
 "Zapíná test stínového atributy během přihlašování k FusionDirectory a "
 "vynucuje obnovu hesla nebo uzamčení účtu"
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "SASL oblast"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr "Atribut, který ukládat v atributu userPassword"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "přihlašování a relace"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 "Který LDAP atribut by měl být použit jako přihlašovací jméno při "
 "přihlašování."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "vynucovat šifrované spojení"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3137,169 +3302,180 @@ msgstr ""
 "Zapnout kontroly zabezpečení PHP z důvodu vynucení šifrovaného přístupu "
 "(https) na webové rozhraní."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "varovat, pokud relace není šifrována"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr "zobrazí uživateli varování, když použije protokol http namísto https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Doba nečinnosti, po jejímž uplynutí bude relace automaticky ukončena."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 "Určuje kdy skončí platnost sezení (v sekundách) 0 (nula) vypíná časovač."
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr "Základní HTTP ověření"
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
-"Namísto přihlašovacího formuláře použít protokol základního HTTP ověřování."
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
-msgstr "Ověřování HTTP hlavičky"
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr "Namísto přihlašovacího formuláře použít ověřování HTTP hlavičky."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr "Název hlavičky"
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr "Název hlavičky obsahující identifikátor uživatele."
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr "Umístění klíče"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 "Umístění soukromé části klíče FusionDirectory. V tuto chvíli není používáno."
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr "Umístění certifikátu"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr "Umístění certifikátu FusionDirectory. V tuto chvíli není používáno."
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr "Umístění certifikátu cert. autority"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 "Umístění certifikátu cert. autority. Slouží k ověření stroje s Argonaut "
 "serverem."
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr "Ústřední ověřovací služba (CAS)"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr "Zapnout CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr "Bude použito CAS namísto LDAP přihlášení"
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr "Umístění certifikátu cert. autority na CAS serveru"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
-msgstr "stroj"
+msgstr "Stroj"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr "Stroj, na kterém je provozován CAS server"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Port"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr "Port na kterém CAS server očekává spojení"
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr "Kontext CAS"
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr "Kontext CAS, který použít"
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "umístění účtů uživatelů a skupin"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "atribut účtu uživatele použitý jako DN"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
-msgstr "Atribut, který bude použit na začátku rozlišených jmen uživatelů"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr "Vzor CN"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr "Vzor který použít pro vytváření kolonky běžný název"
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Přísná pravidla pro pojmenovávání"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr "Zapíná přísnou kontrolu uživatelských jmen a názvů skupin"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr "Relativní rozlišený název uživatelů"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "Větev, ve které jsou uloženi uživatelé."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr "Relativní rozlišený název ACL úlohy"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr "Větev, ve které jsou uloženy ACL úlohy."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr "Omezit členy role"
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
@@ -3307,20 +3483,20 @@ msgstr ""
 "Když je zapnuto, mohou do role být přidáni pouze uživatelé ze stejné větve "
 "nebo členové skupiny ze stejné větve."
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr "Oddělené kolonky adresy"
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr "Vystavit kolonky ulici, PO Box a PSČ namísto poštovní adresa."
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr "Vzorec poštovní adresy"
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
@@ -3328,27 +3504,35 @@ msgstr ""
 "Při použití oddělených kolonek adresy je možné použít vzorce pro vyplňování "
 "kolonky poštovní adresa."
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "diagnostika"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Zobrazit chyby"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
-"V horní části obrazovky vypisuje chyby, ke kterým došlo v PHP. V produkčním "
-"nasazení by toto mělo být vypnuto, protože se zde mohou objevovat hesla."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "maximální prodleva odpovědi LDAPu"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
@@ -3356,11 +3540,11 @@ msgstr ""
 "Zastavit LDAP akce pokud není obdržena odpověď v rámci zadaného počtu "
 "sekund."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "zaznamenávat statistiky LDAPu"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3368,23 +3552,31 @@ msgstr ""
 "Sledovat statistiky časování LDAP do systémového protokolu. Může pomoci s "
 "hledáním problémů s indexováním či chybnými filtry hledání."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "úroveň podrobností diagnostických informací"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Zobrazit určité údaje při každém načtení stránky."
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Různé"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "ve výpisech zobrazovat souhrny"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3392,11 +3584,11 @@ msgstr ""
 "Určuje, zda bude na konci seznamů zobrazována stavová lišta, ve které bude "
 "uveden krátký souhrn typu a počtu prvků na seznamu."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr "Zobrazit panel ACL u všech objektů"
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
@@ -3404,105 +3596,149 @@ msgstr ""
 "Pro velmi specifická nastavení ACL práv, kde je zapotřebí udělit právo na "
 "jediném objektu."
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr "Kategorie oddělení k dispozici"
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr "Kategorie dostupné v roletové nabídce oddělení"
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 "Toto použijte pro skrytí některých položek nabídky pro konkrétní skupinu "
 "uživatelů"
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr "Skupina nebo role"
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr "Zásuvný modul na seznam vykázaných"
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr "Zásuvný modul pro vyloučení z nabídek"
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "háčky"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automaticky"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "Háčky, které jsou volány pokud nastane konkrétní událost"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Skupina %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
-msgstr "Karta"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Role %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "Panel, kterého se týká tento háček"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Kdy spouštět tento příkaz"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
-msgstr "Příkaz"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Verze"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "Příkaz, který bude spouštěn"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
-msgstr "Zobrazit výstup háčku"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
-"Pokud je zapnuto, je úspěšné vykonání háčku zobrazeno uživateli "
-"prostřednictvím dialogu."
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automaticky"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Přehled"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr "Statistiky a různé informace"
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr "Viz nástěnka"
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Statistiky"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+"Statistiky pro typ „%s“ nebylo možné spočítat kvůli následující chybě: %s"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Statistiky o uživatelích"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Statistiky uživatelů"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Statistiky skupin"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Účty, jejichž platnost skončila"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "uživatelské jméno"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Datum skončení platnosti"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "E-mail"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
@@ -3510,7 +3746,7 @@ msgid ""
 msgstr ""
 "Statistiky uživatele nebylo možné spočítat kvůli následující LDAP chybě: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
@@ -3518,7 +3754,7 @@ msgid ""
 msgstr ""
 "Statistiky skupiny nebylo možné spočítat kvůli následující LDAP chybě: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
@@ -3527,7 +3763,7 @@ msgstr ""
 "Informace o účtech uživatelů, kterým skončila platnost, nebylo možné "
 "spočítat kvůli následující LDAP chybě: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
@@ -3536,24 +3772,24 @@ msgstr ""
 "Informace o účtech uživatelů, kterým skončila platnost, nebylo možné "
 "spočítat kvůli následující chybě: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr "Nenalezeno (%s)"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr "Hesla"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr "Statistiky o heslech"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr "Statistiky hesel"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
@@ -3561,119 +3797,88 @@ msgid ""
 msgstr ""
 "Statistiky hesel nebylo možné spočítat kvůli následující LDAP chybě: %s"
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Přehled"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr "Statistiky a různé informace"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "Hlášení"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr "Viz nástěnka"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Statistiky"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-"Statistiky pro typ „%s“ nebylo možné spočítat kvůli následující chybě: %s"
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "Identifikátor"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "Typ předplatného"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Datum začátku"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "Datum ukončení"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "import(ovat)"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3681,53 +3886,202 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Plán"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Upravit skupiny a role uživatele"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
-msgstr "Členství ve skupinách"
+msgid "Group memberships"
+msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
 msgstr "Členství v rolích"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "způsob uložení hesla"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Metoda otisku hesla"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3735,157 +4089,206 @@ msgstr "Metoda otisku hesla"
 msgid "Password"
 msgstr "Heslo"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Heslo (Pokud si nepřejete změnit, ponechte prázdné)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Zopakování hesla"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Stejné heslo jako výše, pro vyloučení chyb"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr "Zamčeno"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Uživatel"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Informace o uživatelském účtu"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Uživatelský účet"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr "Stav uzamčení uživatele"
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Osobní údaje"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Příjmení"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Příjmení tohoto uživatele"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Jméno"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Jméno tohoto uživatele"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Stručný popis uživatele"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Fotografie"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "Obrázek pro tohoto uživatele"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr "Organizační kontaktní údaje"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Firemní poštovní adresa"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Označ. místnosti"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Označení místnosti"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Služební telefoní číslo"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Mobilní telefon"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Číslo služebního mobilního telefonu"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Pager"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "Číslo na pracovní pager"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Číslo služebního faxu"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "osobní webové stránky"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "Osobní webové stránky"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "Informace o účtu"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr "Přihlašovací jméno tohoto uživatele"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Upřednostňovaný jazyk"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Uživatelovo heslo"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Osobní kontaktní údaje"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
-msgstr "Zobrazované jméno"
+msgstr "Zobrazovaný název"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 "Jméno, pod kterým má být tento uživatel zobrazován. Používáno MS Exchange."
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr "Adresa bydliště"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Soukromá poštovní adresa"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Soukromý telefon"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Telefonní číslo domů"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "organizační informace"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Titul"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
@@ -3893,121 +4296,121 @@ msgstr ""
 "Titul osoby v kontextu organizace. Každý z titulů je hodnota tohoto "
 "vícehodnotového atributu"
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr "Jednotka"
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr "Organizační jednotka do které uživatel náleží"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "číslo oddělení"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "číslo oddělení"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "číslo zaměstnance"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "číslo zaměstnance"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Typ zaměstnaneckého poměru"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr "Ulice"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr "Uliční část adresy"
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr "PO box"
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Poštovní směrovací číslo (PSČ)"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
-msgstr "Ppolicy %s nebyla nalezena v LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
+msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr "Nejste oprávněni ke změně svého hesla"
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 "Je třeba, abyste počkali %d sekund než budete moci znovu měnit své heslo"
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "Toto heslo už bylo nedávno použito"
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr "Bylo zadáno naprosto stejné heslo, jako je to stávající"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Pro pokračování je třeba zadat své stávající heslo."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr "Zadání v kolonkách Nové heslo a Zopakování nového hesla se neshodují."
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nové heslo"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Nové a staré heslo jsou si příliš podobné."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr "Nové heslo je příliš krátké"
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 "Heslo obsahuje znaky, které mohou být problematické (např. se nenacházejí "
 "přímo na klávesnici)."
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "odkazy"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Vítejte, %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Dokončeno"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "následující"
 
@@ -4083,10 +4486,6 @@ msgstr "heslo účtu správce"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr "Heslo k účtu správce, použitého pro spojování do LDAP"
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Stav"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "současný stav"
@@ -4111,39 +4510,39 @@ msgstr ""
 "V tomto dialogu budou provedena základní nastavení pro komunikaci "
 "FusionDirectory s LDAPem."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonymní přihlášení k serveru '%s' se nezdařilo!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Přihlášení jako uživatel '%s' se nezdařilo!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
-msgstr "Znovu"
+msgstr "znovu"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Anonymní přihlášení k serveru '%s' proběhlo úspěšně."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "obnovit"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Zadejte prosím uživatelské jména a heslo!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Přihlášení se jako uživatel '%s' k serveru '%s' proběhlo úspěšně!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
@@ -4152,7 +4551,7 @@ msgstr ""
 "%s\n"
 "Schéma „%s“: %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "kontroly PHP a jeho rozšiřujících modulů"
 
@@ -4170,31 +4569,31 @@ msgstr ""
 "základní kontrola toho, zda je PHP a jeho rozšířující moduly ve vyhovujících"
 " verzích"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Kontroluje se verze PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP musí být ve verzi %s a vyšší"
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Aktualizujte prosím na verzi, která je podporována."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr "FusionDirectory potřebuje tento modul pro komunikaci s LDAP serverem."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory potřebuje tento modul pro přizpůsobení uživatelského "
 "rozhraní místním odlišnostem (formát data a času, měrné jednotky, atp.)."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4202,28 +4601,14 @@ msgstr ""
 "FusionDirectory potřebuje tento modul pro komunikaci různými protokoly s "
 "různými typy serverů."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 "FusionDirectory tento modul potřebuje pro enkódování proměnných pro použití "
 "v javascript."
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
@@ -4231,55 +4616,47 @@ msgstr ""
 "FusionDirectory tento modul potřebuje pro filtrování proměnné pomocí "
 "určeného filtru."
 
-#: setup/class_setupStepChecks.inc:124
-msgid "FusionDirectory requires this module for the samba integration."
-msgstr "FusionDirectory potřebuje tento modul pro začlenění Samby."
-
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"Aby bylo možné ve FusionDirectory využívat SSHA šifrování, musí být "
-"nainstalován jeden z těchto modulů: 'mhash', nebo 'sha1'."
+#: setup/class_setupStepChecks.inc:109
+msgid "FusionDirectory requires this module for the samba integration."
+msgstr "FusionDirectory potřebuje tento modul pro začlenění Samby."
 
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr "FusionDirectory potřebuje tento modul pro komunikaci s IMAP serverem."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 "FusionDirectory potřebuje tento modul pro práci se znaky v univerzálním "
 "kódování (unicode)."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "ImageMagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory jej potřebuje pro práci s obrázky."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "kompresní modul"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory toto rozšíření potřebuje pro práci se snímky."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP tuto hodnotu používá pro „úklid“ (garbage collector) při odstraňování "
 "starých relací."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4287,7 +4664,7 @@ msgstr ""
 "Nastavení této hodnoty na jeden den zabrání ztrátě relace a cookies dříve, "
 "než skutečně vyprší nastavený časový limit."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4295,12 +4672,12 @@ msgstr ""
 "Vyhledejte ve svém php.ini parametr 'session.gc_maxlifetime' a nastavte jej "
 "na hodnotu '86400' a vyšší."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "vypnuto"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4308,13 +4685,13 @@ msgstr ""
 "Abyste se vyhnuli potížím při používání FusionDirectory, vyhledejte ve svém "
 "php.ini parametr session.auto_start a nastavte jej na hodnotu off ."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Vyhledejte ve svém php.ini parametr 'session.auto_start' a nastavte jej na "
 "'off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4324,14 +4701,14 @@ msgstr ""
 "nevyzpytatelné chyby! Pro rozsáhlá nasazení je třeba tuto hodnotu ještě dále"
 " navýšit."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "V souboru s nastaveními php.ini na svém serveru vyhledejte volbu "
 "memory_limit a nastavte ji na hodnotu 128M a vyšší."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4339,17 +4716,17 @@ msgstr ""
 "Tato volba ovlivňuje to, jak PHP zachází s výstupem. Pro zvýšení výkonu "
 "nastavte na 'vypnuto'."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Vyhledejte ve svém php.ini parametr 'implicit_flush' a nastavte jej na "
 "'off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "PHP skripty by měly dostat čas alespoň 30 vteřin na to, aby proběhly."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4357,7 +4734,7 @@ msgstr ""
 "Vyhledejte ve svém php.ini parametr 'max_execution_time' a nastavte jej na "
 "hodnotu '30' a vyšší."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4365,28 +4742,28 @@ msgstr ""
 "Pro zlepšení zabezpečení nastavte PHP tak, aby neposkytovalo jakékoli "
 "informace o serveru, na kterém běží."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Vyhledejte ve svém php.ini parametr 'expose_php' a nastavte jej na 'off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "migrovat"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "kontrola LDAPu"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "prozkoumání Vášeho LDAPu, zda je slučitelný s FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr "Udělit veškerá práva na uživatelích v dané větvi"
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4394,86 +4771,88 @@ msgstr ""
 "Umožnit uživatelům upravovat své vlastní údaje (panely Hlavní a Posix "
 "použijte jen na základu)"
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Umožnit uživatelům upravovat jejich vlastní hesla (použijte pouze na "
 "základu)"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "kontrolují se třídy objektů v kořenovém objektu"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "kontrolují se oprávnění na LDAP databázi"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "kontroluje se, zda neexistují „neviditelní“ uživatelé"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "kontroluji, zda již existuje účet správce FusionDirectory/GOsa"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr "Kontrola výchozích ACL úloh a skupin"
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "kontroluje se, zda neexistují účty uživatelů mimo příslušný podstrom"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "kontroluje se, zda neexistují účty skupin mimo příslušný podstrom"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "kontroluje se, zda neexistují „neviditelná“ oddělení"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
-"kontroluje se, zda neexistují duplicity v číselných identifikátorech "
-"uživatelů (UID)"
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
-msgstr "Kontrola duplicitních identifikátorů skupin (GID)"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+"kontroluje se, zda neexistují duplicity v číselných identifikátorech skupin "
+"(GID)"
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "dotaz do LDAPu byl neúspěšný"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr "Možná chybí kořenový objekt."
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Nezdařilo se"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Chybí chybí třída objektů '%s' FusionDirectory!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Zkontrolujte svou instalaci."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4482,124 +4861,171 @@ msgstr ""
 "Nedaří se manipulace s typem struktury kořenového objektu. Prosím pokuste se"
 " přidat třídu objektů '%s' ručním zásahem."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr "Zvolený uživatel %s nemá plný přístup do LDAP databáze."
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr "Zvolený uživatel %s nemá plný přístup do LDAP databáze."
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"Nalezeno %s uživatelů, kteří nebudou dostupní z FusionDirectory nebo jsou "
-"jejich účty neúplné."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr "Přemístění uživatele"
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "chyba během migrace"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
-msgstr "Položku %s nelze přemístit:"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Skupiny"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Role"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "Ve Vašem LDAPu neexistuje účet správce FusionDirectory/GOsa."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr "Uděluje veškerá práva na veškerých objektech"
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr "Výchozí ACL úlohy nebyly vloženy"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr "Chybí některé výchozí ACL úlohy"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr "Výchozí ACL úlohy byly vloženy"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
-msgstr "Nelze přidat ACL úlohu %s:"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
-msgstr "Nalezeno %s uživatelů, nacházejících se mimo nastavený strom %s."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "přesunout uživatele do příslušného stromu"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr "Položky nelze přesunout do požadovaného oddělení!"
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
-msgstr "Položka bude přesunuta z"
-
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "do"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "tyto odkazy budou aktualizovány"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
-"Bylo nalezeno %s účtů skupin, nacházejících se mimo příslušný strom '%s'."
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1206
+#, php-format
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr "Přesunout skupiny do příslušného stromu"
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
+#, php-format
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1258
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
-msgstr "Bylo nalezeno %s oddělení, která nebudou viditelná z FusionDirectory."
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
-msgstr "Přemístění oddělení"
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
-msgstr "Nalezeno %s duplicitních hodnot pro atribut „uidNumber“: %s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr "Přemístění oddělení"
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
-msgstr "Nalezeno %s duplicitních hodnot pro atribut „gidNumber“: %s"
+msgid "Found %d duplicate values for attribute \""
+msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
 msgid "Finish"
@@ -4613,7 +5039,7 @@ msgstr "Dokončit – zapsat nastavení do souboru"
 msgid "Write configuration file"
 msgstr "Zapsat nastavení do souboru"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4621,19 +5047,17 @@ msgstr ""
 "Váš soubor s konfigurací je v tuto chvíli čitelný úplně pro všechny. Upravte"
 " nastavení oprávnění pro přístup k němu."
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "Soubor s nastaveními není v tuto chvíli čitelný, nebo zcela chybí."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Po stažení a umístění souboru do %s se prosím ujistěte, že %s je oprávněn "
-"číst pouze uživatelský účet, pod kterým běží webový server a nikdo jiný."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4653,125 +5077,27 @@ msgstr ""
 "samočinně použije jazyk požadovaný přistupujícím webovým prohlížečem. Toto "
 "nastavení může být přebito."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"Adresář  '%s', nastavený jako místo pro provedení kompilace, není přístupný!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr "Nastavení %s/%s FusionDirectory není čitelné. Akce byla zrušena."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr "Varování: <a href=\"%s\">Sezení není šifrováno!</a>"
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "E-mailová adresa"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr "Účet s uživatelským jménem %s nebyl nalezen"
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr "Bylo nalezeno hned několik účtů s uživatelským jménem %s"
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr "Žádný z účtů nepoužívá e-mail „%s“"
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr "Je zde několik účtů které používají e-mail „%s“"
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-"Uživatel používající e-mail „%s“ je uzamčen. Obraťte se na svého správce."
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Nastal problém s poštovním serverem – obraťte se prosím na svého správce "
-"systémů."
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "tato poukázka (token) je neplatná"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-"Vyskytl se problém s poštovním serverem, potvrzovací e-mail proto nebyl "
-"odeslán"
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Nastavení PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Fatální chyba: v PHP je zapnuto 'register globals'. Dokud to Váš správce "
-"systémů neopraví, nebude možné se přihlásit do FusionDirectory."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Změna hesla"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr "Platnost Vašeho hesla již brzy skončí – změňte ho prosím!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr "Platnost hesla skončila, nastavte si nové."
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Dochází volná kapacita operační paměti!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "kontrola dle ACL je vypnuta"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Zásuvný modul"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-"Fatální chyba: Nelze nalézt jakékoli definice zásuvného modulu pro modul %s "
-"(%s není soubor)!"
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Chyba v nastavení"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4779,111 +5105,28 @@ msgstr ""
 "Fatální chyba: ne všechny proměnné POST byly PHP přeneseny – sdělte to "
 "prosím svému správci systémů!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Přihlásit"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-"Varování: Délka platnosti sezení nastavená ve fusiondirectory.conf bude "
-"přebita nastaveními z php.ini."
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
-"Nastavení FusionDirectory %s/%s není čitelné. Pro nápravu spusťte (na "
-"serveru) příkaz fusiondirectory-setup --check-config ."
 
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "chyba ve Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr "Složka %s, zadaná jako kompilační, není přístupná!"
-
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 "Vaše relace ve FusionDirectory byla automaticky ukončena po Vaší delší "
 "neaktivitÄ›!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr "Neplatný parametr %s pro zásuvný modul!"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr "Nebyla nalezena žádná relace!"
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr "Chyby nahlášené při kontrole LDAP schématu:"
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr "Chyba LDAP schématu"
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Zadejte prosím platné uživatelské jméno!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Zadejte prosím své heslo!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Zkontrolujte prosím správnost zadaného uživatelského jména a hesla."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Účet je uzamčen. Prosím kontaktujte svého správce systémů."
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr "V HTTP hlavičce „%s“ nebyla nalezena žádná hodnota"
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr "Uživatel z hlavičky „%s“ se nepodařilo v LDAP najít"
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr "Přihlášení účtem uživatele „%s“ vyvolalo chybu: %s"
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr "CAS uživatele z hlavičky „%s“ se nepodařilo v LDAP najít"
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Váš webový prohlížeč má zakázané cookies. Prosím povolte je a před dalším "
-"pokusem o přihlášení stránku nechejte tuto stránku načíst znovu!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "filtr"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4902,25 +5145,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr "Pro pokračování stiskněte \"Smazat\", pro přerušení \"Zrušit\"."
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Zobrazit šablony"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "zobrazit uživatele, kteří nemají účet pro jakékoli služby"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "zobrazit uživatele s POSIX účtem"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "zobrazit uživatele s e-mail účtem"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "zobrazit/skrýt pokročilá nastavení"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "zobrazit uživatele se Samba účtem"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "celý objekt"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4931,8 +5162,8 @@ msgstr[2] "Je zde %1 účtů se skončenou platností"
 msgstr[3] "Je zde %1 účtů se skončenou platností"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
-msgstr "Není zde žádný účet, jehož platnost skončila"
+msgid "There are no expired accounts"
+msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
@@ -4989,12 +5220,12 @@ msgstr[2] "Je zde %1 uživatelů:"
 msgstr[3] "Je zde %1 uživatelů:"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
-msgstr[0] "Jeden z nich používá %1 metodu"
-msgstr[1] "Dva z nich používají %1 metodu"
-msgstr[2] "%2 z nich používá %1 metodu"
-msgstr[3] "%2 z nich používá %1 metodu"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
@@ -5005,20 +5236,20 @@ msgstr[2] "%1 z nich je zamčených"
 msgstr[3] "%1 z nich je zamčených"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
-msgstr "Žádný z nich není uzamčen"
+msgid "None of them are locked"
+msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
 msgstr "Nejsou zde žádní uživatelé"
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
-msgstr[0] "Jeden z nich má %1 účet"
-msgstr[1] "%2 z nich mají %1 účet"
-msgstr[2] "%2 z nich má %1 účet"
-msgstr[3] "%2 z nich má %1 účet"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -5064,10 +5295,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "přidejte do LDAPu potřebné třídy objektů"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "současné"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "po migraci"
 
@@ -5089,13 +5322,10 @@ msgstr "FusionDirectory bude fungovat i tak."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Zdá se, že toto je první spuštění FusionDirectory – není k dispozici "
-"jakékoli nastavení. Tento jednoduchý průvodce se pokusí pomoci Vám s jeho "
-"vytvořením."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -5140,17 +5370,13 @@ msgstr "Pro pokračování:"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
-"Z bezpečnostních důvodů je třeba, abyste instalačnímu procesu prokázali své "
-"oprávnění vytvořením souboru %1 na souborovém systému serveru, do kterého "
-"zapíšete identifikátor tohoto sezení. Můžete tak učinit spuštěním "
-"následujícího příkazu (na serveru):"
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Až budete hotoví, klikněte na tlačítko „Další“."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -5224,7 +5450,12 @@ msgstr ""
 "Náhled toho, co s vybranými položkami stane po migraci, lze získat z LDIFu "
 "po kliknutí na 'zobrazit změny'."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Vybrat vše"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Zobrazit změny"
 
@@ -5278,7 +5509,7 @@ msgstr "Odolnost hesla"
 #: ihtml/themes/breezy/recovery.tpl.c:92 ihtml/themes/breezy/login.tpl.c:29
 #: ihtml/themes/breezy/login.tpl.c:32 ihtml/themes/breezy/login.tpl.c:35
 msgid "Directory"
-msgstr "adresář"
+msgstr "Adresář"
 
 #: ihtml/themes/legacy/recovery.tpl.c:53 ihtml/themes/legacy/recovery.tpl.c:98
 #: ihtml/themes/breezy/recovery.tpl.c:53 ihtml/themes/breezy/recovery.tpl.c:98
@@ -5343,14 +5574,28 @@ msgid "I forgot my password"
 msgstr "Mé heslo bylo zapomenuto"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Váš webový prohlížeč má zakázané cookies. Prosím povolte je a před dalším "
+"pokusem o přihlášení stránku nechejte tuto stránku načíst znovu!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Pro přihlášení klikněte sem"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr "Varování: chystáte se smazat následující objekty"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5367,6 +5612,59 @@ msgstr ""
 "Tedy – pokud jste si jist(a), stiskněte 'smazat'. V opačném případě operaci "
 "zrušte pomocí 'zrušit'."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "dolů"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Akce"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr "Novější než"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr "Starší než"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "filtr"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr "Typy"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "hledat v podstromech"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Použít filtr"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr "Vytváření nového objektu s použitím šablon"
@@ -5376,32 +5674,26 @@ msgstr "Vytváření nového objektu s použitím šablon"
 msgid "Continue"
 msgstr "Pokračovat"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">tým "
-"FusionDirectory, %2</a>"
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Zjištěn konflikt při vyhrazování prostředků (zamykání)."
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
+msgid "The following entries are locked:"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:11
 msgid "\"%1\" has been locked by \"%2\" since %3"
 msgstr "„%1“ bylo uzamčeno „%2“ od %3"
 
-#: ihtml/themes/breezy/islocked.tpl.c:11
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
-"Pokud se toto zjišťování zámku nezdaří, druhá osoba mohla při operaci "
-"opravení zavřít webový prohlížeč. Zámek můžete převzít kliknutím na „%1“."
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Pouze pro čtení"
 
@@ -5422,6 +5714,11 @@ msgstr ""
 "Takže, pokud to tak opravdu chcete, klikněte na Pokračovat. V opačném "
 "případě celou operaci zrušte kliknutím na Storno."
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Odeslat"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Hlavní"
@@ -5440,6 +5737,10 @@ msgid "Session expires in %d!"
 msgstr "Platnost sezení skončí za %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5451,23 +5752,24 @@ msgstr ""
 "databázemi bez dlouhých odezev, je omezit hledání na menší hodnoty a pro "
 "získávání položek, které chcete, využívat filtry."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "zvolte prosím, jak reagovat během této relace"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
-"ignorovat tuto chybu a zobrazit všechny položky, které LDAP server poskytne"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"Ignorovat tuto chybu a zobrazit všechny položky, které nejsou větší než "
-"zadaný limit – jako náhradu si vystačím s filtry."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Nastavit"
diff --git a/locale/de/fusiondirectory.po b/locale/de/fusiondirectory.po
index 0f6d324ed47fa66448b6c862b5443e6bfb49db44..6e81b8357e098efe410619da7e452755ab4fbd04 100644
--- a/locale/de/fusiondirectory.po
+++ b/locale/de/fusiondirectory.po
@@ -4,149 +4,558 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# Ettore Atalan <atalanttore@googlemail.com>, 2021
-# fusiondirectory <contact@fusiondirectory.org>, 2021
+# Ettore Atalan <atalanttore@googlemail.com>, 2023
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: German (https://www.transifex.com/fusiondirectory/teams/12202/de/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: German (https://app.transifex.com/fusiondirectory/teams/12202/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Fehler"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Bitte beheben Sie obigen Fehler und laden die Seite neu."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Typ"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Label"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Datum"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Beschreibung"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Wiederherstellen"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr "Schnappschüsse wiederherstellen"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objekt"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Schnappschüsse"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Zeitstempel"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr "Grund"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr "Fest"
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Bitte wählen Sie die gewünschten Einträge"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "%s Vorlage"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Vorlage"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Aus Vorlage"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Anlegen"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Liste exportieren"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Ausschneiden"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Kopieren"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Einfügen"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Vorlage anwenden"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Entfernen"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Snapshot erstellen"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Abzug wiederherstellen"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr "Trotzdem anwenden"
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr "Trotzdem archivieren"
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr "Trotzdem löschen"
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s zu erstellen."
 
-#: include/class_config.inc:151
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s wiederherzustellen."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Gehe zur Wurzel-Abteilung"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Wurzel"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Eine Abteilung nach oben"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Auf"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Heimat"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Liste neu laden"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Konfigurieren"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "XML-Fehler in der Datei fusiondirectory.conf: %s in Zeile %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Konfigurationsfehler"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAP-Fehler"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 "Kann nicht mit dem LDAP-Server verbinden. Bitte benachrichtigen Sie den "
 "Administrator."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Alle Kategorien"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Mein Konto"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Seite"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr "Kein PDF-Export möglich: FPDF-Bibliothek ist nicht installiert."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "Angelegt von"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Datei"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Zeile"
 
@@ -170,270 +579,261 @@ msgstr "statisch"
 msgid "method"
 msgstr "Methode"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Ablaufverfolgung"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Typ"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argumente"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "Der PHP-Interpreter meldete einen oder mehrere Fehler beim Erzeugen dieser "
 "Seite!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Bugreport an das FusionDirectory Team senden"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Fehlerbericht senden"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Zeige/Verstecke Informationen"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Auf"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Ab"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Aufsteigend sortieren"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Absteigend sortieren"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "Die Zeitzoneneinstellung \"%s\" in Ihrer Konfiguration ist nicht gültig."
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Alle auswählen"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
+msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "Angelegt von"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Name der Vorlage"
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Gehe zur Wurzel-Abteilung"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Protokollieren fehlgeschlagen: %s"
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Wurzel"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Eine Abteilung nach oben"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "Der angegebene Objekt-Typ ist leer oder ungültig!"
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Heimat"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "CAS"
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Liste neu laden"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Aktionen"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Kopieren"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Ausschneiden"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Anmelden"
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Einfügen"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr "Warnung: %sSitzung ist nicht verschlüsselt!%s"
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Diesen Eintrag ausschneiden"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Diesen Eintrag kopieren"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr "Zweiter Faktor"
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Abzug wiederherstellen"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Liste exportieren"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
+msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Abzug wiederherstellen"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Bitte geben Sie einen gültigen Benutzernamen ein!"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Snapshot erstellen"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Bitte geben Sie Ihr Passwort ein!"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Erstelle einen neuen Snapshot dieses Objekts"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Das Konto ist gesperrt. Bitte benachrichtigen Sie den Administrator!"
 
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
-msgstr "Die Zeitzoneneinstellung \"%s\" in Ihrer Konfiguration ist nicht gültig."
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAP-Fehler"
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Vorlage"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Email-Adresse"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Passwort-Wiederherstellung"
+
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Name der Vorlage"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Interner Fehler"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Logging failed: %s"
-msgstr "Protokollieren fehlgeschlagen: %s"
+msgid "There are several accounts using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "Der angegebene Objekt-Typ ist leer oder ungültig!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "Das Token ist nicht gültig"
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Übertragen"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Filter anwenden"
-
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Suche in Teilbäumen"
+#: include/class_standAlonePage.inc:127
+#, php-format
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "FusionDirectory Konfiguration %s/%s ist nicht lesbar. Abgebrochen."
 
-#: include/class_filter.inc:404
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid "Searches in %s"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Die Größenbeschränkung von %d Einträgen ist überschritten!"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "unvollständig"
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_ldapSizeLimit.inc:152
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
-"Verwende eine neue Größenbeschränkung von %s Einträgen und zeige diese "
-"Meldung bei Überschreitung wieder an"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Konfigurieren"
-
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "unvollständig"
 
-#: include/functions.inc:97
+#: include/functions.inc:55
 #, php-format
 msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 "Schwerer Fehler: keine Klassenfundorte definiert - bitte führen Sie '%s' "
 "aus, um das Problem zu beheben"
 
-#: include/functions.inc:116
+#: include/functions.inc:78
 #, php-format
 msgid ""
 "Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
@@ -441,580 +841,359 @@ msgstr ""
 "Schwerer Fehler: Kann Klasse '%s' nicht instanziieren - bitte führen Sie "
 "'%s' aus um das Problem zu beheben"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Schwerer Fehler"
-
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr ""
-"FATAL: Fehler beim Verbinden mit dem LDAP-Server. Die Meldung lautet '%s'."
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
-msgstr ""
-
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Authentifizierungsfehler"
-
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr ""
-"Fehler beim Setzen einer Sperre. Bitte kontaktieren Sie die Entwickler!"
-
-#: include/functions.inc:594
+#: include/functions.inc:151
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
-"Kann Sperrinformation für LDAP-Baum nicht erzeugen. Bitte kontaktieren Sie "
-"Ihren Administrator!"
-
-#: include/functions.inc:594
-#, php-format
-msgid "LDAP server returned: %s"
-msgstr "Der LDAP-Server meldete: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Warnung"
 
 #: include/functions.inc:783
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
-msgstr ""
-"Mehrere Sperren für das zu sperrende Objekt gefunden. Dies sollte nicht "
-"passieren - räume mehrere Referenzen auf."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Trotzdem Fortsetzen"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Trotzdem bearbeiten"
-
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Sie bearbeiten gerade den/die LDAP Eintrag/Einträge %s"
-
-#: include/functions.inc:1505
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
+msgstr ""
+
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
-"Datei '%s' konnte nicht gelöscht werden. Versuchen Sie fusiondirectory-setup"
-" --check-directories um die Rechte zu beheben."
 
-#: include/functions.inc:1722
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Kann nicht in Revisions-Datei schreiben!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "LDAP-Warnung"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Kann die Schema-Informationen nicht vom Server beziehen. Keine Schemaprüfung"
 " möglich!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Verfügbare Klasse(n)"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Konnte Datei '%s' nicht finden - bitte führen Sie '%s' aus um das Problem zu"
-" beseitigen"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Keine Objekte dieser Kategorie"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Kennung"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Berechtigung"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Alle abbrechen"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Kann nicht einfügen"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Auswählen um Objekte des Typs '%s' aufzulisten."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Wählen Sie dies um Objekte aufzulisten die '%s' enthalten."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Auswählen um Objekte des Typs '%s' aufzulisten"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Wählen Sie diese Option um auch in Teilbäumen zu suchen"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Dieses objekt wird gelöscht!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Dieses '%s'-Objekt wird gelöscht!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Dieses Objekt wird gelöscht: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Dieses '%s'-Objekt wird gelöscht: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Dieses Objekt wird gelöscht:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Dieses '%s'-Objekt wird gelöscht:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Diese Objekte werden gelöscht: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Diese '%s'-Objekte werden gelöscht: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Sie sind nicht berechtigt dieses Objekt zu löschen!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Sie sind nicht berechtigt dieses Objekt zu löschen:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Sie sind nicht berechtigt dieses Objekte zu löschen:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Sie sind nicht berechtigt diese Objekt anzulegen!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Sie sind nicht berechtigt dieses Objekt anzulegen:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Sie sind nicht berechtigt diese Objekte anzulegen:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Sie sind nicht berechtigt dieses Objekt zu verändern!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Sie sind nicht berechtigt dieses Objekt zu öffnen!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Sie sind nicht berechtigt dieses Objekt zu öffnen:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Sie sind nicht berechtigt diese Objekte zu öffnen:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Sie sind nicht berechtigt dieses Objekt zu verschieben!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Sie sind nicht berechtigt dieses Objekt zu verschieben:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Sie sind nicht berechtigt diese Objekte zu verschieben:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Verbindungs-Information"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Konnte nicht zur %s Datenbank verbinden!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Kann die Datenbank %s nicht auswählen!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "Kein Server für %s definiert!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Konnte %s Datenbank nicht abfragen!"
-
-#: include/class_msgPool.inc:285
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "Das Feld '%s' enthält ein reserviertes Schlüsselwort!"
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
-"Das als '%s'-Erweiterung angegebene Kommando für Modul '%s' existiert nicht!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "'%s'-Kommando ist ungültig!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "'%s' Kommando für Modul %s ist ungültig!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "'%s' Kommando (%s) ist ungültig!"
 
-#: include/class_msgPool.inc:321
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "'%s' Kommando (%s) für Modul %s ist ungültig!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Kann '%s' Kommando nicht ausführen!"
-
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Kann '%s' Kommando für Modul %s nicht ausführen!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "Kann '%s' Kommando (%s) nicht ausführen!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Kann '%s' Kommando (%s) für Modul %s nicht ausführen!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "Der Wert für '%s' ist zu groß!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "'%s' muss kleiner sein als %s!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "Der Wert für '%s' ist zu kein!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s' muss größer oder gleich %d sein!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s' hängt von '%s' ab - bitte geben Sie beide Werte an!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "Es existiert bereits ein Eintrag mit diesem '%s' Attribut im System!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
-msgstr "Der Eintrag '%s' verwendet bereits dieses Attribut '%s'!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
+msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Das Pflicht-Feld '%s' ist leer!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "Beispiel:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
+msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
-msgstr "Das Feld '%s' enthält ungültige Zeichen"
+msgid "The required field \"%s\" is empty!"
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' ist nicht erlaubt:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s' sind nicht erlaubt!"
+msgid "Example: %s"
+msgstr "Beispiel: %s"
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
-msgstr "Fehlende %s PHP-Erweiterung!"
+msgstr "Fehlenden %s PHP-Erweiterung!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Abbrechen"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Anwenden"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Speichern"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Hinzufügen"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "%s hinzufügen"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Entfernen"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "%s löschen"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Bearbeiten..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "%s bearbeiten..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Zurück"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Dieses Konto besitzt keine gültigen %s-Einstellungen."
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1023,7 +1202,7 @@ msgstr ""
 "Dieses Konto besitzt aktivierte %s-Einstellungen. Sie können diese durch "
 "einen Klick auf die untere Schaltfläche deaktivieren."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1032,7 +1211,7 @@ msgstr ""
 "Dieses Konto besitzt aktivierte %s-Erweiterungen. Um sie zu deaktivieren, "
 "müssen Sie zunächst die %s Einstellungen entfernen!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1041,7 +1220,7 @@ msgstr ""
 "Dieses Konto hat keine %s-Einstellungen aktiviert. Sie können Sie durch "
 "einen Klick auf die Schaltfläche aktivieren."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1050,303 +1229,223 @@ msgstr ""
 "Dieses Konto besitzt aktuell keine aktivierten %s-Einstellungen. Um sie zu "
 "aktivieren, müssen Sie zunächst die %s Erweiterungen hinzufügen!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "%s Einstellungen hinzufügen"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "%s Einstellungen entfernen"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Januar"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Februar"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "März"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "April"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Mai"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Juni"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Juli"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "August"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "September"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Oktober"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "November"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Dezember"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Sonntag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Montag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Dienstag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Mittwoch"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Donnerstag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Freitag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Samstag"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "Lese-Operation"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "Hinzufügeoperation"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "Änderungs-Operation"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "Lösch-Operation"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "Such-Operation"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "Authentifizierung"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "LDAP %s fehlgeschlagen!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "LDAP-Operation fehlgeschlagen"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objekt"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Übertragung fehlgeschlagen!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Übertragung fehlgeschlagen: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Kommunikationsfehler mit dem Infrastruktur Dienst!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Kommunikationsfehler mit dem Infrastruktur Dienst: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "Dieses '%s' ist noch in Gebrauch dieses Objekts: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "Dieses '%s' ist noch in Benutzung."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "Dieses '%s' ist noch in Gebrauch dieser Objekte: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Die Datei '%s' existiert nicht!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Kann Datei '%s' nicht zum Lesen öffnen!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Kann Datei '%s' nicht zum Schreiben öffnen!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"Der Wert für '%s' ist momentan nicht konfiguriert oder ungültig. Bitte "
-"prüfen Sie Ihre Konfigurationsdatei!"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Kann Datei '%s' nicht löschen!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Kann den Ordner '%s' nicht anlegen!"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Kann den Ordner '%s' nicht löschen!"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Prüfe auf %s-Unterstützung"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Installieren und aktivieren Sie das %s PHP-Modul."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Installieren und aktivieren des %s Pear Moduls."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+"Die angegebene Basis ist ungültig. Der alte Wert wurde wieder hergestellt!"
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
-"Kann Klasse '%s' nicht initialisieren. Vielleicht fehlt ein Plugin in Ihrer "
-"FusionDirectory Installation?"
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
-"Die angegebene Basis ist ungültig. Der alte Wert wurde wieder hergestellt!"
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Bitte wählen Sie die gewünschten Einträge"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Name"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Beschreibung"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Dienst starten"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Dienst stoppen"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Dienst neustarten"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Basis"
 
@@ -1358,555 +1457,542 @@ msgstr "Objektbasis"
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Unbekannter Typ: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Keine"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr "%s (aus Liste)"
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr "%s ist älter als %s"
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr "%s ist neuer als %s"
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
-msgstr "Fehler, falsches Datum: %s"
+msgid "Incorrect date: %s"
+msgstr "Falsches Datum: %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Stunden"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Minuten"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "Sekunden"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Datum"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Zeit"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Kann hochgeladene Datei nicht lesen: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "Die Datei ist leer"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "Die Datei wurde nicht gefunden"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "Die Datei ist nicht lesbar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr "%s (%d Bytes)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
-msgstr ""
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
+msgstr "Ungültige base64-Daten"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Hochladen"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Herunterladen"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Entfernen"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Eine Ganzzahl/Integer zwischen %d und %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Eine Ganzzahl/Integer größer als %d "
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Eine Ganzzahl/Integer kleiner als %d "
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr "%s ist kleiner als %s"
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr "%s ist größer als %s"
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Ein Float zwischen %f und %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Ein Float größer als %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Ein Float kleiner als %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (benötigt)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Ungültiger Wert für %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Aufsteigend sortieren"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Keine"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Absteigend sortieren"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "Vorlageneinstellungen"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Dies ist der Name der Vorlage"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Es gibt bereits einen Eintrag mit dem selben dn: %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "Der Eintrag %s existiert nicht"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr "Dienst \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Tab \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr "Unbekanntes Feld \"%s\""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "Sekunden"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "Minuten"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "Stunden"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "Tage"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "Zugriffsregeln"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr "POSIX-Gruppe %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Zugriffskontrolllisten verwalten"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Rolle %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "ACL-Rollen"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr "Gruppe %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Gruppe des Benutzers"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Unbekannt"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "Aus Vorlage"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Unbekannter Eintrag '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "%s Vorlage"
+msgid "All users"
+msgstr "Alle Benutzer"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Zeigen %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Filter Fehler"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Der Filter ist unvollständig!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Warnung"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Berechtigungsfehler"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr "Objekt:"
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s zu erstellen."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr "Fehler:"
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Ihnen ist es nicht erlaubt, einen Snapshot für %s wiederherzustellen."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "KEIN LABEL"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Anlegen"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "Zugriffsregeln"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr "Ungültiger Wert:"
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Zugriffskontrolllisten verwalten"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr "FusionDirectory Schwerer Fehler"
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "ACL-Rollen"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr "Schwerer Fehler"
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Unbekannter Eintrag '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Alle Benutzer"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Leistungswarnung"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 "Die LDAP-Leistung ist mangelhaft: Die letzte Abfrage dauerte etwa %.2f "
 "Sekunden!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "während der Arbeit mit '%s' auf dem LDAP-Server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "während der Arbeit auf LDAP-Server '%s'"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Zeitstempel"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
+"Fehler beim Setzen einer Sperre. Bitte kontaktieren Sie die Entwickler!"
 
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr "Grund"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"Kann Sperrinformation für LDAP-Baum nicht erzeugen. Bitte kontaktieren Sie "
+"Ihren Administrator!"
 
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "Der LDAP-Server meldete: %s"
 
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Mehrere Sperren für das zu sperrende Objekt gefunden. Dies sollte nicht "
+"passieren - räume mehrere Referenzen auf."
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Wiederherstellen"
-
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr "Schnappschüsse wiederherstellen"
-
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Schnappschüsse"
-
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Liste der Abteilungen"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Abteilung"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Trotzdem bearbeiten"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Domäne"
@@ -1915,127 +2001,142 @@ msgstr "Domäne"
 msgid "domain"
 msgstr "Domäne"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organisation"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "Organisation"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Abteilung"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Abteilungen"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "Abteilung"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Eigenschaften"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Name von %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Ein Name für diesen %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Kurze Beschreibung von diesem %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Kategorie"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Kategorie von diesem %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr "Webseite"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Verwalter"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Verwalter von diesem %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Ort"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Land"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Land"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adresse"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Eine postalische Anschrift für diesen %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telefon"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Telefonnummer"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Name"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Domänen-Komponente"
@@ -2044,265 +2145,230 @@ msgstr "Domänen-Komponente"
 msgid "domain component"
 msgstr "Domänenkomponente"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "Land"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Standort"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "Ort"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Abteilungen verwalten"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Benutzer und Gruppen"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr "Gruppen und Rollen"
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr "Gruppen und Rollen verwalten"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Aufgaben"
 
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr "Aktion abgebrochen"
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
-msgstr "System %s wird derzeit installiert"
-
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr "Infrastrukturdienst"
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr "Aktion ausgelöst"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Rolle"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Rolleneigenschaften bearbeiten"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "POSIX-Eigenschaften bearbeiten"
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Benutzergruppen anzeigen"
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Organisatorische Rollen anzeigen"
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Anwendungsgruppen anzeigen"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Status"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
-msgstr "Gruppen von Gruppen anzeigen"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Zeige primäre Gruppen"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Gruppen und Rollen"
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Zeige Mail Gruppen"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Gruppen und Rollen verwalten"
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Zeige Samba Gruppen"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr "DSA-Einträge anzeigen"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Aktion auslösen"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Servergruppen anzeigen"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Aktion planen"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Gruppen von Arbeitsstationen anzeigen"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Gruppen von Terminals anzeigen"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Druckergruppen anzeigen"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Telefongruppen anzeigen"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
+msgstr "Aktion ausgelöst"
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "Unbekannter Typ: %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Objektgruppe"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Objektgruppeninformation"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Gruppe"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Name dieser Gruppe"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Kurze Beschreibung dieser Gruppe"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Besitzer"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Zusammengefasste Objekte"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Objektmitglied dieser Gruppe"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "System-Vertrauen"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Vertrauens-Modus"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Art der Authorisierung für diese Hosts"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "deaktiviert"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "Vollzugriff"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "erlaube Zugriff auf diese Hosts"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr "Nur dieser Gruppe erlauben, dieser Liste von Hosts zu verbinden"
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Liste der Gruppen"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Aktion auslösen"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Mitglieder"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Aktion planen"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Rolle"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Rolleninformation"
 
@@ -2320,8 +2386,8 @@ msgid "Description of the role"
 msgstr "Beschreibung der Rolle"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Telefonnummer"
 
@@ -2337,391 +2403,455 @@ msgstr "Rollenmitglieder"
 msgid "Add users for the role"
 msgstr "Benutzer für die Rolle hinzufügen"
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "ACL-Zuordnung"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "ACL-Zuordnung"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Zugriffssteuerungsrollen-Zuordnung"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Zuordnungen"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "ACL-Rollenzuordnungen für diese Basis"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr "ACL-Zuordnungsdialog"
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Zugriffssteuerungsrollen-Zuordnungsdialog"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Modus"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Unterbaum"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Nur Basis"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Anzuwendende Rolle"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Für alle Benutzer"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Diese ACL für alle LDAP-Benutzer übernehmen"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Mitglieder"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
-msgstr ""
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
+msgstr "Erweitert"
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "ACL-Zuordnung"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr "Warnmeldung"
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "ACL-Zuordnung"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Zugriffssteuerungsrollen-Zuordnung"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Zuordnungen"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "ACL-Rollenzuordnungen für diese Basis"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "ACL-Zuordnungen"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Liste der Benutzer"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Nachname"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Vorname"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Benutzer"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Benutzer sperren"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Benutzer entsperren"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Vorlage anwenden"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Neuen Benutzer aus Vorlage"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Benutzer bearbeiten"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Benutzer entfernen"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Benutzer"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Benutzer verwalten"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Konto-Sperrung"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Konto aktivieren"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Konto deaktivieren"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Benutzerkonto"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Benutzerkontoinformation"
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Enthält Einstellungen für diese Objekte: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Rollen für die Zugriffskontrolle"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "ACL Rolle"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Name für diese Rolle"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Kurze Beschreibung von dieser Rolle"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "Zugriffssteuerungsrollen"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Keine ACL-Einstellungen für diese Kategorie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "Enthält ACL für diese Objekte: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "ACL Kategorie bearbeiten"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "ACL-Kategorie zurücksetzen"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Liste verfügbarer ACL-Kategorien"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Alle Objekte im aktuellen Teilbaum"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr "ACL für \"%s\" bearbeiten"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "lesen"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "ACL-Rollenverwaltung"
+
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "ACL-Rollen verwalten"
+
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "schreiben"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Zeige/verstecke erweiterte Einstellungen"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Erstelle Objekte"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Objekte verschieben"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Objekte entfernen"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Berechtigungen für Eigentümer einräumen"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Vollständiges Objekt"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "ACL-Rollenverwaltung"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
-msgstr "ACL-Rollen verwalten"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Snapshots ermöglichen"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Dies ermöglicht es Ihnen, gewisse Stati von Einträgen zu speichern und diese"
+" später wieder herzustellen."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Basis für Snapshots"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Plugin-Konfiguration"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "FusionDirectory Plugin-Konfiguration"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Objektgruppen"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "Groups RDN"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Zweig in welchem die Objektgruppen gespeichert werden"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
-msgstr "Frage nach Passwort erzwingen"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Übersichtsseitenkonfiguration"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Übersichtsseitennamensschema"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Stellenzahl"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "Anzahl der Stellen nach dem Präfix"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Präfixe"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Anzahl an Tagen"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -2729,48 +2859,50 @@ msgstr "Plugins"
 msgid "Configuration for plugins"
 msgstr "Pluginkonfiguration"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Passwort-Wiederherstellung"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Einstellung für die Passwort Wiederherstellung"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Passwortwiederherstellungseinstellungen"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Aktivieren der Passwort-Wiederherstellung"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Absender Emailadresse"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "Emailadresse von der aus Mails verschickt werden"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Linkgültigkeit (Minuten)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Anzahl der Minuten bevor ein Wiederherstellungslink abläuft"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "Salt für Tokens"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2778,51 +2910,49 @@ msgstr ""
 "Nur eine Sicherheitsmaßnahme, Sie können egal was hier hineinschreiben, "
 "selbst zufällige Buchstaben"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Erlaube die Nutzung von alternativen Adressen"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Benutzer werden auch in der Lage sein, eine ihrer alternativen Adressen zur "
-"Wiederherstellung ihres Passworts, einzugeben"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Anmeldeattribut"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Erste Email"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Betreff"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Betreff der ersten Email"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Password recovery link"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Body (zuerst %s ist Login, zweiter ist Link)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2832,7 +2962,7 @@ msgstr ""
 "neuen Passwort fragt. Benutzen Sie %s für den Login und den "
 "Wiederherstellungslink."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2844,24 +2974,24 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Zweite Email"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Betreff der zweiten Email"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Passwort-Wiederherstellung erfolgreich"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Body (%s ist Login)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2870,7 +3000,7 @@ msgstr ""
 "Body der zweiten Email, die verschickt wird um zu bestätigen, dass das "
 "Passwort geändert wurde. Benutzen Sie %s für den Benutzerlogin."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2883,29 +3013,84 @@ msgstr ""
 "Ihr Passwort wurde geändert.\n"
 "Ihr Login ist immer noch %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr "Auslöser"
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Wann dieser Befehl aufgerufen wird"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr "Deaktiviert"
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr "Befehl"
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Der zu aufrufende Befehl"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Konfiguration"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "FusionDirectory Konfiguration"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Aussehen und Verhalten"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Sprache"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2914,41 +3099,41 @@ msgstr ""
 "verfügbar, wird die vom Browser nachgefragte verwendet. Diese Einstellung "
 "kann pro Nutzer überschrieben werden."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Aussehen"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Zu verwendendes Thema"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Zeitzone"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Zu verwendende Zeitzone"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Kerneinstellungen"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "LDAP Größenlimit"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 "Definiert die Anzahl der Einträge, die standardmäßig von LDAP geholt werden "
 "sollen."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Locking bearbeiten"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -2956,94 +3141,82 @@ msgstr ""
 "Prüfen ob ein Eintrag, der momentan bearbeitet wird, außerhalb von "
 "FusionDirectory zwischenzeitlich bearbeitet wurde."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Logging aktivieren"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Ereignisloggins auf Seiten von FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr "Aktiviert Schema-Überprüfung während des Logins."
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Snapshots ermöglichen"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-"Dies ermöglicht es Ihnen, gewisse Stati von Einträgen zu speichern und diese"
-" später wieder herzustellen."
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Basis für Snapshots"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "Die Basis wo Snapshots innerhalb des LDAP gespeichert werden sollen."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Passwort-Einstellungen"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "Stadard Passworthash"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "Standard hash, der verwendet werden soll"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Standardhash forcieren"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr "Forciert die Nutzung des Standard Passworthashs"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Minimale Passwortlänge"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Minimale Länge der Benutzerpasswörter"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Passwort Minimallänge unterscheidet sich"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr "Mindestanzahl der unterschiedlichen Buchstaben vom letzten Passwort"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Verwende ablaufende Konten"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
@@ -3051,33 +3224,33 @@ msgstr ""
 "Aktiviert shadow Attributtests während des Logins in FusionDirectory und "
 "forciert Passworterneuerung und oder Kontensperrung"
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "SASL Realm"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr "Attribut welchen im userPasswort Attribut gespeichert werden soll"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Anmeldung und Sitzung"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 "Welches LDAP Attribut soll als Loginname während des Logins verwendet "
 "werden."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Erzwinge verschlüsselte Verbindungen"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3085,212 +3258,231 @@ msgstr ""
 "Aktiviert PHP-Sicherheitschecks zur Forcierung des verschlüsselten Zugangs "
 "(https) zur Webschnittstelle."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Bei unverschlüsselten Verbindungen warnen"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 "Zeigt dem Benutzer eine Warnung  wenn http anstelle von https verwendet "
 "wird."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Lebensdauer der Sitzung"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr "Kopfdatenname"
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr "Schlüsselpfad"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr "Zertifikatspfad"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr "CA-Zertifikatspfad"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr "CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "System"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Anschluss"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Ablage für Personen und Gruppen"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "DN-Attribut für Personen"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
-msgstr "Zu verwendendes Attribut zu Beginn des Benutzers dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr "CN-Muster"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Strikte Namenspolicy"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr "Users RDN"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr "Postalisches Adressmuster"
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Debugging"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Fehler anzeigen"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
-"Zeigt PHP-Fehler in dem oberen Teil des Bildschirms. Dies sollte in "
-"produktiven Einrichtungen deaktiviert werden, da einige Passwörter enthalten"
-" sein könnten."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Maximale LDAP Abfragedauer"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
@@ -3298,11 +3490,11 @@ msgstr ""
 "Anhalten von LDAP-Aktionen wenn keine Antwort innerhalb der angegeben Anzahl"
 " von Sekunden erfolgt."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Protokolliere LDAP-Statistiken"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3310,23 +3502,31 @@ msgstr ""
 "LDAP Timingstatistiken mit dem Syslog verfolgen. Dies kann helfen, "
 "Indexproblem oder schlechte Suchfilter zu finden."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Debug Level"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Gewisse Informationen bei jedem Seitenladen anzeigen."
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Verschiedenes"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Zeige Zusammenfassung in Listen"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3335,274 +3535,289 @@ msgstr ""
 " eine kurze Zusammenfassung von Typ und Anzahl der Elemente in der Liste "
 "zeigt."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr "ACL-Reiter auf allen Objekten anzeigen"
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr "Gruppe oder Rolle"
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatisch"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "Hooks die aufgerufen werden wenn spezifische Aktionen passieren"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Gruppe %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Rolle %s"
+
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "Der Tab, der diesen hook betrifft"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Wann dieser Befehl aufgerufen wird"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Version"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
-msgstr "Befehl"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "Der zu aufrufende Befehl"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr "Ursprung"
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatisch"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Übersichtsseite"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Statistiken"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Statistiken über Benutzer"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Benutzerstatistiken"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Gruppenstatistiken"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Abgelaufene Konten"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Kennung"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Ablaufdatum"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Email"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr "Passwörter"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr "Statistik über Passwörter"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr "Passwörterstatistik"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Übersichtsseite"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Statistiken"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "Kennung"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "Abonnementstyp"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Startdatum"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "Enddatum"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Importieren"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3610,53 +3825,202 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Plan"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Gruppen und Rollen des Benutzers bearbeiten"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
-msgstr "Gruppenmitgliedschaft"
+msgid "Group memberships"
+msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
 msgstr "Rollenmitgliedschaft"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Passwort-Methode"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Zu verwendende Passworthash-Methode"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3664,274 +4028,323 @@ msgstr "Zu verwendende Passworthash-Methode"
 msgid "Password"
 msgstr "Passwort"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Passwort (Leer lassen wenn es nicht geändert werden soll)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Passwort Wiederholung"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Gleiches Passwort wie oben, um Fehler zu vermeiden"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Benutzer"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Benutzerkontoinformation"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Benutzerkonto"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Persönliche Informationen"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Nachname"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Nachname von diesem Benutzer"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Vorname"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Vorname von diesem Benutzer"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Kurze Beschreibung des Benutzers"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Bild"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "Der Avatar für diesen Benutzer"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Geschäftliche Adresse"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Zimmer-Nr."
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Raumnummer"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Geschäftliche Telefonnummer"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Mobiltelefon"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Geschäftliche Mobiltelefonnummer"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Pager"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Geschäftliche Faxnummer"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Homepage"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "Kontoinformation"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Bevorzugte Sprache"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Passwort des Benutzers"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Persönliche Kontaktinformation"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Anzeigename"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Private Adresse"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Privat-Telefon"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Telefonnummer (privat)"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Angabe zur Organisationseinheit"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Titel"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Abteilungs-Nr."
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Abteilungsnummer"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Angestellten-Nr."
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Personalnummer"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Anstellungsart"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr "Straße"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr "Straßenteil der Adresse"
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Postleitzahl"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "Passwörter ist im Verlauf alter Passwörter"
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr "Bestehender Wert das Passworts wurde nicht geändert"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Sie müssen das aktuelle Passwort eingeben, um fortfahren zu können."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Neues Passwort"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Das alte und neue Passwort sind sich zu ähnlich."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 "Das Passwort beinhaltet möglicherweise problematische Unicode-Zeichen!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referenzen"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Willkommen %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Abgeschlossen"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Vor"
 
@@ -4003,10 +4416,6 @@ msgstr "Administrator-Passwort:"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Status"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Momentaner Status"
@@ -4031,46 +4440,46 @@ msgstr ""
 "Dieser Dialog leistet die grundlegende Konfiguration der LDAP-Konnektivität "
 "für FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonyme Anmeldung an server '%s' ist fehlgeschlagen!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Verbindung als Benutzer '%s' ist fehlgeschlagen!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Wiederholen"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Verbindung als anonymer Benutzer zu Server '%s' war erfolgreich."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Aktualisieren"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Bitte geben Sie Ihren Benutzer und das zugehörige Passwort ein!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Verbindung als Benutzer '%s' zu Server '%s' war erfolgreich!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "PHP Modul- und Erweiterungsprüfung"
 
@@ -4086,115 +4495,93 @@ msgstr "Installationsprüfung"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Grundlegende Überprüfungen der PHP-Version und Erweiterungen."
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Prüfe PHP-Version"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
-msgstr "PHP muß in Version %s oder höher vorliegen."
+msgstr "PHP muss in Version %s oder höher vorliegen."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Bitte aktualisieren Sie auf eine unterstützte Version."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory benötigt dieses Modul um mit Ihrem LDAP-Server zu "
 "kommunizieren."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory benötigt dieses Modul für internationalisierte "
 "Schnittstellen."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
 "FusionDirectory benötigt dieses Modul um mit den unterschiedlichen Arten von"
-" Servern und Protokollen zu kommunizieren."
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
+" Servern und Protokollen zu kommunizieren."
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory benötigt dieses Modul für die Sambaintegration."
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory benötigt entweder 'mhash' oder das 'sha1' Modul um SSHA-"
-"Verschlüsselung nutzen zu können."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory benötigt dieses Modul um mit einem IMAP-Server zu "
 "kommunizieren."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 "FusionDirectory benötigt dieses Modul um Unicode-Zeichenketten zu verwalten."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "Imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory benötigt diese Erweiterung um Bilder zu verarbeiten."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "Komprimierungs-Modul"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory benötigt diese Erweiterung um Snapshots zu verwalten."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP verwendet diese Einstellungen für den Garbage Collector, um alte "
 "Sessions zu entfernen."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4203,7 +4590,7 @@ msgstr ""
 " Sitzung und den zugehörigen Cookie verlieren, bevor diese tatsächlich ihre "
 "Gültigkeit verlieren."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4211,12 +4598,12 @@ msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'session.gc_maxlifetime' und setzen Sie es "
 "auf 84600 oder höher."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Aus"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4224,13 +4611,13 @@ msgstr ""
 "Um FusionDirectory ohne Probleme benutzen zu können, muss die Option "
 "session.auto_start in Ihrer php.ini auf 'Off' gestellt werden."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'session.auto_start' und setzen Sie es auf "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4239,14 +4626,14 @@ msgstr ""
 "unter dieses Limit gesetzt, kann dies unreproduzierbare Fehler hervorrufen. "
 "Erhöhen Sie dies für größere Installationen."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Suchen nach 'memory_limit' in Ihrer php.ini und setzen auf '128M' oder "
 "höher."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4254,17 +4641,17 @@ msgstr ""
 "Diese Einstellung beeinflusst die Verarbeitung der Ausgabe. Stellen Sie "
 "diese auf 'off', um die Leistung zu erhöhen."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'implicit_flush' und setzen Sie es auf "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Die Ausführungszeit sollte mindestens 30 Sekunden betragen."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4272,7 +4659,7 @@ msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'max_execution_time' und setzen Sie es auf "
 "'30' oder höher."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4281,110 +4668,112 @@ msgstr ""
 "setzen. PHP wird in dieser Einstellung keine Informationen über Ihren "
 "laufenden Server senden."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Suchen Sie in Ihrer php.ini nach 'expose_php' und setzen Sie es auf 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrieren"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "LDAP-Inspektion"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analysieren Sie Ihr aktuelles LDAP nach Kompatibilität mit FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Prüfe Objekt-Klassen des Wurzelobjektes"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Prüfe Berechtigungen auf die LDAP-Datenbank"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Prüfe auf unsichtbare Benutzer"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Prüfe auf Superadministrator"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Prüfe auf Benutzer ausserhalb des Benutzerbaums"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Prüfe auf Gruppen ausserhalb des Gruppenbaums"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Prüfe auf unsichtbare Abteilungen"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Prüfe auf doppelte UID Nummern"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Prüfe auf doppelte GID Nummern"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "LDAP-Abfrage fehlgeschlagen."
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Fehlgeschlagen"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Fehlende FusionDirectory Objektklasse '%s'!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Bitte überprüfen Sie Ihre Installation."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4393,124 +4782,170 @@ msgstr ""
 "Die strukturelle Objekt-Typ Ihres Wurzel-Objektes kann nicht konvertiert "
 "werden. Bitte fügen Sie die Objekt-Klasse '%s' manuell hinzu."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"%s Benutzer(innen) gefunden, die nicht in FusionDirectory sichtbar sein "
-"werden oder unvollständig sind."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr "Benutzermigration"
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Migrationsfehler"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
-msgstr "Kann Eintrag \"%s\" nicht migrieren:"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Gruppen"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Rollen"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "Es gibt kein FusionDirectory Administratorkonto innerhalb Ihres LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr "Gibt alle Rechte auf alle Objekte"
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr "Einige Standard-ACL-Rollen fehlen"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
-msgstr "Kann ACL-Rolle \"%s\" nicht hinzufügen:"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Verschiebe Benutzer in den konfigurierten Benutzerbaum"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
-msgstr "Eintrag wird verschoben von"
-
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "an"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Die folgenden Referenzen werden aktualisiert"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
-"Es wurden %s Gruppen ausserhalb des konfigurierten Baums '%s' gefunden."
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr "Gruppen in den konfigurierten Gruppenbaum verschieben"
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Fand %s Abteilungen, die nicht in FusionDirectory sichtbar sein werden."
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4525,7 +4960,7 @@ msgstr "Abschluß - Schreiben der Konfigurationsdatei"
 msgid "Write configuration file"
 msgstr "Schreibe Konfigurationsdatei"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4533,20 +4968,17 @@ msgstr ""
 "Ihre Konfigurationsdatei ist momentan für jeden lesbar. Bitte ändern Sie die"
 " Zugriffsrechte!"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "Die Konfiguration ist momentan nicht lesbar oder existiert nicht."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Nach dem Herunterladen und dem Plazieren der Datei unter %s, bitte "
-"vergewissern Sie sich dass der Benutzer unter dem der Webserver läuft, in "
-"der Lage ist %s zu lesen. Anderen Nutzern sollte dies nicht möglich sein."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4563,124 +4995,27 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"Auf das als Compile-Verzeichnis angegegebene Verzeichnis '%s' kann nicht "
-"zugegriffen werden!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr "FusionDirectory Konfiguration %s/%s ist nicht lesbar. Abgebrochen."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr "Warnung: <a href=\"%s\">Sitzung ist nicht verschlüsselt!</a>"
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Email-Adresse"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Kontaktieren Sie Ihren Administrator, es gab ein Problem mit dem Mailserver"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "Das Token ist nicht gültig"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-"Es gab ein Problem mit dem Mailserver, Bestätigungsmail wurde nicht "
-"verschickt"
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "PHP-Konfiguration"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Schwerer Fehler: Register globals ist aktiviert. FusionDirectory wird Logins"
-" verweigern sollte dies nicht von einem Administrator behoben werden."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Passwort-Änderung"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr "Ihr Passwort ist fast abgelaufen, bitte setzen Sie ein neues!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Der verfügbare Arbeitsspeicher wird knapp!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Prüfung der Benutzer-ACLs deaktiviert"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Erweiterung"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-"Schwerer Fehler: Kann keine Plugin-Definitionen für Plugin '%s' finden ('%s'"
-" ist keine Datei)!"
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Konfigurationsfehler"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4688,107 +5023,26 @@ msgstr ""
 "FATAL: es wurden nicht alle POST-Variablen von PHP übertragen - bitte "
 "informieren Sie den Administrator!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Anmelden"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-"FusionDirectory Konfiguration %s/%s ist nicht lesbar. Bitte starten Sie "
-"fusiondirectory-setup --check-config um dies zu beheben."
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Smarty-Fehler"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Ihre FusionDirectory Sitzung ist abgelaufen!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr "Keine Sitzung gefunden!"
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr "LDAP-Schemafehler"
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Bitte geben Sie einen gültigen Benutzernamen ein!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Bitte geben Sie Ihr Passwort ein!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Bitte überprüfen Sie die Kombination von Benutzernamen und Passwort."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Das Konto ist gesperrt. Bitte benachrichtigen Sie den Administrator!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Ihr Browser hat Cookies deaktiviert. Bitte aktivieren Sie zunächst Cookies "
-"und laden anschliessend diese Seite neu, bevor Sie sich anmelden!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filter"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4805,35 +5059,23 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Zeige Vorlagen"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Zeige funktionale Benutzer"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Zeige POSIX Benutzer"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Zeige Mail Benutzer"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Zeige/verstecke erweiterte Einstellungen"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Zeige Samba Benutzer"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Vollständiges Objekt"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
 msgid_plural "There are %1 expired accounts"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Es gibt ein abgelaufenes Konto"
+msgstr[1] "Es gibt %1 abgelaufene Konten"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
-msgstr "Es gibt keinen abgelaufenen Zugang"
+msgid "There are no expired accounts"
+msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
@@ -4882,8 +5124,8 @@ msgstr[0] "Es gibt 1 Benutzer:"
 msgstr[1] "Es gibt %1 Benutzer:"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4894,15 +5136,15 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
-msgstr "Keiner von diesen ist gesperrt"
+msgid "None of them are locked"
+msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4950,10 +5192,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Füge erforderliche Objekt-Klassen zum Basis-Objekt hinzu"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Aktuell"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Nach der Migration"
 
@@ -4975,13 +5219,10 @@ msgstr "FusionDirectory wird ohne eine entsprechende Änderung laufen."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Dies scheint das erste Mal zu sein, dass Sie FusionDirectory starten - wir "
-"haben noch keine Konfiguration gefunden. Dieser einfache Assistent hilft "
-"Ihnen bei der Einrichtung."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -5025,13 +5266,13 @@ msgstr "Zum Fortsetzen:"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Klicken Sie auf die Schaltfläche 'Weiter' wenn Sie fertig sind."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -5097,7 +5338,12 @@ msgstr ""
 "erfolgen wird, verwenden Sie den 'Zeige Änderungen'-Knopf um das LDIF zu "
 "sehen."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Alle auswählen"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Zeige Änderungen"
 
@@ -5212,14 +5458,28 @@ msgid "I forgot my password"
 msgstr "Ich habe mein Passwort vergessen"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Ihr Browser hat Cookies deaktiviert. Bitte aktivieren Sie zunächst Cookies "
+"und laden anschliessend diese Seite neu, bevor Sie sich anmelden!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Hier klicken zum Anmelden"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr "Zwei-Faktor-Authentifizierung"
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5234,6 +5494,59 @@ msgstr ""
 "Wenn Sie sicher sind, drücken Sie 'Entfernen' um fortzufahren oder "
 "'Abbrechen' zum Abbruch."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr "Archiv"
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Ab"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Aktionen"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filter"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Suche in Teilbäumen"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Filter anwenden"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5243,28 +5556,26 @@ msgstr ""
 msgid "Continue"
 msgstr "Fortsetzen"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Ein Zugriffskonflikt wurde festgestellt"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Nur Lesen"
 
@@ -5281,6 +5592,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Übertragen"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Hauptmenü"
@@ -5299,6 +5615,10 @@ msgid "Session expires in %d!"
 msgstr "Sitzung läuft ab in %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5311,23 +5631,24 @@ msgstr ""
 "bearbeiten ist es Filter zu verwenden und die Größenbeschränkungen auf einen"
 " sinnvollen Wert einzustellen."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Bitte entscheiden Sie, wie für diese Sitzung verfahren werden soll"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
-"Ignoriere diesen Fehler und zeige alle vom LDAP-Server gelieferten Einträge"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"Ignoriere diesen Fehler und zeige alle Einträge, die innerhalb der "
-"Größenbeschränkung liegen"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Setzen"
diff --git a/locale/el_GR/fusiondirectory.po b/locale/el_GR/fusiondirectory.po
index 46e0595da3719c9fffc08666a33268c1aa925a45..ab202f2e58ca889e214a0f230e7c8b1585d3dc57 100644
--- a/locale/el_GR/fusiondirectory.po
+++ b/locale/el_GR/fusiondirectory.po
@@ -4,148 +4,556 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2021
 # LOUKAS SKOUROLIAKOS, 2021
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: LOUKAS SKOUROLIAKOS, 2021\n"
-"Language-Team: Greek (Greece) (https://www.transifex.com/fusiondirectory/teams/12202/el_GR/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Greek (Greece) (https://app.transifex.com/fusiondirectory/teams/12202/el_GR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: el_GR\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Σφάλμα"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Τύπος"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Ετικέτα"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
-"Παρακαλούμε διορθώστε το παραπάνω σφάλμα και φορτώστε την σελίδα ξανά."
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Ημερομηνία"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Περιγραφή"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Αντικείμενο"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Στιγμιότυπα"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Σφάλμα ρύθμισης"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Χρονική ένδειξη"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Σφάλμα LDAP"
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
 
-#: include/class_config.inc:325
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Παρακαλώ επιλέξτε τις επιθυμητές εγγραφές"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "πρότυπο %s"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Πρότυπο"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Από πρότυπο"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Δημιουργία"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Εξαγωγή λίστας"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Επεξεργασία"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Αποκοπή"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Αντιγραφή"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Επικόλληση"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Εφαρμογή προτύπου"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Αφαίρεση"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Δημιουργία στιγμιότυπου"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Επαναφορά στιγμιοτύπου"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Δεν επιτρέπεται να δημιουργήσετε ένα στιγμιότυπο για  %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Δεν επιτρέπεται να επαναφέρετε ένα στιγμιότυπο για  %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Μετάβαση στον ριζικό τμήμα"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Root"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Μετάβαση ένα τμήμα επάνω"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Πάνω"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Αρχή (Home)"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Επαναφόρτωση λίστας"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Ρύθμιση"
+
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr ""
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgstr ""
+
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr "Αδυναμία bind σε LDAP. Επικοινωνήστε με τον διαχειριστή συστήματος"
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Όλες οι κατηγορίες"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Ο λογαριασμός μου"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Σελίδα "
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "δημιουργήθηκε από"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Αρχείο"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Γραμμή"
 
@@ -169,1717 +577,1404 @@ msgstr "στατικό"
 msgid "method"
 msgstr "μέθοδος"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Ανίχνευση"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Τύπος"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Ορίσματα"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Αποστολή αναφοράς σφάλματος"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Εναλλαγή πληροφοριών"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Πάνω"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Κάτω"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Ταξινόμηση προς τα κάτω"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Ταξινόμηση προς τα πάνω"
-
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Επιλογή όλων"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "δημιουργήθηκε από"
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Μετάβαση στον ριζικό τμήμα"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Root"
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Μετάβαση ένα τμήμα επάνω"
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Αρχή (Home)"
-
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Επαναφόρτωση λίστας"
-
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Ενέργειες"
-
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Αντιγραφή"
-
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Αποκοπή"
-
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Επικόλληση"
-
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Αποκοπή αυτής της εγγραφής"
-
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Αντιγραφή αυτής της εγγραφής"
-
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Επαναφορά στιγμιοτύπων"
-
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Εξαγωγή λίστας"
-
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Επαναφορά στιγμιοτύπου"
-
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Δημιουργία στιγμιότυπου"
-
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Δημιουργία νέου στιγμιότυπου από αυτό το αντικείμενο"
-
 #: include/class_timezone.inc:52
 #, php-format
 msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Όνομα προτύπου"
+
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Πρότυπο"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Όνομα προτύπου"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Εσωτερικό σφάλμα"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Σύνδεση"
 
-#: include/class_logging.inc:81
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Logging failed: %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_logging.inc:103
-#, php-format
-msgid "Invalid option \"%s\" specified!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
-#, php-format
-msgid "Cannot change password, unknown user \"%s\""
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/login/class_LoginMethod.inc:56
+#, php-format
 msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Υποβολή"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Παρακαλώ καθορίστε ένα έγκυρο όνομα χρήστη!"
+
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Σφάλμα LDAP"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Εφαρμογή φίλτρου"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Searches in %s"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Έχει ξεπεραστεί το όριο %d καταχωρίσεων!"
+msgid "Header user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
-#, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Ρύθμιση"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Διευθύνση ηλεκτρονικής αλληλογγραφίας"
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "ελλιπής"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Μοιραίο σφάλμα"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "There are several accounts using email \"%s\""
 msgstr ""
-"ΣΦΑΛΜΑ: Σφάλμα σύνδεσης στον διακομιστή LDAP. Ο διακομιστής αποκρίθηκε '%s'."
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
-"Η σύνδεση (uid) δεν είναι μοναδική μέσα στο δέντρο LDAP. Παρακαλούμε "
-"επικοινωνήστε με τον διαχειριστή του συστήματος σας."
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Σφάλμα πιστοποίησης"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
-"Σφάλμα κατά την προσθήκη κλειδώματος. Επικοινωνήστε με τους προγραμματιστές!"
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
-"Αποτυχία δημιουργίας κλειδώματος στο δέντρο LDAP. Παρακαλούμε επικοινωνήστε "
-"με τον διαχειριστή του συστήματος σας."
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "Ο διακομιστής LDAP επίστρεψε: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr ""
+"Οι ρυθμίσεις %s/%s  του FusionDirectory δεν είναι αναγνώσιμες. Εγκατάλειψη"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Προειδοποίηση"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "ελλιπής"
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Συνέχεια οπωσδήποτε"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Επεξεργασία οπωσδήποτε"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
+msgstr ""
+
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1722
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Αδύνατη η εγγραφή σε αρχείο αναθεώρησης!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Προειδοποίηση LDAP "
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Αδυναμία λήψης πληροφοριών σχήματος για τον εξυπηρετητή. Δεν υπάρχει η "
 "δυνατότητα ελέγχου σχήματος!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Δαθέσιμες κλάσεις"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Αδυναμία εντοπισμού αρχείου '%s' - παρακαλώ εκτελέστε το '%s' για να το "
-"διορθώσετε"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Σύνδεση"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Άδεια"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Ακύρωση όλων"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Αδυναμία επικόλλησης"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Αυτό το αντικείμενο θα διαγραφεί!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Αυτό το '%s' αντικείμενο θα διαγραφεί!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "This object will be deleted: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "No %s server defined!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:275
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot query %s database!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr ""
-
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr ""
-
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "Παράδειγμα:"
-
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Ακύρωση"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Εφαρμογή"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Αποθήκευση"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Προσθήκη"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Προσθήκη του %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Διαγραφή"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Διαγραφή %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Επεξεργασία..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Επεξεργασία %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Πίσω"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Ιανουάριος"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Φεβρουάριος"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Μάρτιος"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Απρίλιος"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Μάιος"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Ιούνιος"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Ιούλιος"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Αύγουστος"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Σεπτέμβριος"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Οκτώβριος"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Νοέμβριος"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Δεκέμβριος"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Κυριακή"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Δευτέρα"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Τρίτη"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Τετάρτη"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Πέμπτη"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Παρασκευή"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Σάββατο"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "λειτουργία ανάγνωσης"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "λειτουργία προσθήκης"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "λειτουργία τροποποίησης"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "λειτουργία διαγραφής"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "λειτουργία αναζήτησης"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "πιστοποίηση"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "LDAP %s απέτυχε!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "Η λειτουργία LDAP απέτυχε!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Αντικείμενο"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Η αποστολή απέτυχε!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Αποτυχία αποστολής: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Αποτυχία επικοινωνίας με την υπηρεσία υποδομής: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "Το '%s'  χρησιμοποιείται ήδη."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Το αρχείο '%s' δεν υπάρχει!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Αδυναμία ανοίγματος αρχείου '%s' για ανάγνωση!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Αδυναμία ανοίογματος αρχείου `%s' για εγγραφή!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Αδύνατη η διαγραφή αρχείου '%s'!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Αδύνατη η δημιουργία του φακέλου '%s'!"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Αδύνατη η διαγραφή του φακέλου '%s'"
-
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Έλεγχος για υποστήριξη %s "
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Παρακαλώ επιλέξτε τις επιθυμητές εγγραφές"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Όνομα"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Περιγραφή"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Εκκίνηση υπηρεσίας"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Τερματισμός υπηρεσίας"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Επανεκκίνηση υπηρεσίας"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Βάση"
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "'Αγνωστος τύπος: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "Ανύπαρκτο dn: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Κανένα"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Άγνωστο"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Ώρες"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Λεπτά"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Ημερομηνία"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Χρόνος"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "Το αρχείο είναι κενό"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Αποστολή"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Λήψη"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Αφαίρεση"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Επεξεργασία"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Ένας ακέραιος μεταξύ %d και %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Ένας ακέραιος μεγαλύτερος από %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Ένας ακέραιος μικρότερος από %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Δεκαδικός μεταξύ %f και %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (απαιτείται)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr ""
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Ταξινόμηση προς τα κάτω"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Κανένα"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Ταξινόμηση προς τα πάνω"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "Ρυθμίσεις προτύπου"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Αυτό είναι το όνομα του προτύπου"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr "Αδυναμία υπολογισμού dn: δεν υπάρχει γονική  tab class για \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Υπάρχει ήδη μια καταχώριση με το ίδιο dn : %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "Η καταχώριση  %s  δεν υπάρχει."
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Tab \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "δευτερόλεπτα"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "λεπτά"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "ώρες"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "ημέρες"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Ρόλος %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Ρόλοι ACL "
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr "Ομάδα %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Ομάδα του χρήστη"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Άγνωστο"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "Από πρότυπο"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "πρότυπο %s"
+msgid "All users"
+msgstr "Όλοι οι χρήστες"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Εμφάνιση %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Σφάλμα φίλτρου"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"Η σύνδεση (uid) δεν είναι μοναδική μέσα στο δέντρο LDAP. Παρακαλούμε "
+"επικοινωνήστε με τον διαχειριστή του συστήματος σας."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Το φίλτρο δεν είναι ολοκληρωμένο! "
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Προειδοποίηση"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Σφάλμα δικαιωμάτων"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Δεν επιτρέπεται να δημιουργήσετε ένα στιγμιότυπο για  %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Δεν επιτρέπεται να επαναφέρετε ένα στιγμιότυπο για  %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "ΧΩΡΙΣ ΕΤΙΚΕΤΑ"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Δημιουργία"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Ρόλοι ACL "
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Όλοι οι χρήστες"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr ""
+
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Χρονική ένδειξη"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
+"Σφάλμα κατά την προσθήκη κλειδώματος. Επικοινωνήστε με τους προγραμματιστές!"
 
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"Αποτυχία δημιουργίας κλειδώματος στο δέντρο LDAP. Παρακαλούμε επικοινωνήστε "
+"με τον διαχειριστή του συστήματος σας."
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "Ο διακομιστής LDAP επίστρεψε: %s"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Στιγμιότυπα"
-
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Κατάλογος των τμημάτων"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Τμήμα"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Επεξεργασία οπωσδήποτε"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Τομέας"
@@ -1888,127 +1983,142 @@ msgstr "Τομέας"
 msgid "domain"
 msgstr "Τομέας"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Οργανισμός"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "οργανισμός"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Τμήμα"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Τμήματα"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "τμήμα"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Ιδιότητες"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Όνομα του %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Ένα όνομα για το %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Σύντομη περιγραφή του %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Κατηγορία"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Κατηγορία του %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Διαχειριστής"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Διαχειριστής του %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Τοποθεσία"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Πολιτεία"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Χώρα"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Διεύθυνση"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Μια ταχυδρομική διεύθυνση για %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Τηλέφωνο"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Αριθμός τηλεφώνου"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Φαξ"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "Αριθμός φαξ"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Όνομα"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Συστατικό στοιχείο τομέα"
@@ -2017,267 +2127,232 @@ msgstr "Συστατικό στοιχείο τομέα"
 msgid "domain component"
 msgstr "συστατικό στοιχείο τομέα"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "χώρα"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Περιοχή"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "τοπικότητα"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Διαχείριση τμημάτων"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Χρήστες και ομάδες"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr "Ομάδες και ρόλοι"
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr "Διαχείριση ομάδων και ρόλων"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Εργασίες"
 
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Αναφορά"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "System %s is currently installing"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr "Υπηρεσία υποδομής"
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Κατάσταση"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Ρόλος"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Επεξεργασία ιδιοτήτων ρόλου"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Ομάδες και ρόλοι"
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Επεξεργασία ιδιοτήτων posix"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Διαχείριση ομάδων και ρόλων"
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Εμφάνιση ομάδων χρήστη"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Λίστα ρόλων οργανισμών"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Εκκίνηση ενέργειας"
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Εμφάνιση ομάδων εφαρμογών"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Προγραμματισμός εργασίας"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Εμφάνιση αρχικών ομάδων"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Εμφάνιση ομάδων αλληλογραφίας"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Εμφάνιση ομάδων samba"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Εμφάνιση ομάδων server"
-
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Εμφάνιση ομάδων σταθμών εργασίας"
-
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Εμφάνιση ομάδων τερματικού"
-
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Εμφάνιση ομάδων εκτυπωτή"
-
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Εμφάνιση ομάδων τηλεφώνου"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "'Αγνωστος τύπος: %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
-msgstr "Ανύπαρκτο dn: %s"
+msgid "Action called without error (result was \"%s\")"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Ομάδα αντικειμένου"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Πληροφορίες ομάδας αντικειμένου"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Ομάδα"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Όνομα αυτής της ομάδας"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Σύντομη περιγραφή αυτής της ομάδας"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Κάτοχος"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Αντικείμενα μέλους"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Αντικείμενα μέλους για αυτή την ομάδα"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Εμπιστοσύνη συστήματος"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Λειτουργία επιστοσύνης"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Τύπος εξουσιοδότησή για αυτά τα συστήματα"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "απενεργοποιημένο"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "Πλήρης Πρόσβαση"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "να επιτραπεί πρόσβαση σε αυτά τα host"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 "Επιτρέπεται σ'αυτή την ομάδα να συνδέεται στην ακόλουθη λίστα διακομιστών"
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 "Τοποθετηση σταθμών εργασίας και τερματικών στην ίδια ομάδα δεν επιτρέπεται"
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Λίστα ομάδων"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Εκκίνηση ενέργειας"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Μέλη"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Προγραμματισμός εργασίας"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Ρόλος"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Πληροφορίες ρόλου"
 
@@ -2295,8 +2370,8 @@ msgid "Description of the role"
 msgstr "Περιγραφή του ρόλου"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Αριθμός τηλεφώνου"
 
@@ -2312,182 +2387,170 @@ msgstr ""
 msgid "Add users for the role"
 msgstr "Προσθήκη χρηστών για το ρόλο"
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Ανάθεση ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Ανάθεση ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Ανάθεση ρόλων ελέγχου πρόσβασης"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Ανάθεσεις"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Αναθέσεις ρόλου ACL για αυτή την βάση"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Ανάθεσεις σε αντικείμενο ή υποδέντρο %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr "Διάλογος Ανάθεσης ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Διάλογος λίστας ελέγχου ανάθεσης ρόλων"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Λειτουργία"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr "Αυτό εφαρμόζεται σε ολόκληρο το υποδένδρο ή μόνο στη βάση;"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Υποδέντρο"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Base only"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Ρόλος για εφαρμογή"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Για όλους τους χρήστες"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Εφαρμογή αυτού του ACL για όλους τους χρήστες LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Μέλη"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr "Χρήστες ή ομάδες που ανατίθεται αυτός ο ρόλος."
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
-msgstr ""
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
+msgstr "Προχωρημένο"
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "Ανάθεση ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Ανάθεση ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Ανάθεση ρόλων ελέγχου πρόσβασης"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Ανάθεσεις"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "Αναθέσεις ρόλου ACL για αυτή την βάση"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
-msgstr "Ανάθεσεις σε αντικείμενο ή υποδέντρο %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "Αναθέσεις ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Λίστα χρηστών"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Επίθετο"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Βαπτιστικό"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Χρήστης"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Κλείδωμα χρηστών"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Ξεκλείδωμα χρηστών"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Εφαρμογή προτύπου"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Νέος χρήστης από πρότυπο"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Επεργασία χρήστη"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Αφαίρεση χρήστη"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Χρήστες"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Διαχείριση χρηστών"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Κλείδωμα λογαριασμού"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
@@ -2496,209 +2559,283 @@ msgstr ""
 "Μέθοδος κωδικού πρόσβασης \"%s\" δεν υποστηρίζει κλείδωμα. Ο λογαριασμός "
 "\"%s\" δεν έχει κλειδώσει!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Ξεκλείδωμα λογαριασμού"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Κλείδωμα λογαριασμού"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Λογαριασμός χρήστη"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Πληροφορίες λογαριασμού χρήστη"
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Περιέχει ρυθμίσεις για αυτά τα αντικείμενα: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Ρόλοι ελέγχου πρόσβασης"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "Ρόλος ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Ένα όνομα για αυτόν τον ρόλο"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Σύντομν περιγραφή περιγραφή για αυτό το ρόλο"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr "ACLs που είναι μέρος αυτής της ομάδας"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Δεν υπάρχουν ρυθμίσεις ACLs για αυτήν την κατηγορία"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL για αυτά τα αντικείμενα: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Επεξεργασία κατηγορίας ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Επαναφορά κατηγορίας ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Όλα τα αντικείμενα στο τρέχον υποδέντρο"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "ανάγνωση"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Διαχείριση ρόλων ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "εγγραφή"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Εμφάνιση.απόκρυψη προχωρημένων ρυθμίσεων"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Δημιουργία αντικειμένων"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Μετακίνηση αντικειμένων"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Αφαίρεση αντικειμένων"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Παροχή δικαιωμάτων σε ιδιοκτήτη"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Ολοκλήρωση αντικειμένου"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "Διαχείριση ρόλων ACL"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Ενεργοποίηση λήψεων στιγμιότυπων"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Ρυθμίσεις επεκτάσεων"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "Ρυθμίσεις επεκτάσεων του FusionDirectory"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Κλάδος στον οποίο θα αποθηκεύονται ομάδες αντικειμένων"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
-msgstr "Επιβολή εισαγωγής κωδικού"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Ρύθμιση Dashboard"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr "Ρύθμιση προσθέτου FusionDirectory dashboard"
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Όνομα σχήματος πίνακα dashboard"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Αριθμός ψηφίων"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "Αριθμός ψηφίων για χρήση μετά το πρόθεμα"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Προθέματα"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr "Προθέματα που χρησιμοποιούνται για ids υπολογιστή"
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "Πίνακας dashboard χρηστών που έχουν λήξει"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Αριθμός ημερών"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Πρόσθετα"
 
@@ -2706,48 +2843,50 @@ msgstr "Πρόσθετα"
 msgid "Configuration for plugins"
 msgstr "Ρύθμιση για πρόσθετα"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
-msgstr "Ενεργοποίηση ή όχι της ανάκτησης του κωδικού πρόσβασης"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Διεύθυνση ηλεκτρονικού ταχυδρομείου αποστολέα"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2755,58 +2894,56 @@ msgstr ""
 "Ως μέτρο ασφαλείας, μπορείτε να βάλετε οτιδήποτε εκεί, ακόμα και τυχαίους "
 "χαρακτήρες"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Να επιτρέπεται η χρήση εναλλακτικών διευθύνσεων."
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Οι χρήστες θα έχουν επίσης τη δυνατότητα να εισάγουν μία από τις "
-"εναλλακτικές τους διευθύνσεις για να ανακτήσουν τον κωδικό τους"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Πρώτο email"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Θέμα"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Θέμα του πρώτου email"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2818,31 +2955,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Δεύτερο email"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Θέμα του δεύτερου email"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Επιτυχής επαναφορά κωδικού πρόσβασης"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2855,29 +2992,84 @@ msgstr ""
 "Ο κωδικός σας άλλαξε.\n"
 "Η υνδεση σας είναι ακόμα %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Πότε καλείται αυτή η εντολή"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Η εντολή που θα κληθεί"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Διαμόρφωση"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "Ρυθμίσεις FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Εμφάνιση"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Γλώσσα"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2885,39 +3077,39 @@ msgstr ""
 "Γλώσσα της εφαρμογής. Αν «αυτόματη» ή μη διαθέσιμη, θα χρησιμοποιηθεί η "
 "γλώσσα του browser. Αυτή η ρύθμιση μπορεί να παρακαμφθεί ανά χρήστη."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Θέμα"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Θέμα που θα χρησιμοποιηθεί"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Ζώνη ώρας"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Ζώνη ώρας που θα χρησιμοποιηθεί"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Επεξεργασία κλειδώματος"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -2925,362 +3117,382 @@ msgstr ""
 "Ελέγξτε αν η εγγραφή που υφίσταται επεξεργασία έχει στο μεταξύ τροποποιηθεί "
 "έξω από FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Ενεργοποίηση λήψεων στιγμιότυπων"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Ρυθμίσεις κωδικού πρόσβασης"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Ελάχιστο μήκος κωδικού"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Ελάχιστο μήκος κωδικού χρήστη"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Ελάχιστη διαφοροποίηση κωδικού"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr "Ελάχιστος αριθμός διαφορετικών χαρακτήρων από τον τελευταίο κωδικό"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Χρήση λήξης λογαριασμού"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Επιβολή κρυπτογραφημένων συνδέσεων"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Προειδοποίηση αν η συνεδρία δεν είναι κρυπτογραφημένη"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 "θα εμφανίσει προειδοποίηση προς το χρήστη όταν το πρωτόκολλο http "
 "χρησιμοποιείται αντί του πρωτοκόλλου https "
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Διάρκεια συνεδρίας"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Όνομα συστήματος"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Θύρα"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Αυστηρή πολιτική ονοματοδοσίας"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr "Ενεργοποίηση αυστηρού ελέγχου στα ονόματα χρηστών και ομάδων"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "Κλάδος στον οποίο αποθηκεύονται χρήστες."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr "Κλάδος στον οποίο αποθηκεύονται ρόλοι ACL."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Αποσφαλμάτωση"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Προβολή σφαλμάτων"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Διάφορα"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3289,274 +3501,289 @@ msgstr ""
 "εμφανίζοντας μια σύντομη περίληψη του τύπου και του αριθμού των στοιχείων "
 "στη λίστα."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Ομάδα %s"
+
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Ρόλος %s"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Έκδοση"
+
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Πότε καλείται αυτή η εντολή"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "Η εντολή που θα κληθεί"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Πίνακας ελέγχου"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Στατιστικά"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Στατιστικά για τους χρήστες"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Στατιστικά χρηστών"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Στατιστικά ομάδων"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Λογαριασμοί που έχουν λήξει"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Σύνδεση"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Ημερομηνία λήξης"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Ηλ. διεύθυνση"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Πίνακας ελέγχου"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "Αναφορά"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Στατιστικά"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "Id"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "Τύπος συνδρομής"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Ημερομηνία Εκκίνησης "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Εισαγωγή"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3564,36 +3791,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Πρόγραμμα"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Επεξεργασία ομάδων και ρόλων του χρήστη"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3601,16 +3955,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Μέθοδος κωδικού"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Μέθοδος hash για χρήση κωδικού"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3618,158 +3994,207 @@ msgstr "Μέθοδος hash για χρήση κωδικού"
 msgid "Password"
 msgstr "Κωδικός πρόσβασης:"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Κωδικός Πρόσβασης (Αφήστε κενό εάν δεν επιθυμείτε να το αλλάξετε)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Κωδικός ξανά"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Ίδιος Κωδικός Πρόσβασης με τον προηγούμενο, για αποφυγή λαθών."
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Χρήστης"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Πληροφορίες λογαριασμού χρήστη"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Λογαριασμός χρήστη"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Προσωπικές πληροφορίες"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Επίθετο"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Το επίθετο του χρήστη."
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Όνομα"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Το όνομα του χρήστη"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Σύντομη περιγραφή του χρήστη"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Εικόνα"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "Το άβαταρ του χρήστη"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr "Πληροφοριών επαφή οργανισμού"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Ταχυδρομική διεύθυνση εταιρίας"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Αρ. δωματίου"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Αριθμός δωματίου"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Αριθμός τηλεφώνου εργασίας"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Κινητό"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Αριθμός κινητού τηλεφώνου εργασίας"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Βομβητής"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "Αριθμός βομβητή εργασίας"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Αριθμός φαξ εργασίας"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Ιστοσελίδα"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "Προσωπική ιστοσελίδα"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "Πληροφορίες λογαριασμού"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr "Λογαριασμός σύνδεσης αυτού του χρήστη."
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Προτιμώμενη γλώσσα"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Ο κωδικός του χρήστη"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Προσωπικές πληροφορίες επαφής"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Όνομα που εμφανίζεται"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 "Το όνομα με το οποίο πρέπει να εμφανίζεται ο χρήστης. Χρησιμοποιείται από το"
 " Exchange."
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr "Διεύθυνση οικίας"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Ταχυδρομική διεύθυνση οικίας"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Ιδιωτικό τηλέφωνο"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Αριθμός τηλεφώνου οικίας"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Πληροφορίες οργανισμού"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Τίτλος"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
@@ -3777,78 +4202,78 @@ msgstr ""
 "Τίτλος προσώπου στο οργανωτικό του πλαίσιο. Κάθε τίτλος είναι μια από τις "
 "πολλές τιμές αυτού του χαρακτηριστικού"
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Αρ. τμήματος"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Αριθμός τμήματος"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Αρ. Υπαλλήλου"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Αριθμός Υπαλλήλου"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Τύπος υπαλλήλου"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Ταχυδρομικός κώδικας"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
-msgstr "Δεν ήταν δυνατή η εύρεση του Ppolicy \"%s\" στο LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
+msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr "Δεν έχετε δικαίωμα αλλαγής του κωδικού σας"
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr "Θα πρέπει να περιμένετε %d δευτερόλεπτα για να αλλάξετε το κωδικό σας"
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "Ο κωδικός είναι στο ιστορικό παλιών κωδικών πρόσβασης."
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr "Ο κωδικός πρόσβασής σας δεν έχει αλλάξει από την τρέχουσα τιμή"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Θα πρέπει να εισάγετε τον κύριο κωδικό σας για να συνεχίσετε"
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
@@ -3856,41 +4281,41 @@ msgstr ""
 "Οι κωδικοί εισάγατε ως \"Νέο κωδικό\" και \"Επανάληψη νέου κωδικού\" δεν "
 "ταιριάζουν."
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Νέος κωδικός "
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Ο παλιός και ο νέος κωδικός πρόσβασης μοιάζουν πολύ"
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "Ο νέος κωδικός πρόσβασης περιέχει προβληματικούς χαρακτήρες Unicode!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Αναφορές"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Καλώς ήλθατε στο %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3962,10 +4387,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Κατάσταση"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3988,46 +4409,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Προσπάθεια ξανά"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Ανανέωση"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Παρακαλώ επαληθεύστε το όνομα χρήστη και τον κωδικό σας!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4043,387 +4464,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Μετακίνηση"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Έλεγχος έγκρισης για βάση δεδομένων  LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "'Έλεγχος για αόρατους χρήστες"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Έλεγχος για υπερδιαχειριστές "
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr "Έλεγχος για προεπιλεγμένους ρόλους και ομάδες στην ACL"
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Έλεγχος για χρήστες εκτός της δομής δεδομένων "
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Έλεγχος για ομάδες εκτός της δομής δεδομένων"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Ομάδες"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Ρόλοι"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4438,21 +4891,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4471,218 +4924,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-"Οι ρυθμίσεις %s/%s  του FusionDirectory δεν είναι αναγνώσιμες. Εγκατάλειψη"
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Διευθύνση ηλεκτρονικής αλληλογγραφίας"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Πρόσθετο"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Σφάλμα ρύθμισης"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Σύνδεση"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Παρακαλώ καθορίστε ένα έγκυρο όνομα χρήστη!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Παρακαλώ ελέγξτε το συνδυασμό όνομα χρήστη/κωδικός πρόσβασης."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Φίλτρο"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4699,25 +4986,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Εμφάνιση.απόκρυψη προχωρημένων ρυθμίσεων"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Ολοκλήρωση αντικειμένου"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4726,7 +5001,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4776,8 +5051,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4788,7 +5063,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4796,7 +5071,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4842,10 +5117,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Τρέχουσα"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Ύστερα από την μετάβαση"
 
@@ -4867,7 +5144,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4911,13 +5188,13 @@ msgstr "Για συνέχεια:"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Πατήστε το κουμπί 'Επόμενο' για να τελειώσετε."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -4979,7 +5256,12 @@ msgstr ""
 "καταχωρήσεις, χρησιμοποιήστε το κουμπί 'Εμφάνιση των αλλαγών' για να δείτε "
 "το LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Επιλογή όλων"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Εμφάνιση αλλαγών"
 
@@ -5090,14 +5372,26 @@ msgid "I forgot my password"
 msgstr "Ξεχάσατε τον κωδικό σας;"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Πατήστε εδώ για να συνδεθείτε"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr "Προειδοποίηση: Πρόκειται να διαγραφούν τα παρακάτω αντικείμενο"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5110,6 +5404,59 @@ msgstr ""
 "Αν είστε σίγουροι, πατήστε \"Διαγραφή\" για να συνεχίσετε ή \"Ακύρωση\" για "
 "να εγκαταλείψετε. "
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Κάτω"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Ενέργειες"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Φίλτρο"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Εφαρμογή φίλτρου"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5119,28 +5466,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Μόνο για ανάγνωση"
 
@@ -5157,6 +5502,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Υποβολή"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Κύριο"
@@ -5175,6 +5525,10 @@ msgid "Session expires in %d!"
 msgstr "Η συνεδρία λήγει σε  %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5182,20 +5536,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/en/fusiondirectory.po b/locale/en/fusiondirectory.po
index 2c96ec59868c8e46c6a83c319f41308fcb432acd..5fa9458123f347055e59df4e25357c3ddd2fbd74 100644
--- a/locale/en/fusiondirectory.po
+++ b/locale/en/fusiondirectory.po
@@ -1,6 +1,6 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR FusionDirectory Project
-# This file is distributed under the same license as the PACKAGE package.
+# This file is distributed under the same license as the FusionDirectory package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 #, fuzzy
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2017-07-24 11:13+0200\n"
+"POT-Creation-Date: 2020-03-20 16:34+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FusionDirectory project <contact@fusiondirectory.org>\n"
 "Language-Team: English\n"
@@ -18,4608 +18,4675 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: setup/class_setupStepLanguage.inc:30
-#: plugins/personal/generic/class_user.inc:387
-msgid "Preferred language"
+#: include/class_logging.inc:79 include/class_userinfo.inc:1112
+#: include/class_ldap.inc:944 include/class_ldap.inc:982
+#: include/functions.inc:402 include/functions.inc:531
+#: include/functions.inc:1306 include/functions.inc:1344
+#: include/functions.inc:1375 include/class_acl.inc:103
+msgid "Internal error"
 msgstr ""
 
-#: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
-msgid "Language setup"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
 msgstr ""
 
-#: setup/class_setupStepLanguage.inc:61
-msgid "This step allows you to select your preferred language."
+#: include/class_logging.inc:161
+#, php-format
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: setup/class_setupStepLanguage.inc:62
-msgid ""
-"At this point, you can select the site wide default language. Choosing "
-"\"automatic\" will use the language requested by the browser. This setting "
-"can be overriden per user."
+#: include/class_logging.inc:165
+msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: setup/class_setupStepLanguage.inc:69
-#: plugins/config/class_configInLdap.inc:451
-msgid "Automatic"
+#: include/class_logging.inc:218
+#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:389
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
+#: include/simpleplugin/class_multiPlugin.inc:108
+#: include/simpleplugin/class_simplePlugin.inc:689
+#: include/simpleplugin/class_simpleTabs.inc:69 include/class_config.inc:351
+#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
+#: include/password-methods/class_passwordMethodSasl.inc:66
+#: include/password-methods/class_passwordMethodSasl.inc:96
+#: include/class_userinfo.inc:237 include/login/class_LoginCAS.inc:66
+#: include/login/class_LoginCAS.inc:76 include/login/class_LoginCAS.inc:102
+#: include/login/class_LoginHTTPHeader.inc:48
+#: include/login/class_LoginHTTPHeader.inc:62
+#: include/login/class_LoginHTTPHeader.inc:72
+#: include/login/class_LoginHTTPHeader.inc:98 include/class_msgPool.inc:508
+#: include/management/snapshot/class_SnapshotHandler.inc:391
+#: include/management/snapshot/class_SnapshotHandler.inc:395
+#: include/management/class_management.inc:450
+#: include/management/class_management.inc:461
+#: include/management/class_management.inc:783
+#: include/management/class_management.inc:791
+#: include/management/class_managementListing.inc:251
+#: plugins/addons/dashboard/class_dashboardUsers.inc:192
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2 setup/setup_checks.tpl.c:5
+msgid "Error"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:33
-msgid "LDAP connection"
+#: include/class_logging.inc:218
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
-msgid "Location name"
+#: include/simpleplugin/class_Attribute.inc:619
+#: include/simpleplugin/attributes/class_SetAttribute.inc:250
+#, php-format
+msgid "%s (required)"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:36
-msgid "Name of this connexion to show in the LDAP server list"
+#: include/simpleplugin/class_Attribute.inc:670
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:169
+#: include/simpleplugin/attributes/class_FileAttribute.inc:116
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
-msgid "Connection URI"
+#: include/simpleplugin/class_Attribute.inc:951
+#, php-format
+msgid "Invalid: %s"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:41
-msgid "URI to contact the LDAP server. Usually starts with ldap://"
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:558
+#: include/simpleplugin/attributes/class_SetAttribute.inc:559
+#: include/simpleplugin/class_dialogAttributes.inc:728
+#: include/simpleplugin/class_dialogAttributes.inc:729
+#: include/management/class_management.inc:236
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:191
+msgid "Edit"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
-msgid "TLS connection"
+#: include/simpleplugin/attributes/class_StringAttribute.inc:152
+#, php-format
+msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:46
-msgid "Should TLS be used to connect to this LDAP server?"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:150
+#, php-format
+msgid "The value for multivalued field \"%s\" is not an array"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:37
-#: ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:388
+#, php-format
+msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
-#: setup/class_setupStepLdap.inc:127
-msgid "The LDAP directory base"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:528
+#: include/simpleplugin/attributes/class_SetAttribute.inc:529
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:56
-msgid "Authentication"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:542
+#: include/simpleplugin/attributes/class_SetAttribute.inc:543
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:59
-msgid ""
-"DN of the admin account to use for binding to the LDAP. Base is "
-"automatically appended."
+#: include/simpleplugin/attributes/class_SetAttribute.inc:569
+#: include/simpleplugin/attributes/class_SetAttribute.inc:570
+#: include/class_msgPool.inc:343
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:193
+#, php-format
+msgid "Delete"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:74
-msgid "Admin DN"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:652
+#, php-format
+msgid "Invalid value for %s"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
-msgid "Admin password"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:795
+#: include/class_config.inc:320
+#: include/password-methods/class_passwordMethod.inc:215
+#: include/class_userinfo.inc:1038 include/login/class_LoginMethod.inc:175
+#: include/class_ldap.inc:994 include/class_ldap.inc:1359
+#: include/functions.inc:438 include/functions.inc:485
+#: include/functions.inc:593
+#: include/management/snapshot/class_SnapshotHandler.inc:65
+#: include/management/snapshot/class_SnapshotHandler.inc:232
+#: include/management/snapshot/class_SnapshotHandler.inc:263
+#: include/management/snapshot/class_SnapshotHandler.inc:280
+#: include/management/snapshot/class_SnapshotHandler.inc:404
+#: include/management/snapshot/class_SnapshotHandler.inc:409
+#: plugins/config/class_recoveryConfig.inc:138
+#: plugins/addons/dashboard/class_dashboardUsers.inc:90
+#: plugins/addons/dashboard/class_dashboardUsers.inc:121
+#: plugins/addons/dashboard/class_dashboardUsers.inc:185
+#: plugins/addons/dashboard/class_dashboard.inc:78
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:66
+#: setup/class_setupStepMigrate.inc:466 setup/class_setupStepMigrate.inc:1054
+#: setup/class_setupStepMigrate.inc:1152 setup/class_setupStepConfig.inc:110
+msgid "LDAP error"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:77
-msgid "Password for the admin account to use for binding to the LDAP"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:83
-msgid "Status"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Current status"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:182
+#, php-format
+msgid ""
+"\"%s\" is not a valid value for attribute \"%s\" should be \"%s\" or \"%s\""
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Result of last attempt at checking LDAP binding and basic schemas"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#, php-format
+msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:107
-msgid "LDAP setup"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+msgid "file is empty"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:108
-msgid "LDAP connection setup"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+msgid "file not found"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:109
-msgid ""
-"This dialog performs the basic configuration of the LDAP connectivity for "
-"FusionDirectory."
+#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+msgid "file not readable"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:179
+#: include/simpleplugin/attributes/class_FileAttribute.inc:74
 #, php-format
-msgid "Anonymous bind to server '%s' failed!"
+msgid "%s (%d bytes)"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:181
+#: include/simpleplugin/attributes/class_FileAttribute.inc:121
 #, php-format
-msgid "Bind as user '%s' failed!"
+msgid "Invalid base64 data for attribute %s"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
-msgid "Retry"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:179
+#: include/simpleplugin/attributes/class_FileAttribute.inc:430
+#: include/simpleplugin/attributes/class_FileAttribute.inc:431
+msgid "Upload"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: include/simpleplugin/attributes/class_FileAttribute.inc:185
+#: include/simpleplugin/attributes/class_FileAttribute.inc:186
+msgid "Download"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_FileAttribute.inc:380
 #, php-format
-msgid "Anonymous bind to server '%s' succeeded."
+msgid "Cannot set value \"%s\", it contains invalid data: %s"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:188 setup/class_setupStepLdap.inc:192
-msgid "Refresh"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:390
+msgid ""
+"Cannot save user picture, FusionDirectory requires the PHP module \"imagick"
+"\" to be installed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:189
-msgid "Please specify user and password!"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:407
+#, php-format
+msgid "Invalid data, Imagick error: \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/class_FileAttribute.inc:440
+#: include/simpleplugin/attributes/class_FileAttribute.inc:441
+#: include/simpleplugin/class_dialogAttributes.inc:738
+#: include/simpleplugin/class_dialogAttributes.inc:739
+#: include/management/class_management.inc:281
+msgid "Remove"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: include/simpleplugin/attributes/class_IntAttribute.inc:50
 #, php-format
-msgid "Bind as user '%s' to server '%s' succeeded!"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#: include/simpleplugin/attributes/class_IntAttribute.inc:52
 #, php-format
-msgid ""
-"%s\n"
-"Schema \"%s\": %s"
+msgid "An integer larger than %d"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:212 setup/class_setupStepMigrate.inc:573
-#: setup/class_setupStepMigrate.inc:1004 setup/class_setupStepMigrate.inc:1123
-#: setup/class_setupStepMigrate.inc:1234 setup/class_setupStepMigrate.inc:1297
-#: setup/class_setupStepMigrate.inc:1341 include/functions.inc:846
-#: html/index.php:586 html/main.php:158 setup/setup_checks.tpl.c:8
-#: ihtml/themes/breezy/islocked.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:5
-msgid "Warning"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: setup/class_setup.inc:128
-msgid "Setup error"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:162
+#, php-format
+msgid "A float between %f and %f"
 msgstr ""
 
-#: setup/class_setup.inc:208
-msgid "Completed"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:164
+#, php-format
+msgid "A float larger than %f"
 msgstr ""
 
-#: setup/class_setup.inc:251
-msgid "Next"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:166
+#, php-format
+msgid "A float smaller than %f"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:30 setup/class_setupStepWelcome.inc:30
-#: setup/class_setupStepWelcome.inc:50
-msgid "Welcome"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:139
+#, php-format
+msgid "Invalid date in %s, should be newer than: %s"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:40
-msgid "Finish"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:142
+#, php-format
+msgid "Invalid date in %s, should be older than: %s"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:41
-msgid "Finish - write the configuration file"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:148
+#, php-format
+msgid "Error, incorrect date: %s"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:42
-msgid "Write configuration file"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:222
+#: include/simpleplugin/attributes/class_DateAttribute.inc:296
+msgid "Hours"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
-msgid ""
-"Your configuration file is currently world readable. Please update the file "
-"permissions!"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:227
+#: include/simpleplugin/attributes/class_DateAttribute.inc:301
+msgid "Minutes"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
-msgid "The configuration is currently not readable or it does not exists."
+#: include/simpleplugin/attributes/class_DateAttribute.inc:232
+msgid "Seconds"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
-#, php-format
-msgid ""
-"After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
-"shouldn't."
+#: include/simpleplugin/attributes/class_DateAttribute.inc:320
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+msgid "Date"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:206
-msgid "PHP module and extension checks"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:326
+msgid "Time"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:37
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:71
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:137
+#: include/simpleplugin/class_dialogAttributes.inc:716
+msgid "None"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:163
+#, php-format
 msgid ""
-"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
-"information</a>)"
+"The value \"%s\" for field \"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
-msgid "Installation check"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
+#: setup/class_setupStepLdap.inc:127
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:50
-msgid "Basic checks for PHP compatibility and extensions"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
-msgid "Checking PHP version"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:125
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
-#, php-format
-msgid "PHP must be of version %s or above."
+#: include/simpleplugin/class_simplePlugin.inc:353
+msgid "Template settings"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
-msgid "Please upgrade to a supported version."
+#: include/simpleplugin/class_simplePlugin.inc:356
+#: include/class_template.inc:49
+msgid "Template name"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
-msgid "FusionDirectory requires this module to talk with your LDAP server."
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "This is the name of the template"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
-msgid ""
-"FusionDirectory requires this module for an internationalized interface."
+#: include/simpleplugin/class_simplePlugin.inc:473
+#: include/simpleplugin/class_simplePlugin.inc:478
+#: include/simpleplugin/class_simplePlugin.inc:490
+#: include/class_standAlonePage.inc:123 include/functions.inc:353
+#: include/functions.inc:1868
+msgid "Fatal error"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
+#: include/simpleplugin/class_simplePlugin.inc:473
+msgid "Only main tab can compute dn"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"FusionDirectory requires this module to encode variables for javascript use."
+#: include/simpleplugin/class_simplePlugin.inc:480
+#, php-format
+msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: include/simpleplugin/class_simplePlugin.inc:492
+#, php-format
 msgid ""
-"FusionDirectory requires this module to filters a variable with a specified "
-"filter."
+"Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
-msgid "FusionDirectory requires this module for the samba integration."
+#: include/simpleplugin/class_simplePlugin.inc:1363
+#, php-format
+msgid "There is already an entry with the same dn : %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
+#: include/simpleplugin/class_simplePlugin.inc:1370
+#, php-format
+msgid "The entry %s is not existing"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid "FusionDirectory requires this module to talk to an IMAP server."
+#: include/simpleplugin/class_simplePlugin.inc:1576
+msgid ""
+"The object has changed since being opened in FusionDirectory. All changes that may "
+"be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:139
-msgid "mbstring"
+#: include/simpleplugin/class_simplePlugin.inc:1846
+#, php-format
+msgid "Service \"%s\""
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:140
-msgid "FusionDirectory requires this module to handle unicode strings."
+#: include/simpleplugin/class_simplePlugin.inc:1848
+#, php-format
+msgid "Tab \"%s\""
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:146
-msgid "imagick"
+#: include/simpleplugin/class_simplePlugin.inc:1911
+msgid "Failed to create a unique DN"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
-msgid "FusionDirectory requires this extension to handle images."
+#: include/simpleplugin/class_simplePlugin.inc:2005
+#, php-format
+msgid "Unknown field \"%s\""
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:153
-msgid "compression module"
+#: include/simpleplugin/class_simplePlugin.inc:2100
+msgid "The time the entry was added"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
-msgid "FusionDirectory requires this extension to handle snapshots."
+#: include/simpleplugin/class_simplePlugin.inc:2101
+msgid "The time the entry was last modified"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:164
-msgid ""
-"register_globals is a PHP mechanism to register all global variables to be "
-"accessible from scripts without changing the scope. This may be a security "
-"risk."
+#: include/simpleplugin/class_dialogAttributes.inc:211
+msgid "Add (dialog)"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:165
-msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
+#: include/simpleplugin/class_dialogAttributes.inc:561
+#, php-format
+msgid "POSIX group %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
-msgid "PHP uses this value for the garbage collector to delete old sessions."
+#: include/simpleplugin/class_dialogAttributes.inc:563
+#: plugins/config/class_configInLdap.inc:425
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
-msgid ""
-"Setting this value to one day will prevent loosing session and cookies "
-"before they really timeout."
+#: include/simpleplugin/class_dialogAttributes.inc:565
+#: plugins/config/class_configInLdap.inc:418
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
-msgid ""
-"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
-"higher."
+#: include/simpleplugin/class_dialogAttributes.inc:718
+msgid "Unknown"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213 setup/class_setupStepChecks.inc:221
-msgid "Off"
+#: include/simpleplugin/class_simpleTabs.inc:70
+#, php-format
+msgid ""
+"No plugin definitions found to initialize \"%s\", please check your "
+"configuration file."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
-msgid ""
-"In Order to use FusionDirectory without any trouble, the session.auto_start "
-"option in your php.ini should be set to 'Off'."
+#: include/simpleplugin/class_simpleTabs.inc:327
+#: include/class_CopyPasteHandler.inc:203
+#: include/management/class_management.inc:928
+#: include/management/class_management.inc:1078
+#: include/management/class_management.inc:1108
+#: include/management/class_management.inc:1197
+#: include/management/class_management.inc:1225
+#: include/management/class_management.inc:1242
+#: plugins/admin/users/class_userManagement.inc:85
+msgid "Permission"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
-msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+#: include/simpleplugin/class_simpleTabs.inc:407
+#, php-format
+msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
-msgid ""
-"FusionDirectory needs at least 128MB of memory. Setting it below this limit "
-"may cause errors that are not reproducable! Increase it for larger setups."
+#: include/simpleplugin/class_simpleTabs.inc:424
+#, php-format
+msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
-msgid ""
-"Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
+#: include/simpleplugin/class_helpersAttribute.inc:261
+msgid "B"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
-msgid ""
-"This option influences the PHP output handling. Turn this Option off, to "
-"increase performance."
+#: include/simpleplugin/class_helpersAttribute.inc:262
+msgid "KiB"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
-msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
+#: include/simpleplugin/class_helpersAttribute.inc:263
+msgid "MiB"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
-msgid "The Execution time should be at least 30 seconds."
+#: include/simpleplugin/class_helpersAttribute.inc:264
+msgid "GiB"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
-msgid ""
-"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
+#: include/simpleplugin/class_helpersAttribute.inc:265
+msgid "TiB"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
-msgid ""
-"Increase the server security by setting expose_php to 'off'. PHP won't send "
-"any information about the server you are running in this case."
+#: include/simpleplugin/class_helpersAttribute.inc:279
+msgid "seconds"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
-msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
+#: include/simpleplugin/class_helpersAttribute.inc:280
+msgid "minutes"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:222
-msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
+#: include/simpleplugin/class_helpersAttribute.inc:281
+msgid "hours"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:223
-msgid ""
-"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+#: include/simpleplugin/class_helpersAttribute.inc:282
+msgid "days"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:133 include/class_msgPool.inc:486
-#: setup/setup_checks.tpl.c:2 ihtml/themes/breezy/msg_dialog.tpl.c:14
-msgid "Ok"
+#: include/simpleplugin/class_simpleService.inc:114
+msgid "Get service status"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
-msgid "Migrate"
+#: include/simpleplugin/class_simpleService.inc:115
+msgid "Start service"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:223 setup/class_setupStepMigrate.inc:224
-msgid "LDAP inspection"
+#: include/simpleplugin/class_simpleService.inc:116
+msgid "Stop service"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:225
-msgid "Analyze your current LDAP for FusionDirectory compatibility"
+#: include/simpleplugin/class_simpleService.inc:117
+msgid "Restart service"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:233
-msgid "Give all rights on users in the given branch"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr ""
+
+#: include/class_config.inc:149 include/class_config.inc:282
+#: include/class_config.inc:932 include/class_config.inc:944
+#: include/password-methods/class_passwordMethodSsha.inc:84
+#: include/class_standAlonePage.inc:146 include/functions.inc:420
+#: include/class_timezone.inc:51 html/main.php:168 html/index.php:93
+msgid "Configuration error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:239
+#: include/class_config.inc:278
+#, php-format
 msgid ""
-"Allow users to edit their own information (main tab and posix use only on "
-"base)"
+"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"Please check you are not using a fusiondirectory.secrets file while your "
+"passwords are not encrypted."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:245
-msgid "Allow users to edit their own password (use only on base)"
+#: include/class_config.inc:320
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:258
-msgid "Inspecting object classes in root object"
+#: include/class_config.inc:351
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:259
-msgid "Checking permission for LDAP database"
+#: include/class_config.inc:933
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:260
-msgid "Checking for invisible users"
+#: include/class_config.inc:945
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:261
-msgid "Checking for super administrator"
+#: include/class_config.inc:1059
+msgid "All categories"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:262
-msgid "Checking for default ACL roles and groups"
+#: include/class_config.inc:1201
+msgid "My account"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
-msgid "Checking for users outside the people tree"
+#: include/class_passwordRecovery.inc:87 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
-msgid "Checking for groups outside the groups tree"
+#: include/class_passwordRecovery.inc:121
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
-msgid "Checking for invisible departments"
+#: include/class_passwordRecovery.inc:245
+#, php-format
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
-msgid "Checking for duplicated UID numbers"
+#: include/class_passwordRecovery.inc:248
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
-msgid "Checking for duplicated GID numbers"
+#: include/class_passwordRecovery.inc:286
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:329 setup/class_setupStepMigrate.inc:488
-#: setup/class_setupStepMigrate.inc:565 setup/class_setupStepMigrate.inc:700
-#: setup/class_setupStepMigrate.inc:901 setup/class_setupStepMigrate.inc:977
-#: setup/class_setupStepMigrate.inc:1100 setup/class_setupStepMigrate.inc:1193
-#: setup/class_setupStepMigrate.inc:1271 setup/class_setupStepMigrate.inc:1315
-msgid "LDAP query failed"
+#: include/class_passwordRecovery.inc:289
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:330 setup/class_setupStepMigrate.inc:489
-#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:701
-#: setup/class_setupStepMigrate.inc:902 setup/class_setupStepMigrate.inc:978
-#: setup/class_setupStepMigrate.inc:1101 setup/class_setupStepMigrate.inc:1194
-#: setup/class_setupStepMigrate.inc:1272 setup/class_setupStepMigrate.inc:1316
-msgid "Possibly the \"root object\" is missing."
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid ""
+"The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:346 setup/class_setupStepMigrate.inc:369
-#: setup/class_setupStepMigrate.inc:420 setup/class_setupStepMigrate.inc:500
-#: setup/class_setupStepMigrate.inc:511 setup/class_setupStepMigrate.inc:803
-msgid "Failed"
+#: include/class_passwordRecovery.inc:352
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:347
-#, php-format
-msgid "Missing FusionDirectory object class '%s'!"
+#: include/class_passwordRecovery.inc:365
+msgid "This token is invalid"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:348
-msgid "Please check your installation."
+#: include/class_passwordRecovery.inc:429
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:370
-#, php-format
-msgid ""
-"Cannot handle the structural object type of your root object. Please try to "
-"add the object class '%s' manually."
+#: include/class_msg_dialog.inc:177
+msgid "Please fix the above error and reload the page."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:1051
-#: include/password-methods/class_password-methods.inc:189
-#: include/functions.inc:501 include/functions.inc:675
-#: include/functions.inc:722 include/functions.inc:830
-#: include/class_config.inc:313 include/class_ldap.inc:841
-#: include/class_ldap.inc:1197
-#: include/simpleplugin/attributes/class_SetAttribute.inc:726
-#: include/class_SnapshotHandler.inc:53 include/class_SnapshotHandler.inc:238
-#: include/class_SnapshotHandler.inc:268 include/class_SnapshotHandler.inc:284
-#: include/class_SnapshotHandler.inc:405 include/class_SnapshotHandler.inc:408
-#: html/index.php:371 plugins/addons/dashboard/class_dashBoardUsers.inc:86
-#: plugins/addons/dashboard/class_dashBoard.inc:74
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:62
-#: plugins/config/class_recoveryConfig.inc:137
-msgid "LDAP error"
+#: include/class_pluglist.inc:209
+msgid "All objects in this category"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:501
+#: include/class_pluglist.inc:579
+msgid "Plugin"
+msgstr ""
+
+#: include/class_pluglist.inc:580
 #, php-format
 msgid ""
-"The specified user \"%s\" does not have full access to your LDAP database."
+"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not "
+"a file)!"
+msgstr ""
+
+#: include/class_pluglist.inc:589 include/login/class_LoginMethod.inc:212
+msgid "Fatal error!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:512
+#: include/class_pluglist.inc:591 include/login/class_LoginMethod.inc:205
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:96
+#: plugins/config/class_configInLdap.inc:539
 msgid ""
-"The specified user \"%s\" does not have full access to your ldap database."
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:575
+#: include/class_userinfo.inc:239
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:584 setup/class_setupStepMigrate.inc:589
-msgid "User migration"
+#: include/class_userinfo.inc:1072
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:672 setup/class_setupStepMigrate.inc:948
-msgid "Migration error"
+#: include/class_template.inc:43 include/management/class_management.inc:200
+#: ihtml/themes/breezy/template.tpl.c:5
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+msgid "Template"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:674
-#, php-format
-msgid "Cannot migrate entry \"%s\":"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:792
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: plugins/admin/users/class_userManagement.inc:42
-msgid "Users"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:795
-msgid "Groups"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:798
-msgid "Roles"
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:804
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:805
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/users/user-list.xml:73 plugins/admin/groups/group-list.xml:66
-msgid "Create"
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:842
-msgid "Gives all rights on all objects"
+#: include/php_setup.inc:46 include/php_setup.inc:138
+msgid "File"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:916
-msgid "Default ACL roles have not been inserted"
+#: include/php_setup.inc:48 include/php_setup.inc:138
+msgid "Line"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:918
-msgid "Some default ACL roles are missing"
+#: include/php_setup.inc:54
+msgid "PHP error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:920
-msgid "Default ACL roles have been inserted"
+#: include/php_setup.inc:63
+msgid "class"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:950
-#, php-format
-msgid "Cannot add ACL role \"%s\":"
+#: include/php_setup.inc:71
+msgid "function"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1005
-#, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+#: include/php_setup.inc:77
+msgid "static"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1019 setup/class_setupStepMigrate.inc:1033
-msgid "Move users into configured user tree"
+#: include/php_setup.inc:81
+msgid "method"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1051
-msgid "Cannot move entries to the requested department!"
+#: include/php_setup.inc:137 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1063
-msgid "Entry will be moved from"
+#: include/php_setup.inc:138
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1063
-msgid "to"
+#: include/php_setup.inc:139
+msgid "Arguments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1073
-msgid "The following references will be updated"
+#: include/php_setup.inc:229
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1124
-#, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+#: include/php_setup.inc:234
+msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1138 setup/class_setupStepMigrate.inc:1152
-msgid "Move groups into configured groups tree"
+#: include/php_setup.inc:235
+msgid "Send bug report"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1235
-#, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+#: include/php_setup.inc:240
+msgid "Toggle information"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1243 setup/class_setupStepMigrate.inc:1248
-msgid "Department migration"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1298
-#, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+#: include/login/class_LoginMethod.inc:56
+msgid "LDAP schema error"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1342
-#, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+#: include/login/class_LoginMethod.inc:83
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: setup/class_setupStepWelcome.inc:51
-msgid "Welcome to FusionDirectory setup wizard"
+#: include/login/class_LoginMethod.inc:86
+msgid "Please specify your password!"
 msgstr ""
 
-#: setup/class_setupStepWelcome.inc:52
-msgid "The welcome message"
+#: include/login/class_LoginMethod.inc:140 include/class_ldap.inc:171
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/class_logging.inc:81 include/class_session.inc:50
-#: include/class_session.inc:88 include/class_session.inc:127
-#: include/functions.inc:575 include/functions.inc:647
-#: include/functions.inc:768 include/functions.inc:1824
-#: include/functions.inc:1863 include/functions.inc:1894
-#: include/class_ldap.inc:790 include/class_ldap.inc:828
-#: include/class_acl.inc:118
-msgid "Internal error"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:223
+msgid "CAS"
 msgstr ""
 
-#: include/class_logging.inc:81
+#: include/login/class_LoginCAS.inc:68
 #, php-format
-msgid "Logging failed: %s"
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/login/class_LoginCAS.inc:78 include/login/class_LoginCAS.inc:104
+#: include/login/class_LoginHTTPHeader.inc:74
+#: include/login/class_LoginHTTPHeader.inc:100
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_baseSelector.inc:212 include/class_listing.inc:1174
-#: include/class_listing.inc:1176
-msgid "Root"
+#: include/login/class_LoginHTTPHeader.inc:50
+#, php-format
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_baseSelector.inc:261 include/class_listing.inc:1197
-msgid "Submit"
+#: include/login/class_LoginHTTPHeader.inc:64
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1182
-#: include/class_listing.inc:1184
-msgid "Up"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/login/class_LoginPost.inc:88 include/functions.inc:609
+#: html/main.php:132 setup/class_setupStepMigrate.inc:611
+#: setup/class_setupStepMigrate.inc:1008 setup/class_setupStepMigrate.inc:1201
+#: setup/class_setupStepMigrate.inc:1253 setup/class_setupStepMigrate.inc:1368
+#: setup/class_setupStepMigrate.inc:1460 setup/class_setupStepLdap.inc:212
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: setup/setup_checks.tpl.c:8
+msgid "Warning"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:463
-#: include/simpleplugin/attributes/class_SetAttribute.inc:464
-msgid "Sort up"
+#: include/login/class_LoginPost.inc:88
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:476
-#: include/simpleplugin/attributes/class_SetAttribute.inc:477
-msgid "Sort down"
+#: include/login/class_LoginPost.inc:120 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:38
+msgid "Sign in"
 msgstr ""
 
-#: include/class_listing.inc:362 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/login/class_LoginPost.inc:130 include/class_standAlonePage.inc:210
+#, php-format
+msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
 msgstr ""
 
-#: include/class_listing.inc:528
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:347 include/class_msgPool.inc:220
-#: include/class_msgPool.inc:240 include/class_msgPool.inc:270
-#: include/class_msgPool.inc:694 include/class_msgPool.inc:723
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:87
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_FileAttribute.inc:31
-#: include/simpleplugin/attributes/class_FileAttribute.inc:34
-#: include/simpleplugin/attributes/class_FileAttribute.inc:37
-#: include/simpleplugin/attributes/class_FileAttribute.inc:300
-#: include/class_SnapshotHandler.inc:398 html/index.php:453 html/index.php:467
-#: html/index.php:477 html/index.php:534 html/index.php:544
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:2
-msgid "Error"
+#: include/login/class_LoginPost.inc:136
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_listing.inc:569
-msgid "created by"
+#: include/login/class_LoginPost.inc:193
+msgid "Second factor"
 msgstr ""
 
-#: include/class_listing.inc:1174
-msgid "Go to root department"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_listing.inc:1182
-msgid "Go up one department"
+#: include/class_standAlonePage.inc:124
+#, php-format
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/class_listing.inc:1190
-msgid "Go to user's department"
+#: include/class_standAlonePage.inc:147 html/setup.php:64
+#, php-format
+msgid "Directory '%s' specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/class_listing.inc:1190 include/class_listing.inc:1192
-msgid "Home"
+#: include/class_msgPool.inc:47
+msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_listing.inc:1197
-msgid "Reload list"
+#: include/class_msgPool.inc:51 include/class_msgPool.inc:55
+msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_listing.inc:1318 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/users/user-list.xml:62 plugins/admin/groups/group-list.xml:54
-msgid "Actions"
+#: include/class_msgPool.inc:58
+msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_listing.inc:1631 include/class_listing.inc:1684
-msgid "Copy"
-msgstr ""
+#: include/class_msgPool.inc:69
+msgid "You have no permission to create this object!"
+msgstr ""
 
-#: include/class_listing.inc:1637 include/class_listing.inc:1672
-msgid "Cut"
+#: include/class_msgPool.inc:73 include/class_msgPool.inc:77
+msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_listing.inc:1645 include/class_listing.inc:1647
-#: include/class_CopyPasteHandler.inc:332
-msgid "Paste"
+#: include/class_msgPool.inc:80
+msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_listing.inc:1672
-msgid "Cut this entry"
+#: include/class_msgPool.inc:92
+msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_listing.inc:1684
-msgid "Copy this entry"
+#: include/class_msgPool.inc:97
+#, php-format
+msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_listing.inc:1709 include/class_listing.inc:1711
-msgid "Restore snapshots"
+#: include/class_msgPool.inc:99 include/class_msgPool.inc:104
+#, php-format
+msgid "You have no permission to modify the object:<br/>%s"
 msgstr ""
 
-#: include/class_listing.inc:1725
-msgid "Export list"
+#: include/class_msgPool.inc:107
+#, php-format
+msgid "You have no permission to modify these objects:<br/>%s"
 msgstr ""
 
-#: include/class_listing.inc:1757 include/class_listing.inc:1758
-msgid "Restore snapshot"
+#: include/class_msgPool.inc:118
+msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_listing.inc:1770
-msgid "Create snapshot"
+#: include/class_msgPool.inc:122 include/class_msgPool.inc:126
+msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_listing.inc:1771
-msgid "Create a new snapshot from this object"
+#: include/class_msgPool.inc:129
+msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
-#, php-format
-msgid "Cannot change password, unknown user \"%s\""
+#: include/class_msgPool.inc:140
+msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/class_msgPool.inc:144 include/class_msgPool.inc:148
+msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:657 include/class_timezone.inc:51
-#: include/class_config.inc:154 include/class_config.inc:276
-#: include/class_config.inc:791 include/class_config.inc:803
-#: html/index.php:147 html/class_passwordRecovery.inc:139 html/main.php:208
-msgid "Configuration error"
+#: include/class_msgPool.inc:151
+msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/class_msgPool.inc:161
+#, php-format
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/class_msgPool.inc:177
+#, php-format
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/class_msgPool.inc:179
+#, php-format
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/class_msgPool.inc:183
+#, php-format
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_session.inc:50 include/class_session.inc:88
-#: include/class_session.inc:127
-msgid "Requested channel does not exist! Please contact your Administrator."
+#: include/class_msgPool.inc:185
+#, php-format
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:208
-#: include/simpleplugin/class_simpleManagement.inc:1019
-#: include/simpleplugin/class_simpleManagement.inc:1118
-#: include/simpleplugin/class_simpleManagement.inc:1169
-#: include/simpleplugin/class_simpleManagement.inc:1249
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_msgPool.inc:200
+#, php-format
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:268
-msgid "Cancel all"
+#: include/class_msgPool.inc:202
+#, php-format
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:334
-msgid "Cannot paste"
+#: include/class_msgPool.inc:216
+#, php-format
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:32
-#: plugins/personal/generic/class_user.inc:383
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:62
-#: plugins/admin/users/user-list.xml:49 ihtml/themes/breezy/login.tpl.c:2
-msgid "Login"
+#: include/class_msgPool.inc:218
+#, php-format
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_template.inc:41
-#: include/simpleplugin/class_simpleManagement.inc:282
-#: include/simpleplugin/class_simpleManagement.inc:514
-#: plugins/admin/users/user-list.xml:95
-#: plugins/admin/groups/class_groupManagement.inc:351
-#: ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/class_msgPool.inc:231
+#, php-format
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_template.inc:42
-msgid "Object template, used to create several objects with similar values"
+#: include/class_msgPool.inc:243
+#, php-format
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_template.inc:47
-#: include/simpleplugin/class_simplePlugin.inc:346
-msgid "Template name"
+#: include/class_msgPool.inc:245
+#, php-format
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/class_msgPool.inc:256
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_msgPool.inc:273
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/functions.inc:474 include/functions.inc:2541
-#: include/simpleplugin/class_simplePlugin.inc:466
-#: include/simpleplugin/class_simplePlugin.inc:471
-#: include/simpleplugin/class_simplePlugin.inc:483
-#: html/class_passwordRecovery.inc:116
-msgid "Fatal error"
+#: include/class_msgPool.inc:278
+#, php-format
+msgid "Example: %s"
 msgstr ""
 
-#: include/functions.inc:475
+#: include/class_msgPool.inc:291
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/functions.inc:535
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_msgPool.inc:299 ihtml/themes/breezy/msg_dialog.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:17 setup/setup_migrate_accounts.tpl.c:38
+#: setup/setup_migrate_adminAccount.tpl.c:23
+msgid "Cancel"
 msgstr ""
 
-#: include/functions.inc:595
-msgid "Authentication error"
+#: include/class_msgPool.inc:307 setup/class_setupStepMigrate.inc:133
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14 setup/setup_checks.tpl.c:2
+msgid "Ok"
 msgstr ""
 
-#: include/functions.inc:596
-msgid ""
-"It seems your user password has expired. Please use <a href=\"recovery.php"
-"\">password recovery</a> to change it."
+#: include/class_msgPool.inc:315 setup/setup_migrate_accounts.tpl.c:35
+#: setup/setup_migrate_adminAccount.tpl.c:20
+msgid "Apply"
 msgstr ""
 
-#: include/functions.inc:647 include/functions.inc:768
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_msgPool.inc:323
+msgid "Save"
 msgstr ""
 
-#: include/functions.inc:657
+#: include/class_msgPool.inc:333
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "Add"
 msgstr ""
 
-#: include/functions.inc:657
+#: include/class_msgPool.inc:333
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "Add %s"
 msgstr ""
 
-#: include/functions.inc:846
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+#: include/class_msgPool.inc:343
+#, php-format
+msgid "Delete %s"
 msgstr ""
 
-#: include/functions.inc:875
+#: include/class_msgPool.inc:353
 #, php-format
-msgid "The size limit of %d entries is exceed!"
+msgid "Edit..."
 msgstr ""
 
-#: include/functions.inc:877
+#: include/class_msgPool.inc:353
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Edit %s..."
 msgstr ""
 
-#: include/functions.inc:894
-msgid "Configure"
+#: include/class_msgPool.inc:361
+msgid "Back"
 msgstr ""
 
-#: include/functions.inc:899
-msgid "incomplete"
+#: include/class_msgPool.inc:390
+#, php-format
+msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/functions.inc:1247
-msgid "Continue anyway"
+#: include/class_msgPool.inc:403
+#, php-format
+msgid ""
+"This account has %s settings enabled. You can disable them by clicking below."
 msgstr ""
 
-#: include/functions.inc:1249
-msgid "Edit anyway"
+#: include/class_msgPool.inc:408
+#, php-format
+msgid ""
+"This account has %s settings enabled. To disable them, you'll need to remove "
+"the %s settings first!"
 msgstr ""
 
-#: include/functions.inc:1251
+#: include/class_msgPool.inc:424
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid ""
+"This account has %s settings disabled. You can enable them by clicking below."
 msgstr ""
 
-#: include/functions.inc:1646
+#: include/class_msgPool.inc:426
 #, php-format
-msgid "%sB"
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to add "
+"the %s settings first!"
 msgstr ""
 
-#: include/functions.inc:1647
+#: include/class_msgPool.inc:428
 #, php-format
-msgid "%sKiB"
+msgid ""
+"This account has %s settings disabled. To enable them, you'll need to "
+"disable the %s settings first!"
 msgstr ""
 
-#: include/functions.inc:1648
+#: include/class_msgPool.inc:439
 #, php-format
-msgid "%sMiB"
+msgid "Add %s settings"
 msgstr ""
 
-#: include/functions.inc:1649
+#: include/class_msgPool.inc:450
 #, php-format
-msgid "%sGiB"
+msgid "Remove %s settings"
 msgstr ""
 
-#: include/functions.inc:1650
-#, php-format
-msgid "%sTiB"
+#: include/class_msgPool.inc:458
+msgid ""
+"Click the \"Edit\" button on the bottom right corner of the page to edit the "
+"fields"
 msgstr ""
 
-#: include/functions.inc:1651
-#, php-format
-msgid "%sPiB"
+#: include/class_msgPool.inc:466
+msgid "January"
 msgstr ""
 
-#: include/functions.inc:1652
-#, php-format
-msgid "%sEiB"
+#: include/class_msgPool.inc:466
+msgid "February"
 msgstr ""
 
-#: include/functions.inc:1653
-#, php-format
-msgid "%sZiB"
+#: include/class_msgPool.inc:466
+msgid "March"
 msgstr ""
 
-#: include/functions.inc:1654
-#, php-format
-msgid "%sYiB"
+#: include/class_msgPool.inc:466
+msgid "April"
 msgstr ""
 
-#: include/functions.inc:1686 include/class_filter.inc:305
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/class_msgPool.inc:467
+msgid "May"
 msgstr ""
 
-#: include/functions.inc:1824
-#, php-format
-msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+#: include/class_msgPool.inc:467
+msgid "June"
 msgstr ""
 
-#: include/functions.inc:1863
-msgid "Cannot write to revision file!"
+#: include/class_msgPool.inc:467
+msgid "July"
 msgstr ""
 
-#: include/functions.inc:1894
-msgid "Cannot read revision file!"
+#: include/class_msgPool.inc:467
+msgid "August"
 msgstr ""
 
-#: include/functions.inc:2008
-msgid "LDAP warning"
+#: include/class_msgPool.inc:467
+msgid "September"
 msgstr ""
 
-#: include/functions.inc:2008
-msgid "Cannot get schema information from server. No schema check possible!"
+#: include/class_msgPool.inc:468
+msgid "October"
 msgstr ""
 
-#: include/functions.inc:2031
-msgid "Main FusionDirectory schema"
+#: include/class_msgPool.inc:468
+msgid "November"
 msgstr ""
 
-#: include/functions.inc:2038
-msgid "Schema used to store FusionDirectory configuration"
+#: include/class_msgPool.inc:468
+msgid "December"
 msgstr ""
 
-#: include/functions.inc:2045
-msgid "Used to store trust mode information in users or groups."
+#: include/class_msgPool.inc:477
+msgid "Sunday"
 msgstr ""
 
-#: include/functions.inc:2052
-msgid "Used to store templates."
+#: include/class_msgPool.inc:477
+msgid "Monday"
 msgstr ""
 
-#: include/functions.inc:2060
-msgid "Used to store POSIX information."
+#: include/class_msgPool.inc:477
+msgid "Tuesday"
 msgstr ""
 
-#: include/functions.inc:2068
-#, php-format
-msgid "Missing required object class \"%s\"!"
+#: include/class_msgPool.inc:477
+msgid "Wednesday"
 msgstr ""
 
-#: include/functions.inc:2070
-#, php-format
-msgid "Missing optional object class \"%s\"!"
+#: include/class_msgPool.inc:477
+msgid "Thursday"
 msgstr ""
 
-#: include/functions.inc:2074
-#, php-format
-msgid "Class(es) available"
+#: include/class_msgPool.inc:477
+msgid "Friday"
 msgstr ""
 
-#: include/functions.inc:2092
-msgid ""
-"You have installed the mixed groups plugin, but your schema configuration "
-"does not support this."
+#: include/class_msgPool.inc:477
+msgid "Saturday"
 msgstr ""
 
-#: include/functions.inc:2093
-msgid ""
-"In order to use mixed groups the objectClass \"posixGroup\" must be AUXILIARY"
+#: include/class_msgPool.inc:494
+msgid "read operation"
 msgstr ""
 
-#: include/functions.inc:2096
-msgid ""
-"Your schema is configured to support mixed groups, but this plugin is not "
-"present."
+#: include/class_msgPool.inc:494
+msgid "add operation"
 msgstr ""
 
-#: include/functions.inc:2097
-msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
+#: include/class_msgPool.inc:494
+msgid "modify operation"
 msgstr ""
 
-#: include/functions.inc:2542
-#, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+#: include/class_msgPool.inc:495
+msgid "delete operation"
 msgstr ""
 
-#: include/class_pluglist.inc:183
-msgid "All objects in this category"
+#: include/class_msgPool.inc:495
+msgid "search operation"
 msgstr ""
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/class_msgPool.inc:495
+msgid "authentication"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_msgPool.inc:498
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_config.inc:151
-#, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+#: include/class_msgPool.inc:500
+msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_config.inc:272
-#, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your "
-"passwords are not encrypted."
+#: include/class_msgPool.inc:505
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:339
+msgid "Object"
 msgstr ""
 
-#: include/class_config.inc:313
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/class_msgPool.inc:521
+msgid "Upload failed!"
 msgstr ""
 
-#: include/class_config.inc:347
+#: include/class_msgPool.inc:524
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_config.inc:792
-#, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+#: include/class_msgPool.inc:535
+msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_config.inc:804
+#: include/class_msgPool.inc:537
 #, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+msgid "Communication failure with the infrastructure service: %s"
 msgstr ""
 
-#: include/class_config.inc:912
-msgid "All categories"
+#: include/class_msgPool.inc:537
+#, php-format
+msgid "Error: %s"
 msgstr ""
 
-#: include/class_config.inc:1047
-msgid "My account"
+#: include/class_msgPool.inc:547
+#, php-format
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:43
+#: include/class_msgPool.inc:557
 #, php-format
-msgid "Select to list objects of type '%s'."
+msgid "Install and activate the %s PHP module."
+msgstr ""
+
+#: include/class_msgPool.inc:565
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:45
+#: include/class_ldapSizeLimit.inc:114
 #, php-format
-msgid "Select to list objects containig '%s'."
+msgid "The size limit of %d entries is exceed!"
 msgstr ""
 
-#: include/class_msgPool.inc:47
+#: include/class_ldapSizeLimit.inc:115
 #, php-format
-msgid "Select to list objects that have '%s' enabled"
+msgid ""
+"Set the new size limit to %s and show me this message if the limit still "
+"exceeds"
 msgstr ""
 
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
+#: include/class_ldapSizeLimit.inc:131
+#: include/management/class_managementListing.inc:430
+msgid "Configure"
 msgstr ""
 
-#: include/class_msgPool.inc:51 include/class_filter.inc:354
-msgid "Search in subtrees"
+#: include/class_ldapSizeLimit.inc:136
+msgid "incomplete"
 msgstr ""
 
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
+#: include/class_ldap.inc:167
+msgid ""
+"It seems your user password has expired. Please use <a href=\"recovery.php"
+"\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_msgPool.inc:69
+#: include/class_ldap.inc:190
 #, php-format
-msgid "This '%s' object will be deleted!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
+#: include/class_ldap.inc:358
+msgid "Performance warning"
 msgstr ""
 
-#: include/class_msgPool.inc:76
+#: include/class_ldap.inc:358
 #, php-format
-msgid "This '%s' object will be deleted: %s"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
+#: include/class_ldap.inc:383
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
+#: include/class_ldap.inc:386
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_msgPool.inc:87
+#: include/class_ldap.inc:944
 #, php-format
-msgid "These objects will be deleted: %s"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_msgPool.inc:89
+#: include/class_ldap.inc:982
 #, php-format
-msgid "These '%s' objects will be deleted: %s"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_msgPool.inc:101
-msgid "You have no permission to delete this object!"
+#: include/class_ldap.inc:1037
+#, php-format
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
-msgid "You have no permission to delete the object:"
+#: include/class_ldap.inc:1042
+#, php-format
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_msgPool.inc:112
-msgid "You have no permission to delete these objects:"
+#: include/class_ldap.inc:1156
+msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_msgPool.inc:123
-msgid "You have no permission to create this object!"
+#: include/class_ldap.inc:1184
+#, php-format
+msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
-msgid "You have no permission to create the object:"
-msgstr ""
-
-#: include/class_msgPool.inc:134
-msgid "You have no permission to create these objects:"
-msgstr ""
-
-#: include/class_msgPool.inc:146
-msgid "You have no permission to modify this object!"
-msgstr ""
-
-#: include/class_msgPool.inc:151
+#: include/class_ldap.inc:1202
 #, php-format
-msgid "You have no permission to modify the field \"%s\" of object \"%s\""
+msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_ldap.inc:1205
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_ldap.inc:1209
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
-msgstr ""
-
-#: include/class_msgPool.inc:172
-msgid "You have no permission to view this object!"
+msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
-msgid "You have no permission to view the object:"
+#: include/class_ldap.inc:1214
+#, php-format
+msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_msgPool.inc:183
-msgid "You have no permission to view these objects:"
+#: include/class_ldap.inc:1272
+#, php-format
+msgid ""
+"Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_msgPool.inc:194
-msgid "You have no permission to move this object!"
+#: include/functions.inc:91
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
-msgid "You have no permission to move the object:"
+#: include/functions.inc:110
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/class_msgPool.inc:205
-msgid "You have no permission to move these objects:"
+#: include/functions.inc:354
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said '%s'."
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
+#: include/functions.inc:402 include/functions.inc:531
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_msgPool.inc:225
+#: include/functions.inc:420
 #, php-format
-msgid "Cannot connect to %s database!"
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_msgPool.inc:245
+#: include/functions.inc:420
 #, php-format
-msgid "Cannot select %s database!"
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
+#: include/functions.inc:609
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
+#: include/functions.inc:931
+msgid "Continue anyway"
 msgstr ""
 
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
+#: include/functions.inc:933
+msgid "Edit anyway"
 msgstr ""
 
-#: include/class_msgPool.inc:297
+#: include/functions.inc:935
 #, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgid "You're going to edit the LDAP entry/entries %s"
 msgstr ""
 
-#: include/class_msgPool.inc:313
+#: include/functions.inc:1167
 #, php-format
-msgid "'%s' command is invalid!"
+msgid "%sB"
 msgstr ""
 
-#: include/class_msgPool.inc:315
+#: include/functions.inc:1168
 #, php-format
-msgid "'%s' command for plugin %s is invalid!"
+msgid "%sKiB"
 msgstr ""
 
-#: include/class_msgPool.inc:319
+#: include/functions.inc:1169
 #, php-format
-msgid "'%s' command (%s) is invalid!"
+msgid "%sMiB"
 msgstr ""
 
-#: include/class_msgPool.inc:321
+#: include/functions.inc:1170
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
+msgid "%sGiB"
 msgstr ""
 
-#: include/class_msgPool.inc:339
+#: include/functions.inc:1171
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "%sTiB"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/functions.inc:1172
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "%sPiB"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/functions.inc:1173
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "%sEiB"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/functions.inc:1174
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "%sZiB"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/functions.inc:1175
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "%sYiB"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/functions.inc:1306
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid ""
+"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
+"directories to fix permissions."
 msgstr ""
 
-#: include/class_msgPool.inc:378
-#, php-format
-msgid "Value for '%s' is too small!"
+#: include/functions.inc:1344
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
-#, php-format
-msgid "'%s' must be %d or above!"
+#: include/functions.inc:1375
+msgid "Cannot read revision file!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
-#, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+#: include/functions.inc:1489
+msgid "LDAP warning"
 msgstr ""
 
-#: include/class_msgPool.inc:404
-#, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+#: include/functions.inc:1489
+msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/class_msgPool.inc:406
-#, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+#: include/functions.inc:1513
+msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/class_msgPool.inc:417
-#, php-format
-msgid "The required field '%s' is empty!"
+#: include/functions.inc:1521
+msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/class_msgPool.inc:435
-msgid "Example:"
+#: include/functions.inc:1529
+msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/class_msgPool.inc:455 include/class_msgPool.inc:459
-#, php-format
-msgid "The field '%s' contains invalid characters"
+#: include/functions.inc:1537
+msgid "Used to store templates."
 msgstr ""
 
-#: include/class_msgPool.inc:456
-#, php-format
-msgid "'%s' is not allowed:"
+#: include/functions.inc:1546
+msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/class_msgPool.inc:456
+#: include/functions.inc:1554
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/class_msgPool.inc:470
+#: include/functions.inc:1556
 #, php-format
-msgid "Missing %s PHP extension!"
+msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/class_msgPool.inc:478 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32 ihtml/themes/breezy/islocked.tpl.c:17
-#: ihtml/themes/breezy/msg_dialog.tpl.c:17
-msgid "Cancel"
+#: include/functions.inc:1560
+#, php-format
+msgid "Class(es) available"
 msgstr ""
 
-#: include/class_msgPool.inc:494 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
-msgid "Apply"
+#: include/functions.inc:1579
+msgid ""
+"You have installed the mixed groups plugin, but your schema configuration "
+"does not support this."
 msgstr ""
 
-#: include/class_msgPool.inc:502
-msgid "Save"
+#: include/functions.inc:1580
+msgid ""
+"In order to use mixed groups the objectClass \"posixGroup\" must be AUXILIARY"
 msgstr ""
 
-#: include/class_msgPool.inc:512
-#, php-format
-msgid "Add"
+#: include/functions.inc:1583
+msgid ""
+"Your schema is configured to support mixed groups, but this plugin is not "
+"present."
 msgstr ""
 
-#: include/class_msgPool.inc:512
-#, php-format
-msgid "Add %s"
+#: include/functions.inc:1584
+msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/class_msgPool.inc:522
-#: include/simpleplugin/attributes/class_SetAttribute.inc:501
-#: include/simpleplugin/attributes/class_SetAttribute.inc:502
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: include/functions.inc:1869
 #, php-format
-msgid "Delete"
+msgid "Cannot locate file '%s' - please run '%s' to fix this"
 msgstr ""
 
-#: include/class_msgPool.inc:522
+#: include/class_templateHandling.inc:143
 #, php-format
-msgid "Delete %s"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:532
+#: include/class_templateHandling.inc:601
 #, php-format
-msgid "Edit..."
+msgid ""
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on \"%2$s"
+"\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:532
-#, php-format
-msgid "Edit %s..."
+#: include/class_CopyPasteHandler.inc:261
+msgid "Cancel all"
 msgstr ""
 
-#: include/class_msgPool.inc:540
-msgid "Back"
+#: include/class_CopyPasteHandler.inc:326
+#: include/management/class_management.inc:259
+msgid "Paste"
 msgstr ""
 
-#: include/class_msgPool.inc:569
-#, php-format
-msgid "This account has no valid %s extensions!"
+#: include/class_CopyPasteHandler.inc:328
+msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:582
+#: include/class_timezone.inc:52
 #, php-format
-msgid ""
-"This account has %s settings enabled. You can disable them by clicking below."
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_msgPool.inc:588 include/class_msgPool.inc:595
+#: include/management/columns/class_ObjectTypeColumn.inc:35
+#: include/management/class_managementListing.inc:221
 #, php-format
-msgid ""
-"This account has %s settings enabled. To disable them, you'll need to remove "
-"the %s settings first!"
+msgid "%s template"
 msgstr ""
 
-#: include/class_msgPool.inc:610
-#, php-format
-msgid ""
-"This account has %s settings disabled. You can enable them by clicking below."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/class_msgPool.inc:612
+#: include/management/class_managementFilter.inc:149
 #, php-format
-msgid ""
-"This account has %s settings disabled. To enable them, you'll need to add "
-"the %s settings first!"
+msgid "Searches in %s"
 msgstr ""
 
-#: include/class_msgPool.inc:614
+#: include/management/class_managementFilter.inc:235
 #, php-format
-msgid ""
-"This account has %s settings disabled. To enable them, you'll need to "
-"disable the %s settings first!"
+msgid "Could not search for \"%s\" templates"
 msgstr ""
 
-#: include/class_msgPool.inc:625
+#: include/management/class_managementFilter.inc:255
 #, php-format
-msgid "Add %s settings"
+msgid "Could not search for \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:636
-#, php-format
-msgid "Remove %s settings"
+#: include/management/snapshot/class_SnapshotHandler.inc:39
+msgid "Snapshot"
 msgstr ""
 
-#: include/class_msgPool.inc:644
-msgid "Click the 'Edit' button below to change information in this dialog"
+#: include/management/snapshot/class_SnapshotHandler.inc:40
+msgid "Snapshot handler"
 msgstr ""
 
-#: include/class_msgPool.inc:652
-msgid "January"
+#: include/management/snapshot/class_SnapshotHandler.inc:45
+msgid "Restore over an existing object"
 msgstr ""
 
-#: include/class_msgPool.inc:652
-msgid "February"
+#: include/management/snapshot/class_SnapshotHandler.inc:46
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/class_msgPool.inc:652
-msgid "March"
+#: include/management/snapshot/class_SnapshotHandler.inc:391
+msgid "There was a problem uncompressing snapshot data"
 msgstr ""
 
-#: include/class_msgPool.inc:652
-msgid "April"
+#: include/management/snapshot/class_SnapshotHandler.inc:395
+msgid "Snapshot data could not be fetched"
 msgstr ""
 
-#: include/class_msgPool.inc:653
-msgid "May"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_msgPool.inc:653
-msgid "June"
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/groups/class_ogroup.inc:229
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
 msgstr ""
 
-#: include/class_msgPool.inc:653
-msgid "July"
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:113
+msgid "Y-m-d, H:i:s"
 msgstr ""
 
-#: include/class_msgPool.inc:653
-msgid "August"
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
 msgstr ""
 
-#: include/class_msgPool.inc:653
-msgid "September"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
 msgstr ""
 
-#: include/class_msgPool.inc:654
-msgid "October"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+msgid "DN of the object you are creating a snapshot of"
 msgstr ""
 
-#: include/class_msgPool.inc:654
-msgid "November"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
 msgstr ""
 
-#: include/class_msgPool.inc:654
-msgid "December"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
 msgstr ""
 
-#: include/class_msgPool.inc:663
-msgid "Sunday"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
 msgstr ""
 
-#: include/class_msgPool.inc:663
-msgid "Monday"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_msgPool.inc:663
-msgid "Tuesday"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
 msgstr ""
 
-#: include/class_msgPool.inc:663
-msgid "Wednesday"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Snapshots"
 msgstr ""
 
-#: include/class_msgPool.inc:663
-msgid "Thursday"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
 msgstr ""
 
-#: include/class_msgPool.inc:663
-msgid "Friday"
+#: include/management/class_management.inc:204
+msgid "From template"
 msgstr ""
 
-#: include/class_msgPool.inc:663
-msgid "Saturday"
+#: include/management/class_management.inc:214
+#: setup/class_setupStepMigrate.inc:837
+msgid "Create"
 msgstr ""
 
-#: include/class_msgPool.inc:680
-msgid "read operation"
+#: include/management/class_management.inc:229
+msgid "Export list"
 msgstr ""
 
-#: include/class_msgPool.inc:680
-msgid "add operation"
+#: include/management/class_management.inc:245
+msgid "Cut"
 msgstr ""
 
-#: include/class_msgPool.inc:680
-msgid "modify operation"
+#: include/management/class_management.inc:252
+msgid "Copy"
 msgstr ""
 
-#: include/class_msgPool.inc:681
-msgid "delete operation"
+#: include/management/class_management.inc:270
+msgid "Apply template"
 msgstr ""
 
-#: include/class_msgPool.inc:681
-msgid "search operation"
+#: include/management/class_management.inc:290
+msgid "Create snapshot"
 msgstr ""
 
-#: include/class_msgPool.inc:681
-msgid "authentication"
+#: include/management/class_management.inc:297
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/class_msgPool.inc:684
-#, php-format
-msgid "LDAP %s failed!"
+#: include/management/class_management.inc:309
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/class_msgPool.inc:686
-msgid "LDAP operation failed!"
+#: include/management/class_management.inc:783
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/class_msgPool.inc:691 include/class_SnapshotDialogs.inc:33
-#: include/class_SnapshotDialogs.inc:182
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:341
-msgid "Object"
+#: include/management/class_management.inc:791
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_msgPool.inc:707
-msgid "Upload failed!"
+#: include/management/class_management.inc:992
+msgid "Permission error"
 msgstr ""
 
-#: include/class_msgPool.inc:710
+#: include/management/class_management.inc:1078
 #, php-format
-msgid "Upload failed: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:721
-msgid "Communication failure with the infrastructure service!"
+msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/class_msgPool.inc:723
+#: include/management/class_management.inc:1108
+#: include/management/class_management.inc:1197
+#: include/management/class_management.inc:1225
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_msgPool.inc:736 include/class_msgPool.inc:739
+#: include/management/class_management.inc:1242
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
 
-#: include/class_msgPool.inc:742
-#, php-format
-msgid "This '%s' is still in use."
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_msgPool.inc:744
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/management/class_managementListing.inc:390
+msgid "Go to root department"
 msgstr ""
 
-#: include/class_msgPool.inc:754
-#, php-format
-msgid "File '%s' does not exist!"
+#: include/management/class_managementListing.inc:391
+#: include/class_baseSelector.inc:212
+msgid "Root"
 msgstr ""
 
-#: include/class_msgPool.inc:764
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/management/class_managementListing.inc:398
+msgid "Go up one department"
 msgstr ""
 
-#: include/class_msgPool.inc:774
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/management/class_managementListing.inc:399
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
 msgstr ""
 
-#: include/class_msgPool.inc:784
-#, php-format
-msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+#: include/management/class_managementListing.inc:406
+msgid "Go to user's department"
 msgstr ""
 
-#: include/class_msgPool.inc:794
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/management/class_managementListing.inc:407
+msgid "Home"
 msgstr ""
 
-#: include/class_msgPool.inc:804
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/management/class_managementListing.inc:419
+msgid "Reload list"
 msgstr ""
 
-#: include/class_msgPool.inc:814
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/management/class_managementListing.inc:420
+msgid "Reload"
 msgstr ""
 
-#: include/class_msgPool.inc:824
-#, php-format
-msgid "Checking for %s support"
+#: include/management/class_managementListing.inc:429
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_msgPool.inc:834
+#: include/management/actions/class_Action.inc:161
 #, php-format
-msgid "Install and activate the %s PHP module."
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:844
+#: include/management/actions/class_Action.inc:164
 #, php-format
-msgid "Install and activate the %s Pear module."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:854
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/class_msgPool.inc:862
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:30
-msgid "Creating an object snapshot"
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:33 include/class_SnapshotDialogs.inc:182
-msgid "DN of the object you are creating a snapshot of"
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:37
-msgid "Timestamp"
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:37
-msgid "Timestamp of this snapshot creation"
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:41
-msgid "Reason"
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and "
+"\"mainAttr\" also work."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:41
-msgid "Reason for creating this snapshot"
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:60 include/class_SnapshotDialogs.inc:118
-msgid "Y-m-d, H:i:s"
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:135 include/class_SnapshotDialogs.inc:136
-msgid "Restore"
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:178
-msgid "Restoring snapshots"
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration "
+"for this management page"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:186
-msgid "Snapshots"
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:186
-msgid "Existing snapshots for this object"
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
 msgstr ""
 
-#: include/php_setup.inc:45 include/php_setup.inc:132
-msgid "File"
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
 msgstr ""
 
-#: include/php_setup.inc:47 include/php_setup.inc:132
-msgid "Line"
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
 msgstr ""
 
-#: include/php_setup.inc:53
-msgid "PHP error"
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
 msgstr ""
 
-#: include/php_setup.inc:62
-msgid "class"
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/php_setup.inc:70
-msgid "function"
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the "
+"default one is used"
 msgstr ""
 
-#: include/php_setup.inc:76
-msgid "static"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/php_setup.inc:80
-msgid "method"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/php_setup.inc:131 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/php_setup.inc:132
-msgid "Type"
-msgstr ""
+#: include/class_acl.inc:103
+#, php-format
+msgid ""
+"Unkown ACL type '%s'!\n"
+"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate "
+"your acls to the new format."
+msgstr ""
 
-#: include/php_setup.inc:133
-msgid "Arguments"
+#: include/class_acl.inc:155
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/php_setup.inc:231
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/class_acl.inc:158
+#, php-format
+msgid "All users"
 msgstr ""
 
-#: include/php_setup.inc:236
-msgid "Send bug report to the FusionDirectory Team"
+#: include/class_baseSelector.inc:277
+msgid "Submit"
 msgstr ""
 
-#: include/php_setup.inc:237
-msgid "Send bugreport"
+#: html/main.php:116
+msgid "Password change"
 msgstr ""
 
-#: include/php_setup.inc:242
-msgid "Toggle information"
+#: html/main.php:116
+msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: include/class_ldap.inc:274
-msgid "Performance warning"
+#: html/main.php:132
+msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: include/class_ldap.inc:274
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: html/main.php:168
+msgid "Running out of memory!"
 msgstr ""
 
-#: include/class_ldap.inc:790
-#, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+#: html/main.php:183
+msgid "User ACL checks disabled"
 msgstr ""
 
-#: include/class_ldap.inc:828
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: html/main.php:225
+msgid "Configuration Error"
 msgstr ""
 
-#: include/class_ldap.inc:916
+#: html/main.php:226
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid ""
+"Fatal error: not all POST variables have been transfered by PHP - please "
+"inform your administrator!"
 msgstr ""
 
-#: include/class_ldap.inc:918
+#: html/index.php:95
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid ""
+"FusionDirectory configuration %s/%s is not readable. Please run "
+"fusiondirectory-setup --check-config to fix this."
 msgstr ""
 
-#: include/class_ldap.inc:1008
-msgid "proc_open failed to execute ldapsearch"
+#: html/index.php:119
+msgid "Smarty error"
 msgstr ""
 
-#: include/class_ldap.inc:1052
+#: html/index.php:121
 #, php-format
-msgid "Error line %s, first line of an entry cannot start with a space"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/class_ldap.inc:1069
-#, php-format
-msgid "Error line %s, references to an external file are not supported"
+#: html/index.php:158
+msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: include/class_ldap.inc:1072
+#: html/index.php:161
 #, php-format
-msgid "Error line %s, attribute \"%s\" has no value"
+msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: include/class_ldap.inc:1076
-#, php-format
-msgid "Error line %s, an entry bloc can only have one dn"
+#: html/index.php:164
+msgid "No session found!"
 msgstr ""
 
-#: include/class_ldap.inc:1081
-#, php-format
-msgid "Error line %s, an entry bloc should start with the dn"
+#: html/setup.php:64
+msgid "Smarty"
 msgstr ""
 
-#: include/class_ldap.inc:1112
-#, php-format
-msgid ""
-"Error while importing dn: \"%s\", please check your LDIF from line %s on!"
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
 msgstr ""
 
-#: include/class_templateHandling.inc:490
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on \"%2$s"
-"\" as \"%2$s\" already depends on \"%1$s\""
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:68
-#: plugins/admin/departments/class_department.inc:171
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/groups/class_ogroup.inc:191
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: plugins/personal/generic/class_user.inc:325
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/groups/class_ogroup.inc:196
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/aclrole/class_aclRole.inc:103
-msgid "Description"
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:426
-#, php-format
-msgid "POSIX group %s"
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:428
-#: plugins/config/class_configInLdap.inc:471
-#, php-format
-msgid "Role %s"
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:430
-#: plugins/config/class_configInLdap.inc:464
-#, php-format
-msgid "Group %s"
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+msgid "Mode"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:465
-msgid "Group of user"
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:634
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:119
-msgid "None"
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:636
-msgid "Unknown"
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:645
-#: include/simpleplugin/class_dialogAttributes.inc:646
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: include/simpleplugin/attributes/class_SetAttribute.inc:491
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:655
-#: include/simpleplugin/class_dialogAttributes.inc:656
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: include/simpleplugin/attributes/class_FileAttribute.inc:336
-#: include/simpleplugin/attributes/class_FileAttribute.inc:337
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/users/user-list.xml:115
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-msgid "Remove"
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
-#, php-format
-msgid ""
-"No plugin definitions found to initialize \"%s\", please check your "
-"configuration file."
+#: plugins/config/class_dashBoardConfig.inc:26
+msgid "Dashboard configuration"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:393
-#, php-format
-msgid "Move from \"%s\" to \"%s\" failed"
+#: plugins/config/class_dashBoardConfig.inc:27
+msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:263
-msgid "B"
+#: plugins/config/class_dashBoardConfig.inc:41
+msgid "Dashboard name schema"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:264
-msgid "KiB"
+#: plugins/config/class_dashBoardConfig.inc:44
+msgid "Number of digits"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:265
-msgid "MiB"
+#: plugins/config/class_dashBoardConfig.inc:44
+msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:266
-msgid "GiB"
+#: plugins/config/class_dashBoardConfig.inc:50
+msgid "Prefixes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:267
-msgid "TiB"
+#: plugins/config/class_dashBoardConfig.inc:50
+msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:278
-msgid "seconds"
+#: plugins/config/class_dashBoardConfig.inc:58
+msgid "Dashboard expired users"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:279
-msgid "minutes"
+#: plugins/config/class_dashBoardConfig.inc:61
+msgid "Number of days"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:280
-msgid "hours"
+#: plugins/config/class_dashBoardConfig.inc:61
+msgid ""
+"Number of days before expiration needed for an account to show in the "
+"dashboard next expired accounts list"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:281
-msgid "days"
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
+msgid "Configuration"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:288
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
+msgid "FusionDirectory configuration"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:316
-#, php-format
-msgid "%s template"
+#: plugins/config/class_configInLdap.inc:29
+msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:508
-#: include/simpleplugin/class_simpleManagement.inc:514
-#: plugins/admin/groups/class_groupManagement.inc:351
-#, php-format
-msgid "Show %s"
+#: plugins/config/class_configInLdap.inc:56
+msgid "Look and feel"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:545
-msgid "Filter error"
+#: plugins/config/class_configInLdap.inc:59
+msgid "Language"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:545
-msgid "The filter is incomplete!"
+#: plugins/config/class_configInLdap.inc:59
+msgid ""
+"Language of the application. If 'automatic' or not available, the one asked "
+"by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1084
-msgid "Permission error"
+#: plugins/config/class_configInLdap.inc:64
+msgid "Theme"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1118
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: plugins/config/class_configInLdap.inc:64
+msgid "Theme to be used"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1169
-#: include/simpleplugin/class_simpleManagement.inc:1249
-#: include/simpleplugin/class_simpleManagement.inc:1267
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: plugins/config/class_configInLdap.inc:70
+msgid "Timezone"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: plugins/config/class_configInLdap.inc:70
+msgid "Timezone to be used"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:343
-msgid "Template settings"
+#: plugins/config/class_configInLdap.inc:78
+msgid "Core settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:346
-msgid "This is the name of the template"
+#: plugins/config/class_configInLdap.inc:81
+msgid "LDAP size limit"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:466
-msgid "Only main tab can compute dn"
+#: plugins/config/class_configInLdap.inc:81
+msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:473
-#, php-format
-msgid "Could not compute dn: no parent tab class for \"%s\""
+#: plugins/config/class_configInLdap.inc:86
+msgid "Edit locking"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:485
-#, php-format
+#: plugins/config/class_configInLdap.inc:87
 msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+"Check if a entry currently being edited has been modified outside of "
+"FusionDirectory in the meantime."
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1296
-#, php-format
-msgid "There is already an entry with the same dn : %s"
+#: plugins/config/class_configInLdap.inc:92
+msgid "Enable logging"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1303
-#, php-format
-msgid "The entry %s is not existing"
+#: plugins/config/class_configInLdap.inc:93
+msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1493
-msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may "
-"be done by others will get lost if you save this entry!"
+#: plugins/config/class_configInLdap.inc:98
+msgid "Schema validation"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1678
-#, php-format
-msgid "Service \"%s\""
+#: plugins/config/class_configInLdap.inc:99
+msgid "Enables schema checking during login."
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1680
-#, php-format
-msgid "Tab \"%s\""
+#: plugins/config/class_configInLdap.inc:104
+msgid "Enable snapshots"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1832
-#, php-format
-msgid "Unknown field \"%s\""
+#: plugins/config/class_configInLdap.inc:104
+msgid ""
+"This enables you to save certain states of entries and restore them later on."
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:572
-#: include/simpleplugin/attributes/class_SetAttribute.inc:230
-#, php-format
-msgid "%s (required)"
+#: plugins/config/class_configInLdap.inc:109
+msgid "Snapshot base"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:40
-msgid "Object base"
+#: plugins/config/class_configInLdap.inc:109
+msgid "The base where snapshots should be stored inside the LDAP directory."
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:145
-#, php-format
-msgid ""
-"The value \"%s\" for field \"%s\" is not in the list of possible choices"
+#: plugins/config/class_configInLdap.inc:114
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:31
-#: include/simpleplugin/attributes/class_FileAttribute.inc:34
-#: include/simpleplugin/attributes/class_FileAttribute.inc:37
-#, php-format
-msgid "Cannot read uploaded file: %s"
+#: plugins/config/class_configInLdap.inc:114
+msgid ""
+"Enables wildcard searches like member=* when moving a whole department. This "
+"will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:31
-msgid "file is empty"
+#: plugins/config/class_configInLdap.inc:121
+msgid "Password settings"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:34
-msgid "file not found"
+#: plugins/config/class_configInLdap.inc:125
+msgid "Allowed password hashes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:37
-msgid "file not readable"
+#: plugins/config/class_configInLdap.inc:125
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:72
-#, php-format
-msgid "%s (%d bytes)"
+#: plugins/config/class_configInLdap.inc:131
+msgid "Password default hash"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:119
-#: include/simpleplugin/attributes/class_FileAttribute.inc:326
-#: include/simpleplugin/attributes/class_FileAttribute.inc:327
-msgid "Upload"
+#: plugins/config/class_configInLdap.inc:131
+msgid "Default hash to be used"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:124
-#: include/simpleplugin/attributes/class_FileAttribute.inc:125
-msgid "Download"
+#: plugins/config/class_configInLdap.inc:136
+msgid "Force default hash"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:301
-msgid ""
-"Cannot save user picture, FusionDirectory requires the PHP module \"imagick"
-"\" to be installed!"
+#: plugins/config/class_configInLdap.inc:136
+msgid "Force the use of the default password hash"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:136
-#, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+#: plugins/config/class_configInLdap.inc:140
+msgid "Password minimum length"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:585
-#, php-format
-msgid "Invalid value for %s"
+#: plugins/config/class_configInLdap.inc:140
+msgid "Minimum length of user passwords"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:131
-#, php-format
-msgid "Error, incorrect date: %s"
+#: plugins/config/class_configInLdap.inc:145
+msgid "Password minimum differs"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
-#, php-format
-msgid "An integer between %d and %d"
+#: plugins/config/class_configInLdap.inc:145
+msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
-#, php-format
-msgid "An integer larger than %d"
+#: plugins/config/class_configInLdap.inc:150
+msgid "Use account expiration"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
-#, php-format
-msgid "An integer smaller than %d"
+#: plugins/config/class_configInLdap.inc:151
+msgid ""
+"Enables shadow attribute tests during the login to FusionDirectory and "
+"forces password renewal or account locking"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
-#, php-format
-msgid "A float between %f and %f"
+#: plugins/config/class_configInLdap.inc:155
+msgid "SASL Realm"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
-#, php-format
-msgid "A float larger than %f"
+#: plugins/config/class_configInLdap.inc:159
+msgid "SASL Exop"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
-#, php-format
-msgid "A float smaller than %f"
+#: plugins/config/class_configInLdap.inc:159
+msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:398
-msgid "There was a problem uncompressing snapshot data"
+#: plugins/config/class_configInLdap.inc:165
+msgid "Login and session"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: plugins/config/class_configInLdap.inc:168
+#: plugins/config/class_recoveryConfig.inc:79
+msgid "Login attribute"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: plugins/config/class_configInLdap.inc:169
+msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: plugins/config/class_configInLdap.inc:175
+msgid "Enforce encrypted connections"
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: plugins/config/class_configInLdap.inc:176
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate "
-"your acls to the new format."
+"Enables PHP security checks to force encrypted access (https) to the web "
+"interface."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
+#: plugins/config/class_configInLdap.inc:180
+msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: include/class_acl.inc:173
-#, php-format
-msgid "All users"
+#: plugins/config/class_configInLdap.inc:181
+msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: include/class_filter.inc:343
-msgid "Apply filter"
+#: plugins/config/class_configInLdap.inc:186
+msgid "Session lifetime"
 msgstr ""
 
-#: html/setup.php:60
-msgid "Smarty"
+#: plugins/config/class_configInLdap.inc:186
+msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: html/setup.php:60 html/class_passwordRecovery.inc:140
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
+#: plugins/config/class_configInLdap.inc:191
+msgid "Login method"
 msgstr ""
 
-#: html/index.php:55 html/class_passwordRecovery.inc:174
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
+#: plugins/config/class_configInLdap.inc:192
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: html/index.php:61
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
+#: plugins/config/class_configInLdap.inc:196
+msgid "Header name"
 msgstr ""
 
-#: html/index.php:149
-#, php-format
-msgid ""
-"FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
+#: plugins/config/class_configInLdap.inc:196
+msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: html/index.php:170
-msgid "Smarty error"
+#: plugins/config/class_configInLdap.inc:203
+msgid "SSL"
 msgstr ""
 
-#: html/index.php:172
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+#: plugins/config/class_configInLdap.inc:206
+msgid "Key path"
 msgstr ""
 
-#: html/index.php:207
-msgid "Your FusionDirectory session has expired!"
+#: plugins/config/class_configInLdap.inc:206
+msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: html/index.php:210
-msgid "Your IP has changed!"
+#: plugins/config/class_configInLdap.inc:211
+msgid "Certificate path"
 msgstr ""
 
-#: html/index.php:213
-#, php-format
-msgid "Invalid plugin parameter \"%s\"!"
+#: plugins/config/class_configInLdap.inc:211
+msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: html/index.php:216
-msgid "No session found!"
+#: plugins/config/class_configInLdap.inc:216
+#: plugins/config/class_configInLdap.inc:226
+msgid "CA certificate path"
 msgstr ""
 
-#: html/index.php:252
-msgid "LDAP schema check reported errors:"
+#: plugins/config/class_configInLdap.inc:216
+msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: html/index.php:254
-msgid "LDAP schema error"
+#: plugins/config/class_configInLdap.inc:226
+msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: html/index.php:281
-msgid "Please specify a valid username!"
+#: plugins/config/class_configInLdap.inc:231
+msgid "Host"
 msgstr ""
 
-#: html/index.php:284
-msgid "Please specify your password!"
+#: plugins/config/class_configInLdap.inc:231
+msgid "Host of the CAS server"
 msgstr ""
 
-#: html/index.php:303
-msgid "Please check the username/password combination."
+#: plugins/config/class_configInLdap.inc:236
+msgid "Port"
 msgstr ""
 
-#: html/index.php:336
-msgid "Account locked. Please contact your system administrator!"
+#: plugins/config/class_configInLdap.inc:236
+msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: html/index.php:455
-#, php-format
-msgid "No value found in HTTP header \"%s\""
+#: plugins/config/class_configInLdap.inc:241
+msgid "CAS context"
 msgstr ""
 
-#: html/index.php:469
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
+#: plugins/config/class_configInLdap.inc:241
+msgid "CAS context to be used"
 msgstr ""
 
-#: html/index.php:479 html/index.php:546
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
+#: plugins/config/class_configInLdap.inc:248
+msgid "People and group storage"
 msgstr ""
 
-#: html/index.php:536
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
+#: plugins/config/class_configInLdap.inc:252
+msgid "People DN attribute"
 msgstr ""
 
-#: html/index.php:586
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
+#: plugins/config/class_configInLdap.inc:252
+msgid "Attribute to use at the beginning of the user's dn"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:117
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+#: plugins/config/class_configInLdap.inc:257
+msgid "CN pattern"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:303 ihtml/themes/breezy/recovery.tpl.c:83
-#: ihtml/themes/breezy/recovery.tpl.c:86
-msgid "Email address"
+#: plugins/config/class_configInLdap.inc:257
+msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:472
-#, php-format
-msgid "Did not find an account with login \"%s\""
+#: plugins/config/class_configInLdap.inc:262
+msgid "Strict naming policy"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:475
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
+#: plugins/config/class_configInLdap.inc:263
+msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:508
-#, php-format
-msgid "There is no account using email \"%s\""
+#: plugins/config/class_configInLdap.inc:268
+msgid "Users RDN"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:511
-#, php-format
-msgid "There are several accounts using email \"%s\""
+#: plugins/config/class_configInLdap.inc:268
+msgid "The branch where users are stored."
 msgstr ""
 
-#: html/class_passwordRecovery.inc:519
-#, php-format
-msgid ""
-"The user using email \"%s\" is locked. Please contact your administrator."
+#: plugins/config/class_configInLdap.inc:273
+msgid "ACL role RDN"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:574
-msgid "Contact your administrator, there was a problem with mail server"
+#: plugins/config/class_configInLdap.inc:273
+msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: html/class_passwordRecovery.inc:587
-msgid "This token is invalid"
+#: plugins/config/class_configInLdap.inc:278
+msgid "Restrict role members"
 msgstr ""
 
-#: html/class_passwordRecovery.inc:651
-msgid "There was a problem with mail server, confirmation email not sent"
+#: plugins/config/class_configInLdap.inc:278
+msgid ""
+"When enabled only users from the same branch or members of groups from the "
+"same branch can be added to a role."
 msgstr ""
 
-#: html/main.php:115
-msgid "PHP configuration"
+#: plugins/config/class_configInLdap.inc:282
+msgid "Separate address fields"
 msgstr ""
 
-#: html/main.php:116
+#: plugins/config/class_configInLdap.inc:282
 msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
+"Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: html/main.php:142
-msgid "Password change"
+#: plugins/config/class_configInLdap.inc:286
+msgid "Postal address pattern"
 msgstr ""
 
-#: html/main.php:142
-msgid "Your password is about to expire, please change your password!"
+#: plugins/config/class_configInLdap.inc:286
+msgid ""
+"When using separate address fields, you can use a pattern to fill "
+"postalAddress field."
 msgstr ""
 
-#: html/main.php:158
-msgid "Your password has expired, please set a new one."
+#: plugins/config/class_configInLdap.inc:290
+msgid "Avatar max size"
 msgstr ""
 
-#: html/main.php:208
-msgid "Running out of memory!"
+#: plugins/config/class_configInLdap.inc:290
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
 msgstr ""
 
-#: html/main.php:251
-msgid "User ACL checks disabled"
+#: plugins/config/class_configInLdap.inc:297
+msgid "Debugging"
 msgstr ""
 
-#: html/main.php:289
-msgid "Plugin"
+#: plugins/config/class_configInLdap.inc:300
+msgid "Display errors"
 msgstr ""
 
-#: html/main.php:290
-#, php-format
+#: plugins/config/class_configInLdap.inc:301
 msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not "
-"a file)!"
+"Shows PHP errors in the upper part of the screen. This should be disabled in "
+"production deployments, because it may contain passwords."
 msgstr ""
 
-#: html/main.php:305
-msgid "Configuration Error"
+#: plugins/config/class_configInLdap.inc:305
+msgid "Maximum LDAP query time"
 msgstr ""
 
-#: html/main.php:306
-#, php-format
+#: plugins/config/class_configInLdap.inc:305
 msgid ""
-"Fatal error: not all POST variables have been transfered by PHP - please "
-"inform your administrator!"
+"Stop LDAP actions if there is no answer within the specified number of "
+"seconds."
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
-#, php-format
-msgid "Welcome %s!"
+#: plugins/config/class_configInLdap.inc:310
+msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
-#: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
-msgid "References"
+#: plugins/config/class_configInLdap.inc:311
+msgid ""
+"Track LDAP timing statistics to the syslog. This may help to find indexing "
+"problems or bad search filters."
 msgstr ""
 
-#: plugins/personal/roles/class_userRoles.inc:33
-#: plugins/admin/groups/class_groupManagement.inc:35
-msgid "Groups and roles"
+#: plugins/config/class_configInLdap.inc:316
+msgid "Debug level"
 msgstr ""
 
-#: plugins/personal/roles/class_userRoles.inc:34
-msgid "Edit user's groups and roles"
+#: plugins/config/class_configInLdap.inc:317
+msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/personal/roles/class_userRoles.inc:49
-#: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+#: plugins/config/class_configInLdap.inc:327
+msgid "Log debug messages"
 msgstr ""
 
-#: plugins/personal/roles/class_userRoles.inc:60
-#: plugins/personal/roles/class_userRoles.inc:64
-msgid "Roles membership"
+#: plugins/config/class_configInLdap.inc:328
+msgid "Sends debug output to syslog as well"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
-msgid "Password method"
+#: plugins/config/class_configInLdap.inc:334
+msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
-msgid "Password hash method to use"
+#: plugins/config/class_configInLdap.inc:337
+msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:392
-#: setup/setup_migrate_adminAccount.tpl.c:14
-#: ihtml/themes/breezy/recovery.tpl.c:2 ihtml/themes/breezy/recovery.tpl.c:5
-#: ihtml/themes/breezy/login.tpl.c:17 ihtml/themes/breezy/login.tpl.c:20
-#: ihtml/themes/breezy/login.tpl.c:23
-msgid "Password"
+#: plugins/config/class_configInLdap.inc:338
+msgid ""
+"Determines whether a status bar will be shown on the bottom of lists, "
+"displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-msgid "Password (Leave empty if you do not wish to change it)"
+#: plugins/config/class_configInLdap.inc:343
+msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
-msgid "Password again"
+#: plugins/config/class_configInLdap.inc:344
+msgid ""
+"For very specific ACL rights setting where you might need to give right on a "
+"single object."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
-msgid "Same password as above, to avoid errors"
+#: plugins/config/class_configInLdap.inc:349
+msgid "Available department categories"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-#: plugins/admin/users/user-list.xml:79
-msgid "User"
+#: plugins/config/class_configInLdap.inc:349
+msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:279
-#: plugins/admin/users/class_userManagement.inc:245
-msgid "User account information"
+#: plugins/config/class_configInLdap.inc:356
+msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:285
-#: plugins/admin/users/class_userManagement.inc:245
-msgid "User account"
+#: plugins/config/class_configInLdap.inc:360
+msgid "Group or role"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
-msgid "User lock status"
+#: plugins/config/class_configInLdap.inc:365
+msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:310
-msgid "Personal information"
+#: plugins/config/class_configInLdap.inc:371
+msgid "Plugin menu blacklist"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:315
-msgid "Last name"
+#: plugins/config/class_configInLdap.inc:380
+msgid "ACL target filter limit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:315
-msgid "Last name of this user"
+#: plugins/config/class_configInLdap.inc:380
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:320
-msgid "First name"
+#: plugins/config/class_configInLdap.inc:396
+#: setup/class_setupStepLanguage.inc:69
+msgid "Automatic"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:320
-msgid "First name of this user"
+#: plugins/config/class_configInLdap.inc:542
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please "
+"install it or select an other one."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:325
-msgid "Short description of the user"
+#: plugins/config/class_mainPluginsConfig.inc:26
+msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:329
-msgid "Picture"
+#: plugins/config/class_mainPluginsConfig.inc:27
+msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:329
-msgid "The avatar for this user"
+#: plugins/config/class_mainPluginsConfig.inc:41
+msgid "Object groups"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:336
-msgid "Organizational contact information"
+#: plugins/config/class_mainPluginsConfig.inc:44
+msgid "Groups RDN"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:340
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-msgid "Location"
+#: plugins/config/class_mainPluginsConfig.inc:44
+msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:344
-#: plugins/admin/departments/class_department.inc:93
-msgid "State"
+#: plugins/config/class_mainPluginsConfig.inc:51
+msgid "SASL"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:348
-#: plugins/admin/departments/class_department.inc:102
-msgid "Address"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:348
-msgid "Business postal address"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid ""
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:352
-msgid "Room No."
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:352
-msgid "Room number"
+#: plugins/config/class_recoveryConfig.inc:28
+msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:356
-#: plugins/admin/departments/class_department.inc:106
-msgid "Phone"
+#: plugins/config/class_recoveryConfig.inc:41
+msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:356
-msgid "Business phone number"
+#: plugins/config/class_recoveryConfig.inc:46
+msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:360
-msgid "Mobile"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:360
-msgid "Business mobile number"
+#: plugins/config/class_recoveryConfig.inc:52
+msgid "Sender email address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
-msgid "Pager"
+#: plugins/config/class_recoveryConfig.inc:53
+msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
-msgid "Business pager number"
+#: plugins/config/class_recoveryConfig.inc:59
+msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:368
-#: plugins/admin/departments/class_department.inc:110
-msgid "Fax"
+#: plugins/config/class_recoveryConfig.inc:60
+msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:368
-msgid "Business fax number"
+#: plugins/config/class_recoveryConfig.inc:66
+msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:372
-msgid "Homepage"
+#: plugins/config/class_recoveryConfig.inc:67
+msgid ""
+"Just a security measure, you can put anything in there, even random "
+"characters"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:372
-msgid "Personal homepage"
+#: plugins/config/class_recoveryConfig.inc:73
+msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
-msgid "Account information"
+#: plugins/config/class_recoveryConfig.inc:74
+msgid ""
+"Users will also be able to enter one of their alternate addresses to "
+"recover their password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:383
-msgid "Login of this user"
+#: plugins/config/class_recoveryConfig.inc:79
+msgid "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:392
-msgid "Password of the user"
+#: plugins/config/class_recoveryConfig.inc:86
+msgid "First email"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
-msgid "Personal contact information"
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
+msgid "Subject"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:402
-msgid "Display name"
+#: plugins/config/class_recoveryConfig.inc:90
+msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:402
-msgid "Name this user should appear as. Used by Exchange."
+#: plugins/config/class_recoveryConfig.inc:93
+msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:406
-msgid "Home address"
+#: plugins/config/class_recoveryConfig.inc:96
+#, php-format
+msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:406
-msgid "Home postal address"
+#: plugins/config/class_recoveryConfig.inc:97
+#, php-format
+msgid ""
+"Body of the first email, sent when the user ask for a new password. Use %s "
+"for the login and the recovery link."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:410
-msgid "Private phone"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:410
-msgid "Home phone number"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:416
-msgid "Organizational information"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:421
-msgid "Title"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:421
+#: plugins/config/class_recoveryConfig.inc:100
+#, php-format
 msgid ""
-"Title of a person in their organizational context. Each title is one value "
-"of this multi-valued attribute"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:426
-#: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-msgid "Organization"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:430
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-#: plugins/admin/departments/dep-list.xml:21
-msgid "Department"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:430
-msgid "Department to which the user belongs"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:434
-msgid "Department No."
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:434
-msgid "Department number"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:438
-msgid "Employee No."
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:438
-msgid "Employee number"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:442
-msgid "Employee type"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:446
-#: plugins/admin/departments/class_department.inc:84
-msgid "Manager"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:456
-msgid "Street"
+"Hello,\n"
+"\n"
+"Here is your information: \n"
+" - Login : %s\n"
+" - Link : %s\n"
+"\n"
+"This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:456
-msgid "Street part of the address"
+#: plugins/config/class_recoveryConfig.inc:105
+msgid "Second email"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:460
-msgid "Post office box"
+#: plugins/config/class_recoveryConfig.inc:109
+msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:464
-msgid "Postal code"
+#: plugins/config/class_recoveryConfig.inc:112
+msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:668
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:671
-msgid "You are not allowed to change your own password"
+msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:682
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
-msgid "You must wait %d seconds before changing your password again"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:696
-msgid "Password is in history of old passwords"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:701
-#: plugins/personal/generic/class_user.inc:705
-msgid "Password is not being changed from existing value"
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:712
-msgid "You need to specify your current password in order to proceed."
-msgstr ""
-
-#: plugins/personal/generic/class_user.inc:714
 msgid ""
-"The passwords you've entered as \"New password\" and \"Repeated new password"
-"\" do not match."
+"Body of the second email, sent to confirm the password has been changed. Use "
+"%s for the user login."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:716
-#: ihtml/themes/breezy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:32
-#: ihtml/themes/breezy/recovery.tpl.c:35
-msgid "New password"
+#: plugins/config/class_recoveryConfig.inc:119
+#, php-format
+msgid ""
+"Hello,\n"
+"\n"
+"Your password has been changed.\n"
+"Your login is still %s."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
-msgid "The password used as new and current are too similar."
+#: plugins/config/class_pluginsConfigInLdap.inc:28
+msgid "Plugins"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
-msgid "The password used as new is too short."
+#: plugins/config/class_pluginsConfigInLdap.inc:29
+msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
-msgid "The password contains possibly problematic Unicode characters!"
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: plugins/admin/users/class_userManagement.inc:40
+#: setup/class_setupStepMigrate.inc:824
+msgid "Users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:39
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:44
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:49
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/admin/groups/class_ogroup.inc:224
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/departments/class_department.inc:170
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 #: plugins/admin/groups/class_roleGeneric.inc:95
 msgid "Phone number"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: ihtml/themes/breezy/recovery.tpl.c:89
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:87
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
+#, php-format
+msgid ""
+"User statistics could not be computed because of the following LDAP error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:122
 #, php-format
 msgid ""
-"Total user number could not be computed because of the following LDAP error: "
+"Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
+#: plugins/addons/dashboard/class_dashboardUsers.inc:186
+#, php-format
+msgid ""
+"Expired user information could not be computed because of the following LDAP "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:193
+#, php-format
+msgid ""
+"Expired user information could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:233
+#, php-format
+msgid "Not found (%s)"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
 msgid "Dashboard"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:29
+#: plugins/addons/dashboard/class_dashboard.inc:29
 msgid "Statistics and various information"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:38
+#: plugins/addons/dashboard/class_dashboard.inc:38
 msgid "Reporting"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:49
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
 #: plugins/addons/dashboard/main_stats.tpl.c:2
 msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:75
+#: plugins/addons/dashboard/class_dashboard.inc:79
 #, php-format
 msgid ""
 "Statistics for type \"%s\" could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:38
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-msgid "Password recovery"
+#: plugins/admin/groups/class_ogroup.inc:75
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
-msgid "Settings for the password recovery feature"
+#: plugins/admin/groups/class_ogroup.inc:83
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
-msgid "Password recovery settings"
+#: plugins/admin/groups/class_ogroup.inc:182
+msgid "Object group"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
-msgid "Activate password recovery"
+#: plugins/admin/groups/class_ogroup.inc:183
+msgid "Object group information"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/admin/groups/class_ogroup.inc:189
+#: plugins/admin/groups/class_ogroup.inc:190
+msgid "Group"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
-msgid "Sender email address"
+#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/aclrole/class_aclRole.inc:94
+msgid "Properties"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
-msgid "Email address from which mails will be sent"
+#: plugins/admin/groups/class_ogroup.inc:224
+#: plugins/admin/groups/class_roleGeneric.inc:86
+msgid "Name of this group"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
-msgid "Link validity (minutes)"
+#: plugins/admin/groups/class_ogroup.inc:229
+msgid "Short description of this group"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
-msgid "Number of minutes before a recovery link expires"
+#: plugins/admin/groups/class_ogroup.inc:234
+msgid "Owner"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
-msgid "Salt for tokens"
+#: plugins/admin/groups/class_ogroup.inc:240
+msgid "Member objects"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
-msgid ""
-"Just a security measure, you can put anything in there, even random "
-"characters"
+#: plugins/admin/groups/class_ogroup.inc:243
+msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
-msgid "Allow the use of alternate addresses"
+#: plugins/admin/groups/class_ogroup.inc:250
+msgid "System trust"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
-msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+#: plugins/admin/groups/class_ogroup.inc:254
+msgid "Trust mode"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:188
-msgid "Login attribute"
+#: plugins/admin/groups/class_ogroup.inc:254
+msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-msgid "Usually uid, but you can use something else for instance in case of SSO"
+#: plugins/admin/groups/class_ogroup.inc:258
+msgid "disabled"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
-msgid "First email"
+#: plugins/admin/groups/class_ogroup.inc:258
+msgid "full access"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
-msgid "Subject"
+#: plugins/admin/groups/class_ogroup.inc:258
+msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
-msgid "Subject of the first email"
+#: plugins/admin/groups/class_ogroup.inc:261
+msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
-msgid "[FusionDirectory] Password recovery link"
+#: plugins/admin/groups/class_ogroup.inc:340
+msgid ""
+"Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
-#, php-format
-msgid "Body (first %s is login, second is link)"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+msgid "Members"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
-#, php-format
-msgid ""
-"Body of the first email, sent when the user ask for a new password. Use %s "
-"for the login and the recovery link."
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
-#, php-format
-msgid ""
-"Hello,\n"
-"\n"
-"Here is your information: \n"
-" - Login : %s\n"
-" - Link : %s\n"
-"\n"
-"This link is only valid for 10 minutes."
+#: plugins/admin/groups/class_roleGeneric.inc:54
+msgid "Role information"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
-msgid "Second email"
+#: plugins/admin/groups/class_roleGeneric.inc:60
+msgid "Organizational role"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
-msgid "Subject of the second email"
+#: plugins/admin/groups/class_roleGeneric.inc:82
+#: ihtml/themes/breezy/msg_dialog.tpl.c:8
+msgid "Information"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
-msgid "[FusionDirectory] Password recovery successful"
+#: plugins/admin/groups/class_roleGeneric.inc:91
+msgid "Description of the role"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
-#, php-format
-msgid "Body (%s is login)"
+#: plugins/admin/groups/class_roleGeneric.inc:99
+msgid "Fax number"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
-#, php-format
-msgid ""
-"Body of the second email, sent to confirm the password has been changed. Use "
-"%s for the user login."
+#: plugins/admin/groups/class_roleGeneric.inc:105
+msgid "Role members"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
-#, php-format
-msgid ""
-"Hello,\n"
-"\n"
-"Your password has been changed.\n"
-"Your login is still %s."
+#: plugins/admin/groups/class_roleGeneric.inc:108
+msgid "Add users for the role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
-msgid "Configuration"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
-msgid "FusionDirectory configuration"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
-msgid "Configuration screen of FusionDirectory"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
-msgid "Look and feel"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
-msgid "Language"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
-msgid ""
-"Language of the application. If 'automatic' or not available, the one asked "
-"by the browser will be used. This setting can be overriden per user."
+#: plugins/admin/groups/class_groupManagement.inc:134
+#: plugins/admin/groups/class_groupManagement.inc:137
+#: plugins/admin/groups/class_groupManagement.inc:155
+msgid "Action canceled"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
-msgid "Theme"
+#: plugins/admin/groups/class_groupManagement.inc:134
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
-msgid "Theme to be used"
+#: plugins/admin/groups/class_groupManagement.inc:137
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
-msgid "Timezone"
+#: plugins/admin/groups/class_groupManagement.inc:155
+#, php-format
+msgid "System %s is currently installing"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
-msgid "Timezone to be used"
+#: plugins/admin/groups/class_groupManagement.inc:173
+#: plugins/admin/groups/class_groupManagement.inc:204
+msgid "Infrastructure service"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
-msgid "Core settings"
+#: plugins/admin/groups/class_groupManagement.inc:176
+#: plugins/admin/groups/class_groupManagement.inc:181
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
-msgid "LDAP size limit"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:176
+#, php-format
+msgid "Action called without error (results were \"%s\")"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
-msgid "Defines the number of entries to get from LDAP by default."
+#: plugins/admin/groups/class_groupManagement.inc:181
+#, php-format
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
-msgid "Edit locking"
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
-msgid ""
-"Check if a entry currently being edited has been modified outside of "
-"FusionDirectory in the meantime."
+#: plugins/admin/acl/class_aclManagement.inc:31
+#: plugins/admin/acl/class_aclManagement.inc:32
+#: plugins/admin/acl/class_aclManagement.inc:45
+msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
-msgid "Enable logging"
+#: plugins/admin/acl/class_aclManagement.inc:33
+msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
-msgid "Event logging on FusionDirectory side."
+#: plugins/admin/acl/class_aclManagement.inc:49
+msgid "Dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
-msgid "Schema validation"
+#: plugins/admin/acl/class_aclManagement.inc:49
+msgid "DN you wish to add assignments for"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
-msgid "Enables schema checking during login."
+#: plugins/admin/acl/class_aclManagement.inc:110
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/admin/acl/class_aclManagement.inc:141
+msgid "ACL assignments"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later on."
+#: plugins/admin/acl/class_aclManagement.inc:142
+msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
+#: plugins/admin/acl/class_aclManagement.inc:143
+msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
+msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:148
-msgid "Password settings"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
+msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:151
-msgid "Password default hash"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:151
-msgid "Default hash to be used"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
+msgid "Subtree"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
-msgid "Force default hash"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
+msgid "Base only"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
-msgid "Force the use of the default password hash"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+msgid "Role to apply"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:160
-msgid "Password minimum length"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
+msgid "For all users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:160
-msgid "Minimum length of user passwords"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
+msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
-msgid "Password minimum differs"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
-msgid "Minimum number of different characters from last password"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
-msgid "Use account expiration"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:171
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
 msgid ""
-"Enables shadow attribute tests during the login to FusionDirectory and "
-"forces password renewal or account locking"
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
-msgid "SASL Realm"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:179
-msgid "SASL Exop"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:179
-msgid "Attribute to be stored in the userPassword attribute"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:185
-msgid "Login and session"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template "
+"masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:189
-msgid "Which LDAP attribute should be used as the login name during login."
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:195
-msgid "Enforce encrypted connections"
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:196
-msgid ""
-"Enables PHP security checks to force encrypted access (https) to the web "
-"interface."
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
-msgid "Warn if session is not encrypted"
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
-msgid "will display a warning to the user when http is used instead of https."
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
-msgid "Session lifetime"
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
-msgid "Defines when a session will expire in seconds (0 to disable)."
+#: plugins/admin/users/class_userManagement.inc:41
+msgid "Manage users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
-msgid "HTTP Basic authentication"
+#: plugins/admin/users/class_userManagement.inc:42
+msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/admin/users/class_userManagement.inc:113
+#: plugins/admin/users/class_userManagement.inc:132
+msgid "Account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Header authentication"
+#: plugins/admin/users/class_userManagement.inc:114
+#, php-format
+msgid ""
+"Password method \"%s\" does not support locking. Account \"%s\" has not been "
+"locked!"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/admin/users/class_userManagement.inc:133
+#, php-format
+msgid ""
+"Locking failed using password method \"%s\". Account \"%s\" has not been "
+"locked!"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Header name"
+#: plugins/admin/users/class_LockAction.inc:27
+msgid "Lock users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Name of the header containing user identifier."
+#: plugins/admin/users/class_LockAction.inc:27
+msgid "Unlock users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:228
-msgid "SSL"
+#: plugins/admin/departments/class_country.inc:29
+#: plugins/admin/departments/class_country.inc:30
+#: plugins/admin/departments/class_country.inc:35
+#: plugins/admin/departments/class_department.inc:98
+msgid "Country"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:231
-msgid "Key path"
+#: plugins/admin/departments/class_country.inc:52
+msgid "country"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:231
-msgid "Path to FusionDirectory private key. Unused for now."
+#: plugins/admin/departments/class_country.inc:58
+msgid "Country code"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
-msgid "Certificate path"
+#: plugins/admin/departments/class_country.inc:58
+msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
-msgid "Path to FusionDirectory certificate. Unused for now."
+#: plugins/admin/departments/class_departmentManagement.inc:29
+#: plugins/admin/departments/class_department.inc:31
+#: plugins/admin/departments/class_department.inc:35
+msgid "Departments"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
-#: plugins/config/class_configInLdap.inc:256
-msgid "CA certificate path"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
-msgid "Path to the CA certificate. Used for validating Argonaut Server host."
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:248
-msgid "CAS"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:251
-msgid "Enable CAS"
+#: plugins/admin/departments/class_organization.inc:29
+#: plugins/admin/departments/class_organization.inc:30
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
+msgid "Organization"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:251
-msgid "CAS login will be used instead of LDAP bind"
+#: plugins/admin/departments/class_organization.inc:52
+msgid "organization"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "Path to the CA certificate of the CAS server"
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
-msgid "Host"
+#: plugins/admin/departments/class_department.inc:56
+msgid "department"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
-msgid "Host of the CAS server"
+#: plugins/admin/departments/class_department.inc:66
+#, php-format
+msgid "Name of %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Port"
+#: plugins/admin/departments/class_department.inc:66
+#, php-format
+msgid "A name for this %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Port the CAS server is listening on"
+#: plugins/admin/departments/class_department.inc:71
+#, php-format
+msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "CAS context"
+#: plugins/admin/departments/class_department.inc:75
+msgid "Category"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "CAS context to be used"
+#: plugins/admin/departments/class_department.inc:75
+#, php-format
+msgid "Category of this %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:278
-msgid "People and group storage"
+#: plugins/admin/departments/class_department.inc:79
+msgid "Website"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:282
-msgid "People DN attribute"
+#: plugins/admin/departments/class_department.inc:79
+#, php-format
+msgid "Website of this %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:282
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
+msgid "Manager"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "CN pattern"
+#: plugins/admin/departments/class_department.inc:83
+#, php-format
+msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "The pattern to use to build the common name field"
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
+msgid "Location"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
-msgid "Strict naming policy"
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
+msgid "State"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:293
-msgid "Enables strict checking of user and group names"
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
+msgid "Address"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
-msgid "Users RDN"
+#: plugins/admin/departments/class_department.inc:101
+#, php-format
+msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
-msgid "The branch where users are stored."
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
+msgid "Phone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
-msgid "ACL role RDN"
+#: plugins/admin/departments/class_department.inc:105
+msgid "Telephone number"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
-msgid "The branch where ACL roles are stored."
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
+msgid "Fax"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
-msgid "Restrict role members"
+#: plugins/admin/departments/class_department.inc:111
+msgid "Facsimile telephone number"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
-msgid ""
-"When enabled only users from the same branch or members of groups from the "
-"same branch can be added to a role."
+#: plugins/admin/departments/class_domain.inc:29
+#: plugins/admin/departments/class_domain.inc:30
+#: plugins/admin/departments/class_domain.inc:34
+msgid "Domain"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:312
-msgid "Separate address fields"
+#: plugins/admin/departments/class_domain.inc:51
+msgid "domain"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:312
-msgid ""
-"Expose street, postOfficeBox and postalCode fields instead of postalAddress."
+#: plugins/admin/departments/class_dcObject.inc:29
+#: plugins/admin/departments/class_dcObject.inc:30
+#: plugins/admin/departments/class_dcObject.inc:34
+msgid "Domain Component"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:316
-msgid "Postal address pattern"
+#: plugins/admin/departments/class_dcObject.inc:51
+msgid "domain component"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:316
-msgid ""
-"When using separate address fields, you can use a pattern to fill "
-"postalAddress field."
+#: plugins/admin/departments/class_locality.inc:29
+#: plugins/admin/departments/class_locality.inc:30
+#: plugins/admin/departments/class_locality.inc:35
+msgid "Locality"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:322
-msgid "Debugging"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:325
-msgid "Display errors"
+#: plugins/admin/aclrole/class_aclRole.inc:38
+#, php-format
+msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:326
-msgid ""
-"Shows PHP errors in the upper part of the screen. This should be disabled in "
-"productive deployments, because there might be some passwords in it."
+#: plugins/admin/aclrole/class_aclRole.inc:76
+msgid "Access control roles"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Maximum LDAP query time"
+#: plugins/admin/aclrole/class_aclRole.inc:80
+msgid "ACL role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid ""
-"Stop LDAP actions if there is no answer within the specified number of "
-"seconds."
+#: plugins/admin/aclrole/class_aclRole.inc:98
+msgid "A name for this role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
-msgid "Log LDAP statistics"
+#: plugins/admin/aclrole/class_aclRole.inc:102
+msgid "Short description of this role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:336
-msgid ""
-"Track LDAP timing statistics to the syslog. This may help to find indexing "
-"problems or bad search filters."
+#: plugins/admin/aclrole/class_aclRole.inc:108
+msgid "ACLs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
-msgid "Debug level"
+#: plugins/admin/aclrole/class_aclRole.inc:112
+msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:342
-msgid "Display certain information on each page load."
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:185
+msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:354
-msgid "Miscellaneous"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:187
+#, php-format
+msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:357
-msgid "Display summary in listings"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:191
+msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:358
-msgid ""
-"Determines whether a status bar will be shown on the bottom of lists, "
-"displaying a short summary of type and number of elements in the list."
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:193
+msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
-msgid "Show ACL tab on all objects"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:201
+msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:364
-msgid ""
-"For very specific ACL rights setting where you might need to give right on a "
-"single object."
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:214
+msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
-msgid "Available department categories"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:216
+#, php-format
+msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
-msgid "Available categories in the departments dropdown"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:257
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:355
+msgid "read"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:376
-msgid "Use this to hide some menu entry to specific groups of users"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:259
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:356
+msgid "write"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:380
-msgid "Group or role"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:385
-msgid "Plugin to blacklist"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:391
-msgid "Plugin menu blacklist"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:347
+msgid "Create objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:400
-#: plugins/config/class_configInLdap.inc:428
-msgid "Hooks"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:348
+msgid "Move objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:405
-msgid "Hooks that are called when specific actions happens"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:349
+msgid "Remove objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:409
-msgid "Tab"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
+msgid "Grant permission to owner"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:409
-msgid "The tab that this hook concerns"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:360
+msgid "Complete object"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-#: plugins/admin/acl/class_aclAssignment.inc:41
-msgid "Mode"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "When to call this command"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:421
-msgid "Command"
+#: plugins/personal/roles/class_userRoles.inc:34
+msgid "Edit user's groups and roles"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:421
-msgid "The command that will be called"
+#: plugins/personal/roles/class_userRoles.inc:49
+#: plugins/personal/roles/class_userRoles.inc:53
+msgid "Group memberships"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:435
-msgid "Display hook output"
+#: plugins/personal/roles/class_userRoles.inc:60
+#: plugins/personal/roles/class_userRoles.inc:64
+msgid "Roles membership"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:436
-msgid ""
-"When enabled successful hook execution output is displayed to the user using "
-"a dialog."
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
+msgid "Password method"
 msgstr ""
 
-#: plugins/config/class_pluginsConfigInLdap.inc:29
-msgid "Plugins"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
+msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/config/class_pluginsConfigInLdap.inc:30
-msgid "Configuration for plugins"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
+#: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
+#: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
+#: ihtml/themes/breezy/login.tpl.c:20 ihtml/themes/breezy/login.tpl.c:23
+#: setup/setup_migrate_adminAccount.tpl.c:14
+msgid "Password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
-msgid "Plugins configuration"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
-msgid "FusionDirectory plugins configuration"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
+msgid "Password again"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
-msgid "Object groups"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
+msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
-msgid "Groups RDN"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
-msgid "Branch in which object groups will be stored"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
-msgid "SASL"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:270
+#, php-format
+msgid ""
+"Too many elements in array value for password field %s: %d instead of %d"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:272
+#, php-format
+msgid ""
+"Not enough elements in array value for password field %s: %d instead of %d"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:274
+#, php-format
+msgid "Array value for password field %s must have numeric keys"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
-msgid "Dashboard configuration"
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:280
+#, php-format
+msgid "Invalid value type for password field %s, must be array or string"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
-msgid "FusionDirectory dashboard plugin configuration"
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
-msgid "Dashboard name schema"
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
-msgid "Number of digits"
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
-msgid "Number of digits to use after prefix"
+#: plugins/personal/generic/class_user.inc:75
+msgid "User lock status"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
-msgid "Prefixes"
+#: plugins/personal/generic/class_user.inc:88
+msgid "Personal information"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
-msgid "Prefixes to be used for computer ids"
+#: plugins/personal/generic/class_user.inc:93
+msgid "Last name"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
-msgid "Dashboard expired users"
+#: plugins/personal/generic/class_user.inc:93
+msgid "Last name of this user"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
-msgid "Number of days"
+#: plugins/personal/generic/class_user.inc:98
+msgid "First name"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
-msgid ""
-"Number of days before expiration needed for an account to show in the "
-"dashboard next expired accounts list"
+#: plugins/personal/generic/class_user.inc:98
+msgid "First name of this user"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
-#: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Departments"
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
-msgid "department"
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the surname(s)"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/groups/class_ogroup.inc:187
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/aclrole/class_aclRole.inc:95
-msgid "Properties"
+#: plugins/personal/generic/class_user.inc:108
+msgid "Short description of the user"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
-#, php-format
-msgid "Name of %s"
+#: plugins/personal/generic/class_user.inc:112
+msgid "Picture"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
-#, php-format
-msgid "A name for this %s"
+#: plugins/personal/generic/class_user.inc:112
+msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
-#, php-format
-msgid "Short description of this %s"
+#: plugins/personal/generic/class_user.inc:119
+msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
-msgid "Category"
+#: plugins/personal/generic/class_user.inc:131
+msgid "Business postal address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
-#, php-format
-msgid "Category of this %s"
+#: plugins/personal/generic/class_user.inc:135
+msgid "Room No."
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
-msgid "Website"
+#: plugins/personal/generic/class_user.inc:135
+msgid "Room number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
-#, php-format
-msgid "Website of this %s"
+#: plugins/personal/generic/class_user.inc:139
+msgid "Business phone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#, php-format
-msgid "Manager of this %s"
+#: plugins/personal/generic/class_user.inc:145
+msgid "Mobile"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
-#: plugins/admin/departments/class_country.inc:29
-#: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
-msgid "Country"
+#: plugins/personal/generic/class_user.inc:145
+msgid "Business mobile number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#, php-format
-msgid "A postal address for this %s"
+#: plugins/personal/generic/class_user.inc:151
+msgid "Pager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-msgid "Telephone number"
+#: plugins/personal/generic/class_user.inc:151
+msgid "Business pager number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:110
-msgid "Facsimile telephone number"
+#: plugins/personal/generic/class_user.inc:155
+msgid "Business fax number"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
-msgid "organization"
+#: plugins/personal/generic/class_user.inc:159
+msgid "Homepage"
 msgstr ""
 
-#: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
-#: plugins/admin/departments/class_domain.inc:34
-msgid "Domain"
+#: plugins/personal/generic/class_user.inc:159
+msgid "Personal homepage"
 msgstr ""
 
-#: plugins/admin/departments/class_domain.inc:51
-msgid "domain"
+#: plugins/personal/generic/class_user.inc:165
+msgid "Account information"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid "Manage departments"
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login of this user"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:36
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
+#: plugins/personal/generic/class_user.inc:174
+#: setup/class_setupStepLanguage.inc:30
+msgid "Preferred language"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:38
-msgid "Users and groups"
+#: plugins/personal/generic/class_user.inc:179
+msgid "Password of the user"
 msgstr ""
 
-#: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
-#: plugins/admin/departments/class_dcObject.inc:34
-msgid "Domain Component"
+#: plugins/personal/generic/class_user.inc:185
+msgid "Personal contact information"
 msgstr ""
 
-#: plugins/admin/departments/class_dcObject.inc:51
-msgid "domain component"
+#: plugins/personal/generic/class_user.inc:189
+msgid "Display name"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
-msgid "Locality"
+#: plugins/personal/generic/class_user.inc:189
+msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
+#: plugins/personal/generic/class_user.inc:193
+msgid "Home address"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: plugins/personal/generic/class_user.inc:193
+msgid "Home postal address"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
-msgid "country"
+#: plugins/personal/generic/class_user.inc:197
+msgid "Private phone"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
-msgid "Manage users"
+#: plugins/personal/generic/class_user.inc:197
+msgid "Home phone number"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
-msgid "Manage user accounts and their properties"
+#: plugins/personal/generic/class_user.inc:203
+msgid "Organizational information"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:191
-msgid "Account locking"
+#: plugins/personal/generic/class_user.inc:208
+msgid "Title"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:192
-#, php-format
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
-"Password method \"%s\" does not support locking. Account \"%s\" has not been "
-"locked!"
+"Title of a person in their organizational context. Each title is one value "
+"of this multi-valued attribute"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:218
-msgid "Unlock account"
+#: plugins/personal/generic/class_user.inc:217
+msgid "Unit"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:220
-msgid "Lock account"
+#: plugins/personal/generic/class_user.inc:217
+msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
+#: plugins/personal/generic/class_user.inc:221
+msgid "Department No."
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
+#: plugins/personal/generic/class_user.inc:221
+msgid "Department number"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
+#: plugins/personal/generic/class_user.inc:225
+msgid "Employee No."
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:127
-msgid "Lock users"
+#: plugins/personal/generic/class_user.inc:225
+msgid "Employee number"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
-msgid "Unlock users"
+#: plugins/personal/generic/class_user.inc:229
+msgid "Employee type"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
+#: plugins/personal/generic/class_user.inc:243
+msgid "Street"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
+#: plugins/personal/generic/class_user.inc:243
+msgid "Street part of the address"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
+#: plugins/personal/generic/class_user.inc:247
+msgid "Post office box"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
+#: plugins/personal/generic/class_user.inc:251
+msgid "Postal code"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
+#: plugins/personal/generic/class_user.inc:433
+#, php-format
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/groups/class_groupManagement.inc:259
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/personal/generic/class_user.inc:463
+msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
-msgid "Role information"
+#: plugins/personal/generic/class_user.inc:474
+#, php-format
+msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:60
-msgid "Organizational role"
+#: plugins/personal/generic/class_user.inc:486
+msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:82
-#: ihtml/themes/breezy/msg_dialog.tpl.c:8
-msgid "Information"
+#: plugins/personal/generic/class_user.inc:491
+#: plugins/personal/generic/class_user.inc:495
+msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/groups/class_ogroup.inc:191
-msgid "Name of this group"
+#: plugins/personal/generic/class_user.inc:502
+msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:91
-msgid "Description of the role"
+#: plugins/personal/generic/class_user.inc:504
+msgid ""
+"The passwords you've entered as \"New password\" and \"Repeated new password"
+"\" do not match."
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:99
-msgid "Fax number"
+#: plugins/personal/generic/class_user.inc:506
+#: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
+#: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
+#: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
+msgid "New password"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:105
-msgid "Role members"
+#: plugins/personal/generic/class_user.inc:508
+msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:108
-msgid "Add users for the role"
+#: plugins/personal/generic/class_user.inc:510
+msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
+#: plugins/personal/generic/class_user.inc:512
+msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
+#: plugins/generic/references/class_reference.inc:27
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
+msgid "References"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
+#: plugins/generic/welcome/main.inc:24
+#, php-format
+msgid "Welcome %s!"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: setup/class_setupStepMigrate.inc:157 setup/setup_migrate_baseOC.tpl.c:11
+msgid "Migrate"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: setup/class_setupStepMigrate.inc:210 setup/class_setupStepChecks.inc:30
+msgid "PHP module and extension checks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: setup/class_setupStepMigrate.inc:227 setup/class_setupStepMigrate.inc:228
+msgid "LDAP inspection"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:196
-#: plugins/admin/groups/class_groupManagement.inc:222
-msgid "Infrastructure service"
+#: setup/class_setupStepMigrate.inc:229
+msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-msgid "Action triggered"
+#: setup/class_setupStepMigrate.inc:237
+msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error (result was \"%s\")"
+#: setup/class_setupStepMigrate.inc:243
+msgid ""
+"Allow users to edit their own information (main tab and posix use only on "
+"base)"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:259
-msgid "Edit role properties"
+#: setup/class_setupStepMigrate.inc:249
+msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:275
-msgid "Posix"
+#: setup/class_setupStepMigrate.inc:262
+msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:275
-msgid "Edit posix properties"
+#: setup/class_setupStepMigrate.inc:263
+msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:318
-msgid "Show user groups"
+#: setup/class_setupStepMigrate.inc:264
+msgid "Checking for invisible users"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:319
-msgid "Show organizational roles"
+#: setup/class_setupStepMigrate.inc:265
+msgid "Checking for super administrator"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:320
-msgid "Show application groups"
+#: setup/class_setupStepMigrate.inc:266
+msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:321
-msgid "Show groups of groups"
+#: setup/class_setupStepMigrate.inc:267
+msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show unidentified groups"
+#: setup/class_setupStepMigrate.inc:268
+msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: setup/class_setupStepMigrate.inc:269
+msgid "Checking for invisible departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:327
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: setup/class_setupStepMigrate.inc:273
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:330
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: setup/class_setupStepMigrate.inc:274
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-msgid "Show DSA entries"
+#: setup/class_setupStepMigrate.inc:275
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:340
-msgid "Show server groups"
+#: setup/class_setupStepMigrate.inc:343 setup/class_setupStepMigrate.inc:502
+#: setup/class_setupStepMigrate.inc:566 setup/class_setupStepMigrate.inc:751
+#: setup/class_setupStepMigrate.inc:934 setup/class_setupStepMigrate.inc:1040
+#: setup/class_setupStepMigrate.inc:1070 setup/class_setupStepMigrate.inc:1321
+#: setup/class_setupStepMigrate.inc:1432
+msgid "LDAP query failed"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:341
-msgid "Show workstation groups"
+#: setup/class_setupStepMigrate.inc:344 setup/class_setupStepMigrate.inc:503
+#: setup/class_setupStepMigrate.inc:567 setup/class_setupStepMigrate.inc:752
+#: setup/class_setupStepMigrate.inc:935 setup/class_setupStepMigrate.inc:1041
+#: setup/class_setupStepMigrate.inc:1071 setup/class_setupStepMigrate.inc:1322
+#: setup/class_setupStepMigrate.inc:1433
+msgid "The \"root object\" is possibly missing."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:342
-msgid "Show terminal groups"
+#: setup/class_setupStepMigrate.inc:360 setup/class_setupStepMigrate.inc:383
+#: setup/class_setupStepMigrate.inc:434 setup/class_setupStepMigrate.inc:514
+#: setup/class_setupStepMigrate.inc:525 setup/class_setupStepMigrate.inc:835
+msgid "Failed"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:343
-msgid "Show printer groups"
+#: setup/class_setupStepMigrate.inc:361
+#, php-format
+msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show phone groups"
+#: setup/class_setupStepMigrate.inc:362
+msgid "Please check your installation."
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: setup/class_setupStepMigrate.inc:384
 #, php-format
-msgid "Unknown type : %s"
+msgid ""
+"Cannot handle the structural object type of your root object. Please try to "
+"add the object class '%s' manually."
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:65
+#: setup/class_setupStepMigrate.inc:515
 #, php-format
-msgid "Non existing dn: %s"
+msgid ""
+"The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:154
-msgid "Object group"
-msgstr ""
-
-#: plugins/admin/groups/class_ogroup.inc:155
-msgid "Object group information"
+#: setup/class_setupStepMigrate.inc:526
+#, php-format
+msgid ""
+"The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:159
-#: plugins/admin/groups/class_ogroup.inc:160
-msgid "Group"
+#: setup/class_setupStepMigrate.inc:601
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:196
-msgid "Short description of this group"
+#: setup/class_setupStepMigrate.inc:606
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:203
-msgid "Member objects"
+#: setup/class_setupStepMigrate.inc:622 setup/class_setupStepMigrate.inc:633
+msgid "User migration"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:206
-msgid "Objects member of this group"
+#: setup/class_setupStepMigrate.inc:720 setup/class_setupStepMigrate.inc:981
+msgid "Migration error"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:213
-msgid "System trust"
+#: setup/class_setupStepMigrate.inc:722
+#, php-format
+msgid "Cannot migrate entry \"%s\":"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:217
-msgid "Trust mode"
+#: setup/class_setupStepMigrate.inc:827
+msgid "Groups"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:217
-msgid "Type of authorization for those hosts"
+#: setup/class_setupStepMigrate.inc:830
+msgid "Roles"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:221
-msgid "disabled"
+#: setup/class_setupStepMigrate.inc:836
+msgid "There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:221
-msgid "full access"
+#: setup/class_setupStepMigrate.inc:875
+msgid "Gives all rights on all objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:221
-msgid "allow access to these hosts"
+#: setup/class_setupStepMigrate.inc:949
+msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:224
-msgid "Only allow this group to connect to this list of hosts"
+#: setup/class_setupStepMigrate.inc:951
+msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:315
-msgid ""
-"Putting both workstations and terminals in the same group is not allowed"
+#: setup/class_setupStepMigrate.inc:953
+msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
+#: setup/class_setupStepMigrate.inc:983
+#, php-format
+msgid "Cannot add ACL role \"%s\":"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: setup/class_setupStepMigrate.inc:1003
+#, php-format
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: setup/class_setupStepMigrate.inc:1005
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
-msgid "ACL assignment creation"
+#: setup/class_setupStepMigrate.inc:1048
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
-msgid "Create an ACL assignment on an arbitrary dn"
+#: setup/class_setupStepMigrate.inc:1076 setup/class_setupStepMigrate.inc:1327
+msgid "Size limit hit"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
-msgid "Dn"
+#: setup/class_setupStepMigrate.inc:1077 setup/class_setupStepMigrate.inc:1328
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
-msgid "DN you wish to add assignments for"
+#: setup/class_setupStepMigrate.inc:1120 setup/class_setupStepMigrate.inc:1134
+msgid "Move users into configured user tree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+#: setup/class_setupStepMigrate.inc:1152
+msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:139
-msgid "ACL assignments"
+#: setup/class_setupStepMigrate.inc:1164
+#, php-format
+msgid "Entry will be moved from:<br/>\t%s<br/>to:<br/>\t%s"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
-msgid "ACL assignments management"
+#: setup/class_setupStepMigrate.inc:1174
+msgid "The following references will be updated"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
-msgid "Manage ACL roles assignments to users"
+#: setup/class_setupStepMigrate.inc:1196
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:219
-#: plugins/admin/acl/class_aclAssignment.inc:273
-msgid "ACL Assignment"
+#: setup/class_setupStepMigrate.inc:1198
+#, php-format
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
-msgid "ACL Assignment Dialog"
+#: setup/class_setupStepMigrate.inc:1214 setup/class_setupStepMigrate.inc:1228
+msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
-msgid "Access control roles assignment dialog"
+#: setup/class_setupStepMigrate.inc:1248
+#, php-format
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-msgid "Is this applying on complete subtree or only the base?"
+#: setup/class_setupStepMigrate.inc:1250
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
-msgid "Subtree"
+#: setup/class_setupStepMigrate.inc:1266 setup/class_setupStepMigrate.inc:1280
+msgid "Move POSIX groups into configured groups tree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
-msgid "Base only"
+#: setup/class_setupStepMigrate.inc:1363
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
-msgid "Role to apply"
+#: setup/class_setupStepMigrate.inc:1365
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
-msgid "For all users"
+#: setup/class_setupStepMigrate.inc:1380 setup/class_setupStepMigrate.inc:1391
+msgid "Department migration"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
-msgid "Apply this ACL for all LDAP users"
+#: setup/class_setupStepMigrate.inc:1461
+#, php-format
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
+#: setup/class_setupStepLdap.inc:33
+msgid "LDAP connection"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Users or groups to assign this role to."
+#: setup/class_setupStepLdap.inc:36
+msgid "Location name"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: setup/class_setupStepLdap.inc:36
+msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:259
-msgid "ACL assignment"
+#: setup/class_setupStepLdap.inc:41
+msgid "Connection URI"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:274
-msgid "Access control roles assignment"
+#: setup/class_setupStepLdap.inc:41
+msgid "URI to contact the LDAP server. Usually starts with ldap://"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:293
-msgid "Assignments"
+#: setup/class_setupStepLdap.inc:46
+msgid "TLS connection"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:297
-msgid "ACL role assignments for this base"
+#: setup/class_setupStepLdap.inc:46
+msgid "Should TLS be used to connect to this LDAP server?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: setup/class_setupStepLdap.inc:50 setup/class_setupStepLdap.inc:119
+#: setup/class_setupStepLdap.inc:127
+msgid "The LDAP directory base"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
-msgid "No ACL settings for this category"
+#: setup/class_setupStepLdap.inc:56
+msgid "Authentication"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
-#, php-format
-msgid "ACL for these objects: %s"
+#: setup/class_setupStepLdap.inc:59
+msgid ""
+"DN of the admin account to use for binding to the LDAP. Base is "
+"automatically appended."
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit category ACL"
+#: setup/class_setupStepLdap.inc:74
+msgid "Admin DN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-msgid "Reset category ACL"
+#: setup/class_setupStepLdap.inc:77
+msgid "Admin password"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
-msgid "List of available ACL categories"
+#: setup/class_setupStepLdap.inc:77
+msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
-msgid "All objects in current subtree"
+#: setup/class_setupStepLdap.inc:83
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
-#, php-format
-msgid "Edit ACL for \"%s\""
+#: setup/class_setupStepLdap.inc:86
+msgid "Current status"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:357
-msgid "read"
+#: setup/class_setupStepLdap.inc:86
+msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "write"
+#: setup/class_setupStepLdap.inc:107
+msgid "LDAP setup"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:344
-msgid "Show/hide advanced settings"
+#: setup/class_setupStepLdap.inc:108
+msgid "LDAP connection setup"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:349
-msgid "Create objects"
+#: setup/class_setupStepLdap.inc:109
+msgid ""
+"This dialog performs the basic configuration of the LDAP connectivity for "
+"FusionDirectory."
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Move objects"
+#: setup/class_setupStepLdap.inc:180
+#, php-format
+msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Remove objects"
+#: setup/class_setupStepLdap.inc:182
+#, php-format
+msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:353
-msgid "Grant permission to owner"
+#: setup/class_setupStepLdap.inc:184
+msgid "Retry"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:362
-msgid "Complete object"
+#: setup/class_setupStepLdap.inc:188
+#, php-format
+msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: setup/class_setupStepLdap.inc:189 setup/class_setupStepLdap.inc:193
+msgid "Refresh"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: setup/class_setupStepLdap.inc:190
+msgid "Please specify user and password!"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:38
+#: setup/class_setupStepLdap.inc:192
 #, php-format
-msgid "Contains settings for these objects: %s"
+msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
-msgid "Access control roles"
+#: setup/class_setupStepLdap.inc:210 setup/class_setupStepLdap.inc:212
+#, php-format
+msgid ""
+"%s\n"
+"Schema \"%s\": %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
-msgid "ACL role"
+#: setup/class_setup.inc:175
+msgid "Completed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
-msgid "A name for this role"
+#: setup/class_setup.inc:218
+msgid "Next"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
-msgid "Short description of this role"
+#: setup/class_setupStepFinish.inc:30 setup/class_setupStepWelcome.inc:30
+#: setup/class_setupStepWelcome.inc:50
+msgid "Welcome"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
-msgid "ACLs"
+#: setup/class_setupStepFinish.inc:40
+msgid "Finish"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
-msgid "ACLs which are part of this group"
+#: setup/class_setupStepFinish.inc:41
+msgid "Finish - write the configuration file"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:11
-msgid "FusionDirectory will NOT run without fixing this."
+#: setup/class_setupStepFinish.inc:42
+msgid "Write configuration file"
 msgstr ""
 
-#: setup/setup_checks.tpl.c:14
-msgid "FusionDirectory will run without fixing this."
+#: setup/class_setupStepFinish.inc:62
+msgid ""
+"Your configuration file is currently world readable. Please update the file "
+"permissions!"
 msgstr ""
 
-#: setup/setup_migrate_adminAccount.tpl.c:2
-msgid "Create a new FusionDirectory administrator account"
+#: setup/class_setupStepFinish.inc:64
+msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/setup_migrate_adminAccount.tpl.c:5
+#: setup/class_setupStepFinish.inc:69
+#, php-format
 msgid ""
-"This dialog will automatically add a new super administrator to your LDAP "
-"tree."
+"After downloading and placing the file under %s, please make sure that the "
+"user the web server is running with is able to read %s, while other users "
+"shouldn't."
 msgstr ""
 
-#: setup/setup_migrate_adminAccount.tpl.c:11
-msgid "User ID"
+#: setup/class_setupStepWelcome.inc:51
+msgid "Welcome to FusionDirectory setup wizard"
 msgstr ""
 
-#: setup/setup_migrate_adminAccount.tpl.c:17
-msgid "Password (again)"
+#: setup/class_setupStepWelcome.inc:52
+msgid "The welcome message"
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:2
+#: setup/class_setupStepChecks.inc:37
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
-"any configuration right now. This simple wizard intends to help you while "
-"setting it up."
+"PHP setup configuration (<a href=\"?info\" target=\"_blank\">show "
+"information</a>)"
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:5
-msgid "What will the wizard do for you?"
+#: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
+msgid "Installation check"
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:8
-msgid "Create a basic, single site configuration"
+#: setup/class_setupStepChecks.inc:50
+msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:11
-msgid "Tries to find problems within your PHP and LDAP setup"
+#: setup/class_setupStepChecks.inc:67
+msgid "Checking PHP version"
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:14
-msgid "Let you choose from a set of basic and advanced configuration switches"
+#: setup/class_setupStepChecks.inc:68
+#, php-format
+msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:17
-msgid "Guided migration of existing LDAP trees"
+#: setup/class_setupStepChecks.inc:69
+msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:20
-msgid "What will the wizard NOT do for you?"
+#: setup/class_setupStepChecks.inc:76
+msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:23
-msgid "Find every possible configuration error"
+#: setup/class_setupStepChecks.inc:84
+msgid ""
+"FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:26
-msgid "Migrate every possible LDAP setup - create backup dumps!"
+#: setup/class_setupStepChecks.inc:92
+msgid ""
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:29
-msgid "To continue:"
+#: setup/class_setupStepChecks.inc:100
+msgid ""
+"FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:32
+#: setup/class_setupStepChecks.inc:108
 msgid ""
-"For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
-"local filesystem. This can be done by executing the following command:"
+"FusionDirectory requires this module to filters a variable with a specified "
+"filter."
 msgstr ""
 
-#: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+#: setup/class_setupStepChecks.inc:116
+msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/setup_migrate_baseOC.tpl.c:2
-msgid "Add required object classes to the LDAP base"
+#: setup/class_setupStepChecks.inc:124
+msgid ""
+"FusionDirectory requires either the 'mhash' or 'sha1' module to make use of "
+"SSHA encryption."
 msgstr ""
 
-#: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
-msgid "Current"
+#: setup/class_setupStepChecks.inc:132
+msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
-msgid "After migration"
+#: setup/class_setupStepChecks.inc:139
+msgid "mbstring"
 msgstr ""
 
-#: setup/setup_migrate_baseOC.tpl.c:14
-msgid "Close"
+#: setup/class_setupStepChecks.inc:140
+msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/setup_migrate.tpl.c:2
+#: setup/class_setupStepChecks.inc:146
+msgid "imagick"
+msgstr ""
+
+#: setup/class_setupStepChecks.inc:147
+msgid "FusionDirectory requires this extension to handle images."
+msgstr ""
+
+#: setup/class_setupStepChecks.inc:153
+msgid "compression module"
+msgstr ""
+
+#: setup/class_setupStepChecks.inc:154
+msgid "FusionDirectory requires this extension to handle snapshots."
+msgstr ""
+
+#: setup/class_setupStepChecks.inc:164
 msgid ""
-"During the LDAP inspection, we're going to check for several common pitfalls "
-"that may occur when migration to FusionDirectory base LDAP administration. "
-"You may want to fix the problems below, in order to provide smooth services."
+"register_globals is a PHP mechanism to register all global variables to be "
+"accessible from scripts without changing the scope. This may be a security "
+"risk."
 msgstr ""
 
-#: setup/setup_migrate.tpl.c:5
-msgid "Check again"
+#: setup/class_setupStepChecks.inc:165
+msgid "Search for 'register_globals' in your php.ini and switch it to 'Off'."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:2
+#: setup/class_setupStepChecks.inc:172
+msgid "PHP uses this value for the garbage collector to delete old sessions."
+msgstr ""
+
+#: setup/class_setupStepChecks.inc:173
 msgid ""
-"This dialog allows moving a couple of entries to the configured tree. Doing "
-"this may straighten your LDAP service."
+"Setting this value to one day will prevent loosing session and cookies "
+"before they really timeout."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:5
+#: setup/class_setupStepChecks.inc:174
 msgid ""
-"Be careful with this option! There may be references pointing to these "
-"entries. The FusionDirectory setup can't migrate references, so you may want "
-"to cancel the migration in this case."
+"Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
+"higher."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:8
-msgid "Move selected entries into this tree"
+#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
+#: setup/class_setupStepChecks.inc:213 setup/class_setupStepChecks.inc:221
+msgid "Off"
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:11
+#: setup/class_setupStepChecks.inc:182
 msgid ""
-"The listed entries are currently invisible in the FusionDirectory interface. "
-"If you want to change this for a couple of entries only, just select them "
-"and use the 'Migrate' button below."
+"In Order to use FusionDirectory without any trouble, the session.auto_start "
+"option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:14
+#: setup/class_setupStepChecks.inc:183
+msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStepChecks.inc:190
 msgid ""
-"If you want to know what will be done when migrating the selected entries, "
-"use the 'Show changes' button to see the LDIF."
+"FusionDirectory needs at least 128MB of memory. Setting it below this limit "
+"may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
-msgid "Show changes"
+#: setup/class_setupStepChecks.inc:191
+msgid ""
+"Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/setup_finish.tpl.c:2
-msgid "Create your configuration file"
+#: setup/class_setupStepChecks.inc:198
+msgid ""
+"This option influences the PHP output handling. Turn this Option off, to "
+"increase performance."
 msgstr ""
 
-#: setup/setup_finish.tpl.c:5
-msgid "Run %1 to put the correct right on fusiondirectory.conf"
+#: setup/class_setupStepChecks.inc:199
+msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/setup_finish.tpl.c:8
-msgid "Download configuration"
+#: setup/class_setupStepChecks.inc:206
+msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/setup_finish.tpl.c:11
-msgid "Status: "
+#: setup/class_setupStepChecks.inc:207
+msgid ""
+"Search for 'max_execution_time' in your php.ini and set it to '30' or higher."
 msgstr ""
 
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-msgid "Filter"
+#: setup/class_setupStepChecks.inc:214
+msgid ""
+"Increase the server security by setting expose_php to 'off'. PHP won't send "
+"any information about the server you are running in this case."
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:8
-msgid "Lost password"
+#: setup/class_setupStepChecks.inc:215
+msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:11
-msgid "Information to reset password for %1 has been sent to email address %2"
+#: setup/class_setupStepChecks.inc:222
+msgid "Increase your server performance by setting magic_quotes_gpc to 'off'."
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:14
-msgid "Warning : this email is only valid for %1 minutes."
+#: setup/class_setupStepChecks.inc:223
+msgid ""
+"Search for 'zend.ze1_compatibility_mode' in your php.ini and set it to 'Off'."
+msgstr ""
+
+#: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
+msgid "Language setup"
+msgstr ""
+
+#: setup/class_setupStepLanguage.inc:61
+msgid "This step allows you to select your preferred language."
+msgstr ""
+
+#: setup/class_setupStepLanguage.inc:62
+msgid ""
+"At this point, you can select the site wide default language. Choosing "
+"\"automatic\" will use the language requested by the browser. This setting "
+"can be overriden per user."
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:17
+#: ihtml/themes/legacy/login.tpl.c:5 ihtml/themes/breezy/login.tpl.c:5
 msgid ""
-"This dialog provides a simple way to change your password. Enter the new "
-"password (twice) in the fields below and press the 'Change' button."
+"Please use your username and your password to log into the site "
+"administration system."
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:20 ihtml/themes/breezy/recovery.tpl.c:23
-#: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/login.tpl.c:8
-#: ihtml/themes/breezy/login.tpl.c:11 ihtml/themes/breezy/login.tpl.c:14
+#: ihtml/themes/legacy/login.tpl.c:8 ihtml/themes/legacy/login.tpl.c:11
+#: ihtml/themes/legacy/login.tpl.c:14 ihtml/themes/legacy/recovery.tpl.c:14
+#: ihtml/themes/legacy/recovery.tpl.c:17 ihtml/themes/legacy/recovery.tpl.c:20
+#: ihtml/themes/breezy/login.tpl.c:8 ihtml/themes/breezy/login.tpl.c:11
+#: ihtml/themes/breezy/login.tpl.c:14 ihtml/themes/breezy/recovery.tpl.c:14
+#: ihtml/themes/breezy/recovery.tpl.c:17 ihtml/themes/breezy/recovery.tpl.c:20
 msgid "Username"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:38 ihtml/themes/breezy/recovery.tpl.c:41
-#: ihtml/themes/breezy/recovery.tpl.c:44
-msgid "New password repeated"
+#: ihtml/themes/legacy/login.tpl.c:26 ihtml/themes/breezy/login.tpl.c:26
+msgid "I forgot my password"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:47
-msgid "Password strength"
+#: ihtml/themes/legacy/login.tpl.c:29 ihtml/themes/legacy/login.tpl.c:32
+#: ihtml/themes/legacy/login.tpl.c:35 ihtml/themes/legacy/recovery.tpl.c:44
+#: ihtml/themes/legacy/recovery.tpl.c:47 ihtml/themes/legacy/recovery.tpl.c:50
+#: ihtml/themes/legacy/recovery.tpl.c:86 ihtml/themes/legacy/recovery.tpl.c:89
+#: ihtml/themes/legacy/recovery.tpl.c:92 ihtml/themes/breezy/login.tpl.c:29
+#: ihtml/themes/breezy/login.tpl.c:32 ihtml/themes/breezy/login.tpl.c:35
+#: ihtml/themes/breezy/recovery.tpl.c:44 ihtml/themes/breezy/recovery.tpl.c:47
+#: ihtml/themes/breezy/recovery.tpl.c:50 ihtml/themes/breezy/recovery.tpl.c:86
+#: ihtml/themes/breezy/recovery.tpl.c:89 ihtml/themes/breezy/recovery.tpl.c:92
+msgid "Directory"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:50 ihtml/themes/breezy/recovery.tpl.c:53
-#: ihtml/themes/breezy/recovery.tpl.c:56 ihtml/themes/breezy/recovery.tpl.c:92
-#: ihtml/themes/breezy/recovery.tpl.c:95 ihtml/themes/breezy/recovery.tpl.c:98
-#: ihtml/themes/breezy/login.tpl.c:29 ihtml/themes/breezy/login.tpl.c:32
-#: ihtml/themes/breezy/login.tpl.c:35
-msgid "Directory"
+#: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:41
+msgid "Click here to log in"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:59
-#: ihtml/themes/breezy/recovery.tpl.c:104
+#: ihtml/themes/legacy/recovery.tpl.c:2 ihtml/themes/breezy/recovery.tpl.c:2
+msgid "Lost password"
+msgstr ""
+
+#: ihtml/themes/legacy/recovery.tpl.c:5 ihtml/themes/breezy/recovery.tpl.c:5
+msgid "Information to reset password for %1 has been sent to email address %2"
+msgstr ""
+
+#: ihtml/themes/legacy/recovery.tpl.c:8 ihtml/themes/breezy/recovery.tpl.c:8
+msgid "Warning : this email is only valid for %1 minutes."
+msgstr ""
+
+#: ihtml/themes/legacy/recovery.tpl.c:11 ihtml/themes/breezy/recovery.tpl.c:11
+msgid ""
+"This dialog provides a simple way to change your password.<br/> Enter the "
+"new password (twice) in the fields below and press the 'Change' button."
+msgstr ""
+
+#: ihtml/themes/legacy/recovery.tpl.c:32 ihtml/themes/legacy/recovery.tpl.c:35
+#: ihtml/themes/legacy/recovery.tpl.c:38 ihtml/themes/breezy/recovery.tpl.c:32
+#: ihtml/themes/breezy/recovery.tpl.c:35 ihtml/themes/breezy/recovery.tpl.c:38
+msgid "New password repeated"
+msgstr ""
+
+#: ihtml/themes/legacy/recovery.tpl.c:41 ihtml/themes/breezy/recovery.tpl.c:41
+msgid "Password strength"
+msgstr ""
+
+#: ihtml/themes/legacy/recovery.tpl.c:53 ihtml/themes/legacy/recovery.tpl.c:98
+#: ihtml/themes/breezy/recovery.tpl.c:53 ihtml/themes/breezy/recovery.tpl.c:98
 msgid "Change"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:62
-#: ihtml/themes/breezy/recovery.tpl.c:107
+#: ihtml/themes/legacy/recovery.tpl.c:56 ihtml/themes/legacy/recovery.tpl.c:101
+#: ihtml/themes/breezy/recovery.tpl.c:56 ihtml/themes/breezy/recovery.tpl.c:101
 msgid "Click here to change your password"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:65 ihtml/themes/breezy/recovery.tpl.c:68
+#: ihtml/themes/legacy/recovery.tpl.c:59 ihtml/themes/legacy/recovery.tpl.c:62
+#: ihtml/themes/breezy/recovery.tpl.c:59 ihtml/themes/breezy/recovery.tpl.c:62
 msgid "Success"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:71
+#: ihtml/themes/legacy/recovery.tpl.c:65 ihtml/themes/breezy/recovery.tpl.c:65
 msgid "Your password has been changed successfully."
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:74
-#: ihtml/themes/breezy/recovery.tpl.c:101
+#: ihtml/themes/legacy/recovery.tpl.c:68 ihtml/themes/legacy/recovery.tpl.c:95
+#: ihtml/themes/breezy/recovery.tpl.c:68 ihtml/themes/breezy/recovery.tpl.c:95
 msgid "Return to login screen"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:71 ihtml/themes/breezy/recovery.tpl.c:71
 msgid ""
 "Enter your current e-mail address in the field below and press the 'Change' "
 "button."
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:80
+#: ihtml/themes/legacy/recovery.tpl.c:74 ihtml/themes/breezy/recovery.tpl.c:74
 msgid ""
 "=> Use your e-mail in the long format, e.g : John Doe => john.doe@example.com"
 msgstr ""
 
-#: ihtml/themes/breezy/recovery.tpl.c:110
+#: ihtml/themes/legacy/recovery.tpl.c:104
+#: ihtml/themes/breezy/recovery.tpl.c:104
 msgid ""
 "Password recovery is not activated. If you have lost your password, please "
 "contact your administrator"
 msgstr ""
 
-#: ihtml/themes/breezy/login.tpl.c:5
-msgid ""
-"Please use your username and your password to log into the site "
-"administration system."
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
 msgstr ""
 
-#: ihtml/themes/breezy/login.tpl.c:26
-msgid "I forgot my password"
+#: ihtml/themes/breezy/template.tpl.c:2
+msgid "Creating a new object using templates"
 msgstr ""
 
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
+#: ihtml/themes/breezy/template.tpl.c:8
+#: ihtml/themes/breezy/restore-confirm.tpl.c:14
+msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/login.tpl.c:41
-msgid "Click here to log in"
+#: ihtml/themes/breezy/restore-confirm.tpl.c:2
+msgid "Warning: you are about to restore the following snapshot"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:2
-msgid ""
-"The size limit option makes LDAP operations faster and saves the LDAP server "
-"from getting too much load. The easiest way to handle big databases without "
-"long timeouts would be to limit your search to smaller values and use "
-"filters to get the entries you are looking for."
+#: ihtml/themes/breezy/restore-confirm.tpl.c:5
+msgid "Any modification made to the object since this snapshot will be lost."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
+#: ihtml/themes/breezy/restore-confirm.tpl.c:8
+#: ihtml/themes/breezy/simple-remove.tpl.c:5
+msgid ""
+"Please double check if you really want to do this since there is no way for "
+"FusionDirectory to get your data back."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+#: ihtml/themes/breezy/restore-confirm.tpl.c:11
+msgid ""
+"So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:11
+#: ihtml/themes/breezy/copynotice.tpl.c:2
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
-"and let me use filters instead"
+"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
+"FusionDirectory team, %2</a>"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
-msgid "Set"
+#: ihtml/themes/breezy/islocked.tpl.c:2
+msgid "Locking conflict detected"
 msgstr ""
 
-#: ihtml/themes/breezy/simple-remove.tpl.c:2
-msgid "Warning: you are about to delete the following objects"
+#: ihtml/themes/breezy/islocked.tpl.c:8
+msgid "\"%1\" has been locked by \"%2\" since %3"
 msgstr ""
 
-#: ihtml/themes/breezy/simple-remove.tpl.c:5
-#: ihtml/themes/breezy/restore-confirm.tpl.c:8
+#: ihtml/themes/breezy/islocked.tpl.c:11
 msgid ""
-"Please double check if you really want to do this since there is no way for "
-"FusionDirectory to get your data back."
+"If this lock detection is false, the other person may have closed the "
+"web browser during the edit operation. You may want to take over the lock by "
+"pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/simple-remove.tpl.c:8
-msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+#: ihtml/themes/breezy/islocked.tpl.c:14
+msgid "Read only"
 msgstr ""
 
 #: ihtml/themes/breezy/framework.tpl.c:2
@@ -4639,81 +4706,83 @@ msgstr ""
 msgid "Session expires in %d!"
 msgstr ""
 
-#: ihtml/themes/breezy/restore-confirm.tpl.c:2
-msgid "Warning: you are about to restore the following snapshot"
+#: ihtml/themes/breezy/simple-remove.tpl.c:2
+msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
-#: ihtml/themes/breezy/restore-confirm.tpl.c:5
-msgid "Any modification made to the object since this snapshot will be lost."
+#: ihtml/themes/breezy/simple-remove.tpl.c:8
+msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: ihtml/themes/breezy/restore-confirm.tpl.c:11
-msgid ""
-"So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
 msgstr ""
 
-#: ihtml/themes/breezy/restore-confirm.tpl.c:14
-#: ihtml/themes/breezy/template.tpl.c:8
-msgid "Continue"
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:2
-msgid "Locking conflict detected"
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:11
-msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
-"pressing the \"%1\" button."
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
-msgid "Read only"
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
 msgstr ""
 
-#: ihtml/themes/breezy/template.tpl.c:2
-msgid "Creating a new object using templates"
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
 msgstr ""
 
-#: plugins/generic/references/contents.tpl.c:2
-msgid "<strong>%1</strong> references our <strong>%3</strong>"
+#: ihtml/themes/breezy/management/list.tpl.c:2
+#: setup/setup_migrate_accounts.tpl.c:29
+msgid "Select all"
 msgstr ""
 
-#: plugins/generic/references/contents.tpl.c:5
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:2
 msgid ""
-"<strong>%1</strong> references our field <strong>%3</strong> from tab "
-"<strong>%2</strong>"
+"The size limit option makes LDAP operations faster and saves the LDAP server "
+"from getting too much load. The easiest way to handle big databases without "
+"long timeouts would be to limit your search to smaller values and use "
+"filters to get the entries you are looking for."
 msgstr ""
 
-#: plugins/generic/references/contents.tpl.c:8
-msgid "This object has no relationship to other objects."
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
+msgid "Please choose the way to react for this session"
 msgstr ""
 
-#: plugins/addons/dashboard/groups_stats.tpl.c:2
-msgid "There is 1 group:"
-msgid_plural "There are %1 groups:"
-msgstr[0] ""
-msgstr[1] ""
+#: ihtml/themes/breezy/sizelimit.tpl.c:8
+msgid "ignore this error and show all entries the LDAP server returns"
+msgstr ""
 
-#: plugins/addons/dashboard/groups_stats.tpl.c:5
-msgid "One of them is a %1 group"
-msgid_plural "%2 are %1 groups"
-msgstr[0] ""
-msgstr[1] ""
+#: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid ""
+"ignore this error and show all entries that fit into the defined sizelimit "
+"and let me use filters instead"
+msgstr ""
 
-#: plugins/addons/dashboard/groups_stats.tpl.c:8
-msgid "There is no %1 group"
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
+msgid "Set"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:2
@@ -4724,18 +4793,22 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
-msgid "One of them have a %1 account"
+msgid "There are no users"
+msgstr ""
+
+#: plugins/addons/dashboard/users_stats.tpl.c:8
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
 
-#: plugins/addons/dashboard/users_stats.tpl.c:8
+#: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
 msgstr ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses the %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4746,7 +4819,27 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
+msgstr ""
+
+#: plugins/addons/dashboard/groups_stats.tpl.c:2
+msgid "There is 1 group:"
+msgid_plural "There are %1 groups:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/addons/dashboard/groups_stats.tpl.c:5
+msgid "There are no groups"
+msgstr ""
+
+#: plugins/addons/dashboard/groups_stats.tpl.c:8
+msgid "One of them is a %1 group"
+msgid_plural "%2 are %1 groups"
+msgstr[0] ""
+msgstr[1] ""
+
+#: plugins/addons/dashboard/groups_stats.tpl.c:11
+msgid "There is no %1 group"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4756,7 +4849,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4778,37 +4871,190 @@ msgstr ""
 msgid "Next expired accounts"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
+#: plugins/admin/acl/remove.tpl.c:2
+msgid ""
+"Warning: you are about to delete the ACL assignments on the following objects"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
+#: plugins/admin/acl/remove.tpl.c:5
+msgid ""
+"This includes all ACL assignments made on this node(s). If you want the list "
+"of these assignments, please cancel and open the objects."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
+#: plugins/admin/acl/remove.tpl.c:8
+msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/generic/references/contents.tpl.c:2
+msgid "<strong>%1</strong> references our <strong>%3</strong>"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/generic/references/contents.tpl.c:5
+msgid ""
+"<strong>%1</strong> references our field <strong>%3</strong> from tab "
+"<strong>%2</strong>"
 msgstr ""
 
-#: plugins/admin/acl/remove.tpl.c:2
+#: plugins/generic/references/contents.tpl.c:8
+msgid "This object has no relationship to other objects."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:11
+msgid "FusionDirectory will NOT run without fixing this."
+msgstr ""
+
+#: setup/setup_checks.tpl.c:14
+msgid "FusionDirectory will run without fixing this."
+msgstr ""
+
+#: setup/setup_migrate.tpl.c:2
 msgid ""
-"Warning: you are about to delete the ACL assignments on the following objects"
+"During the LDAP inspection, we're going to check for several common pitfalls "
+"that may occur when migration to FusionDirectory base LDAP administration. "
+"You may want to fix the problems below, in order to provide smooth services."
 msgstr ""
 
-#: plugins/admin/acl/remove.tpl.c:5
+#: setup/setup_migrate.tpl.c:5
+msgid "Check again"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:2
 msgid ""
-"This includes all ACL assignments made on this node(s). If you want the list "
-"of these assignments, please cancel and open the objects."
+"This dialog allows moving a couple of entries to the configured tree. Doing "
+"this may straighten your LDAP service."
 msgstr ""
 
-#: plugins/admin/acl/remove.tpl.c:8
-msgid "Press 'Delete' to continue or 'Cancel' to abort."
+#: setup/setup_migrate_accounts.tpl.c:5
+msgid ""
+"Be careful with this option! There may be references pointing to these "
+"entries. The FusionDirectory setup can't migrate references, so you may want "
+"to cancel the migration in this case."
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:8
+msgid "Move selected entries into this tree"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:11
+msgid ""
+"The listed entries are currently invisible in the FusionDirectory interface. "
+"If you want to change this for a couple of entries only, just select them "
+"and use the 'Migrate' button below."
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:14
+msgid ""
+"If you want to know what will be done when migrating the selected entries, "
+"use the 'Show changes' button to see the LDIF."
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:17 setup/setup_migrate_accounts.tpl.c:23
+#: setup/setup_migrate_baseOC.tpl.c:5
+msgid "Current"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:20 setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_baseOC.tpl.c:8
+msgid "After migration"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
+msgid "Show changes"
+msgstr ""
+
+#: setup/setup_migrate_baseOC.tpl.c:2
+msgid "Add required object classes to the LDAP base"
+msgstr ""
+
+#: setup/setup_migrate_baseOC.tpl.c:14
+msgid "Close"
+msgstr ""
+
+#: setup/setup_migrate_adminAccount.tpl.c:2
+msgid "Create a new FusionDirectory administrator account"
+msgstr ""
+
+#: setup/setup_migrate_adminAccount.tpl.c:5
+msgid ""
+"This dialog will automatically add a new super administrator to your LDAP "
+"tree."
+msgstr ""
+
+#: setup/setup_migrate_adminAccount.tpl.c:11
+msgid "User ID"
+msgstr ""
+
+#: setup/setup_migrate_adminAccount.tpl.c:17
+msgid "Password (again)"
+msgstr ""
+
+#: setup/setup_finish.tpl.c:2
+msgid "Create your configuration file"
+msgstr ""
+
+#: setup/setup_finish.tpl.c:5
+msgid "Run %1 to put the correct right on fusiondirectory.conf"
+msgstr ""
+
+#: setup/setup_finish.tpl.c:8
+msgid "Download configuration"
+msgstr ""
+
+#: setup/setup_finish.tpl.c:11
+msgid "Status: "
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:2
+msgid ""
+"This seems to be the first time you start FusionDirectory - we cannot find "
+"any configuration right now. This simple wizard intends to help you while "
+"setting it up."
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:5
+msgid "What will the wizard do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:8
+msgid "Create a basic, single site configuration"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:11
+msgid "Tries to find problems within your PHP and LDAP setup"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:14
+msgid "Let you choose from a set of basic and advanced configuration switches"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:17
+msgid "Guided migration of existing LDAP trees"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:20
+msgid "What will the wizard NOT do for you?"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:23
+msgid "Find every possible configuration error"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:26
+msgid "Migrate every possible LDAP setup - create backup dumps!"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:29
+msgid "To continue:"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:32
+msgid ""
+"For security reasons you need to authenticate for the installation by "
+"creating the file '%1', containing the current session ID on the server's "
+"local filesystem. This can be done by executing the following command:"
+msgstr ""
+
+#: setup/setup_welcome.tpl.c:35
+msgid "Click the 'Next' button when you are done."
 msgstr ""
diff --git a/locale/es/fusiondirectory.po b/locale/es/fusiondirectory.po
index 576973765c4c580895157973e4fa66df1c9ed440..4adf19049bbc2ddc9f95ad17c6aa95599e4866ba 100644
--- a/locale/es/fusiondirectory.po
+++ b/locale/es/fusiondirectory.po
@@ -4,148 +4,557 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2021
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Spanish (https://www.transifex.com/fusiondirectory/teams/12202/es/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Spanish (https://app.transifex.com/fusiondirectory/teams/12202/es/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es\n"
 "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Por favor solucione el problema y actualize la página."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tipo"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Etiqueta"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Fecha"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Descripción"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Recuperar"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Hubo un problema descomprimiendo la información del snapshot."
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objeto"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Snapshots"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Marca de tiempo"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Por favor seleccione las entradas que desee"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "%s plantilla"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Plantilla"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "A partir de plantilla"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Crear"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Exportar lista"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Editar"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Mover"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copiar"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Pegar"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Aplicar plantilla"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Eliminar"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Crear instantánea"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Recuperar instantanea"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "No tiene permisos para crear una instantanea para %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "No tiene permisos para recuperar una instantanea para %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Ir al departamento raíz"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Raíz"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Subir un departamento"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Arriba"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Ir a la División del usuario"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Inicio"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Recargar lista"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Configurar"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Error XML en fusiondirectory.conf: %s en la línea %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Error en la configuración"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Error LDAP"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 "No se puede conectar a LDAP: Por favor consulte con el administrador de "
 "sistemas."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Todas las categorías"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Mi cuenta"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Página"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr "No se puede exportar a PDF: no se ha instalado la librería FPDF."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "Creado por"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Archivo"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Linea"
 
@@ -169,269 +578,264 @@ msgstr "estático"
 msgid "method"
 msgstr "método"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Traza"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tipo"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argumentos"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "¡La generación de esta página ha provocado errores en el interprete PHP!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Enviar informe de errores al equipo de FusionDirectory"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Enviar informe de errores"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Modificar información"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Arriba"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Abajo"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "La Zona Horaria \"%s\" en su configuración no es válida."
+
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Seleccione todos"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Nombre de la plantilla"
 
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "Creado por"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Entrada fallida: %s"
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Ir al departamento raíz"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Raíz"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "¡Se ha indicado un objectType vacio o no válido!"
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Subir un departamento"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr ""
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Inicio"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Recargar lista"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Acciones"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Copiar"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Entrando"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Mover"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Pegar"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Mover esta entrada"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Copiar esta entrada"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Recuperar instantánea"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
+msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Exportar lista"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "¡Por favor introduzca un nombre de usuario válido!"
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Recuperar instantanea"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "¡Por favor introduzca una contraseña!"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Crear instantánea"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Cuenta bloqueada. ¡Por favor contacte con su administrador de sistemas!"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "¡Crear una nueva instantánea de este objeto!"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Error LDAP"
 
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr ""
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Dirección de correo"
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Plantilla"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Recuperación de clave"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
-msgstr ""
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "No se encontró la cuenta de usuario: \"%s\""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Nombre de la plantilla"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Se encontraron varias cuentas identificadas como: \"%s\""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "error interno"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Logging failed: %s"
-msgstr "Entrada fallida: %s"
+msgid "There are several accounts using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "¡Se ha indicado un objectType vacio o no válido!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "Esta prenda es invalida"
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
 msgstr ""
+"Usted debe completar saslRealm o saslExop en la pantalla de configuración "
+"para usar SASL"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Enviar"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Aplicar filtro"
-
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Buscar en subárboles"
-
-#: include/class_filter.inc:404
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "Searches in %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
+"La configuración de FusionDirectory %s/%s no se puede leer. Cancelado."
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "¡El límite máximo de %d entradas se ha sobrepasado!"
-
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
-"Introduzca un nuevo límite máximo a %s y se volvera a mostrar este mensaje "
-"si se supera el límite máximo"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Configurar"
 
-#: include/class_ldapSizeLimit.inc:136
+#: include/class_ldapSizeLimit.inc:135
 msgid "incomplete"
 msgstr "incompleto"
 
-#: include/functions.inc:97
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
+msgid ""
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
+msgstr ""
+
+#: include/functions.inc:55
 #, php-format
 msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 "Error fatal: no se han definido un emplazamiento para las clases - por favor"
 " ejecute '%s' para solucionar esto"
 
-#: include/functions.inc:116
+#: include/functions.inc:78
 #, php-format
 msgid ""
 "Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
@@ -439,579 +843,363 @@ msgstr ""
 "Error fatal: no se puede instanciar la clase '%s' - intente solucionarlo "
 "ejecutando '%s'"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Error fatal"
-
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr ""
-"FATAL: Ha habido un error conectando a LDAP. El servidor comunicó '%s'."
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
-msgstr ""
-
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Error de Autenticación"
-
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr ""
-"Ha ocurrido un problema al añadir un bloqueo. ¡Contacte con los "
-"desarrolladores!"
-
-#: include/functions.inc:594
+#: include/functions.inc:151
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
-"No puedo crear información de bloqueos en el árbol LDAP. ¡Por favor contacte"
-" con su Administrador!"
-
-#: include/functions.inc:594
-#, php-format
-msgid "LDAP server returned: %s"
-msgstr "El servidor LDAP devolvio: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Aviso"
 
 #: include/functions.inc:783
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
-msgstr ""
-"Se han encontrado varios bloqueos para un objeto que iba a ser bloqueado. "
-"Esto no debería ocurrir - limpiando referencias multiples."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Continuar de cualquier manera"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Editar de cualquier manera"
-
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Has decidido editar las siguientes entradas LDAP %s"
-
-#: include/functions.inc:1505
 #, php-format
 msgid "%sB"
-msgstr ""
+msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
-msgstr ""
+msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
-msgstr ""
+msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
-msgstr ""
+msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
-msgstr ""
+msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
-msgstr ""
+msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
-msgstr ""
+msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
-msgstr ""
+msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
-msgstr ""
+msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
+msgstr ""
+
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1722
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "¡No se puede escribir en el archivo de revisión!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Aviso LDAP"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "No puedo obtener información de esquemas del servidor. ¡No es posible "
 "comprobar los esquemas!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Clase(s) disponibles"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
+"Usted ha instalado el plugin 'Mixed Groups', pero la configuración de su "
+"esquema no lo soporta."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
+"Su esquema tiene configurado soporte para 'Mixed Groups', pero este plugin "
+"no está presente."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"No se puede encontrar el archivo '%s' - por favor ejecute '%s' para "
-"solucionarlo"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
-msgstr "Todos los objetos en esta categoría"
-
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Inicio"
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Permisos"
-
-#: include/class_CopyPasteHandler.inc:266
-msgid "Cancel all"
-msgstr "Cancelar todo"
-
-#: include/class_CopyPasteHandler.inc:332
-msgid "Cannot paste"
-msgstr "No puedo pegar"
-
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Seleccione para mostrar objetos de tipo '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Seleccione para mostrar objetos conteniendo '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Seleccione para mostrar objetos que tengan '%s' activado"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Seleccione para buscar dentro de los subárboles"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "¡El objeto será eliminado!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "¡El objeto '%s' será eliminado!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Este objeto será eliminado: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "El objeto '%s' será eliminado: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Este objeto será eliminado"
+msgstr "Todos los objetos en esta categoría"
 
-#: include/class_msgPool.inc:83
+#: include/class_pluglist.inc:580
 #, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "El objeto '%s' será eliminado:"
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Estos objetos serán eliminados: %s"
+#: include/class_CopyPasteHandler.inc:267
+msgid "Cancel all"
+msgstr "Cancelar todo"
 
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Los objetos '%s' serán eliminados: %s"
+#: include/class_CopyPasteHandler.inc:333
+msgid "Cannot paste"
+msgstr "No puedo pegar"
 
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "¡No tiene permisos para eliminar este objeto!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "No tiene permisos para eliminar este objeto:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "No tiene permisos para eliminar estos objetos:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "¡No tiene permisos para crear este objeto!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "No tiene permisos para crear este objeto:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "No tiene permisos para crear estos objetos:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "¡No tiene permisos para modificar este objeto!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "¡No tiene permisos para ver este objeto!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "No tiene permisos para ver el objeto:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "No tiene permisos para ver estos objetos:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "¡No tiene permisos para mover este objeto!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "No tiene permisos para mover el objeto:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "No tiene permisos para mover estos objetos:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Información de conexión"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "¡No se puede conectar a la base de datos %s!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "¡No se puede seleccionar la base de datos %s!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "¡No se ha definido el servidor %s!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "¡No se ha podido ejecutar la consulta %s!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "¡El campo '%s' tiene una palabra reservada!"
-
-#: include/class_msgPool.inc:297
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
-"¡El comando especificado como método %s para la extensión '%s' no existe!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "¡El comando '%s' no es válido!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "¡'%s' comando para la extensión %s no es válido!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "¡'%s' comando (%s) no es válido!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "¡'%s' comando (%s) para la extensión %s no es válido!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "¡No se puede ejecutar el comando '%s'!"
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "¡No se puede ejecutar el comando '%s' para la extensión %s!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "¡No se puede ejecutar el comando '%s' (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "¡No se puede ejecutar el comando '%s' (%s) para la extensión %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "¡El valor especificado como '%s' es demasiado grande!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "¡'%s' debe ser menor que %s!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "¡El valor especificado como '%s' es demasiado pequeño!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "¡'%s' debe ser %d o superior!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "¡'%s' depende de '%s' - Por favor introduzca ambos valores!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "¡Ya existe una entrada con el atributo '%s' en el sistema!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "¡El campo obligatorio '%s' está vacio!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' no está permitido:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "¡'%s' no están permitidos!"
+msgid "Example: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "¡Extensión PHP %s no encontrada!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Aplicar"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Guardar"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Añadir"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Añadir %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Eliminar"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Eliminar %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Editar..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Editar %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Atrás"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "¡Esta cuenta tiene extensiones %s no validas!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1020,7 +1208,7 @@ msgstr ""
 "Esta cuenta tiene características %s activadas. Puede desactivarla pulsando "
 "aquí"
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1029,7 +1217,7 @@ msgstr ""
 "Esta cuenta tiene las características %s activadas. ¡Para desactivarlas, "
 "necesita eliminar las caracteristicas %s primero!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1038,7 +1226,7 @@ msgstr ""
 "Esta cuenta tiene características %s desactivadas. Puede activarla pulsando "
 "aquí"
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1047,1262 +1235,1157 @@ msgstr ""
 "Esta cuenta tiene las características %s desactivadas. ¡Para activarlas, "
 "necesita añadir las caracteristicas %s primero!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Añadir caracteristicas %s"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Eliminar las caracteristicas %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Enero"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Febrero"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Marzo"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Abril"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Mayo"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Junio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Julio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Agosto"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Septiembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Octubre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Noviembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Diciembre"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Domingo"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Lunes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Martes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Miércoles"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Jueves"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Viernes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Sábado"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "lectura"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "adición"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "modificación"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "eliminación"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "busqueda"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "autenticación"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "¡LDAP %s ha fallado!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "¡La consulta LDAP ha fallado!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objeto"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "¡Ha fallado el subir archivo!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Ha fallado el subir archivo: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "¡Ha fallado la comunciación con el servicio de infraestructura!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Ha fallado la comunciación con el servicio de infraestructura: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "'%s' esta todavía en uso por el objeto: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "'%s' esta todavía en uso."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "'%s' esta todavía en uso por los objetos: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "¡El archivo %s no existe!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "¡No se puede abrir el archivo '%s'!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "¡No se puede grabar el archivo '%s'!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"El valor para '%s' no esta configurado o no es válido.¡Por favor compruebe "
-"el archivo de configuración!"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "¡No se puede eliminar el fichero '%s'!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "¡No se puede crear la carpeta '%s'!"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "¡No se puede eliminar la carpeta '%s'!"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Comprobando soporte %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Instala y activa el módulo de PHP %s."
 
-#: include/class_msgPool.inc:838
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr "¡La base introducida no es válida, se ha dejado el valor anterior!"
+
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "Install and activate the %s Pear module."
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
-"No se puede inicializar la clase '%s'! Posiblemente hay un complemento "
-"faltante en su instalación de FusionDirectory?"
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
-msgstr "¡La base introducida no es válida, se ha dejado el valor anterior!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Por favor seleccione las entradas que desee"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nombre"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Descripción"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Iniciar servicio"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Parar servicio"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Reiniciar servicio"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
 msgid "Object base"
-msgstr ""
+msgstr "Objeto base"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Tipo desconocido: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "¡dn: %s Inexsitente!"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Ninguno"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Horas"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Minutos"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Fecha"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Tiempo"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "No puedo leer el archivo: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "el archivo está vacío"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "fichero no encontrado"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "fichero no accesible"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
-msgstr ""
+msgstr "%s (%d bytes)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Enviar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Descargar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
+msgid "An integer between %d and %d"
+msgstr "Un número entero entre %d y %d"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Eliminar"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr "Un número entero mayor que %d"
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Editar"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr "Un número entero menor a %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
-msgstr ""
+msgstr "Un número flotante entre %f y %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
-msgstr ""
+msgstr "Un número flotante mayor que %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
-msgstr ""
+msgstr "Un número flotante menor que %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
-msgstr ""
+msgstr "%s (necesario)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr ""
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Ordenar"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Ninguno"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Ordenar de modo inverso"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
-msgstr ""
+msgstr "Configuraciones de Plantilla"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
-msgstr ""
+msgstr "Este es el nombre de la plantilla"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
-msgstr ""
+msgstr "Solo la pestaña principal puede calcular dn"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
-msgstr ""
+msgstr "No es posible calcular dn: no hay pestaña de clase padre para \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
-msgstr ""
+msgstr "La entrada %s no existe"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
-msgstr ""
+msgstr "Pestaña \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
-msgstr ""
+msgstr "KB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
-msgstr ""
+msgstr "MB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
-msgstr ""
+msgstr "GB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
-msgstr ""
+msgstr "TB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "segundos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "minutos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "horas"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "días"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Gestión de las Listas de control de acceso"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr ""
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Roles ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Grupo de usuarios"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Desconocido"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "¡Entrada desconocida '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr ""
+msgid "All users"
+msgstr "Todos los usuarios"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Error del filtro"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"¡Login (uid) no es un valor único en el árbol LDAP!. Por favor contacte a su"
+" administrador."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "¡El filtro está incompleto!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Aviso"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Error de permisos"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "No tiene permisos para crear una instantanea para %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "No tiene permisos para recuperar una instantanea para %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Crear"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
-
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Gestión de las Listas de control de acceso"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Roles ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "¡Entrada desconocida '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
+"Al parecer tu contraseña expiró. Por favor acceda a<a "
+"href=\"recovery.php\">Recuperar contraseña</a> y cámbiela."
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Todos los usuarios"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Aviso e rendimiento"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr "El rendimiento LDAP es bajo: ¡la última consulta tardó sobre %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "mientras operaba en '%s' usando el servidor LDAP '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "mientras operaba en el servidor LDAP '%s'"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
-msgstr ""
+msgstr "proc_open falló al ejecutar ldapsearch"
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Marca de tiempo"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
+"Ha ocurrido un problema al añadir un bloqueo. ¡Contacte con los "
+"desarrolladores!"
 
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"No puedo crear información de bloqueos en el árbol LDAP. ¡Por favor contacte"
+" con su Administrador!"
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Recuperar"
-
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "El servidor LDAP devolvio: %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Se han encontrado varios bloqueos para un objeto que iba a ser bloqueado. "
+"Esto no debería ocurrir - limpiando referencias multiples."
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Lista de Departamentos"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Departamento"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Editar de cualquier manera"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Dominio"
 
 #: plugins/admin/departments/class_domain.inc:51
 msgid "domain"
-msgstr ""
+msgstr "dominio"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organización"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
-msgstr ""
+msgstr "organización"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Departamento"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Departamentos"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "departamento"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Propiedades"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
-msgstr ""
+msgstr "Nombre de  %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
-msgstr ""
+msgstr "Un nombre para este %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
-msgstr ""
+msgstr "Una descripción de este %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Categoría"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
-msgstr ""
+msgstr "Categoría de este %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Gestor"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
-msgstr ""
+msgstr "Mánager de este %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Localización"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Provincia"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "País"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Dirección"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
-msgstr ""
+msgstr "Dirección postal de este  %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Teléfono"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Número de teléfono"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
-msgstr ""
+msgstr "Teléfono alternativo"
+
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nombre"
 
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Componentes del dominio"
 
 #: plugins/admin/departments/class_dcObject.inc:51
 msgid "domain component"
-msgstr ""
+msgstr "componente de dominio"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
-msgstr ""
+msgstr "país"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Localidad"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
-msgstr ""
+msgstr "localidad"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
-msgstr ""
+msgstr "Administrar categorías"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Usuarios y grupos"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Tareas"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Reportes"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Rol"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Editar características posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Estado"
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Grupos y Roles"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Administrar grupos y roles"
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Mostrar grupos primarios"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Mostrar grupos de correo"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Mostrar grupos de samba"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Acción disparada"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Acción programada"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Grupo de objetos"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
-msgstr ""
+msgstr "Datos del 'objeto grupo'"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
-msgstr ""
+msgstr "Nombre de este grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
-msgstr ""
+msgstr "Una descripción corta de este grupo."
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Propietario"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Objetos miembros"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
-msgstr ""
+msgstr "Objetos miembro de este grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Sistema de seguridad"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Modo seguro"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
-msgstr ""
+msgstr "Tipo de autorización para ésos equipos"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "desactivado"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "Acceso sin restricciones"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "Permitir el acceso a estos equipos"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
+"Habilitar solamente a éste grupo para conectarse a ésta lista de equipos."
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
+"Alojar estaciones de trabajo y terminales en el mismo grupo no está "
+"permitido."
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Lista de grupos"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Acción disparada"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Miembros"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Acción programada"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Rol"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
-msgstr ""
+msgstr "Información del Rol"
 
 #: plugins/admin/groups/class_roleGeneric.inc:60
 msgid "Organizational role"
-msgstr ""
+msgstr "Rol Profesional"
 
 #: plugins/admin/groups/class_roleGeneric.inc:82
 #: ihtml/themes/breezy/msg_dialog.tpl.c:8
@@ -2311,11 +2394,11 @@ msgstr "Información"
 
 #: plugins/admin/groups/class_roleGeneric.inc:91
 msgid "Description of the role"
-msgstr ""
+msgstr "Descripción del Rol"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Número de teléfono"
 
@@ -2329,213 +2412,185 @@ msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:108
 msgid "Add users for the role"
+msgstr "Agregar usuarios al rol"
+
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Gestionar ACLs"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Asignación de ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Gestionar permisos ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Permisos"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Gestión de ACL para esta base"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Permisos en el objeto o subárbol %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
-msgstr ""
+msgstr "Panel de gestión de roles ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Modo"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
-msgstr ""
+msgstr "¿Se aplicará en todo el subárbol o solo en la base?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
-msgstr ""
+msgstr "Subárbol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
-msgstr ""
+msgstr "Base únicamente"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
-msgstr ""
+msgstr "Rol a aplicar"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
-msgstr ""
+msgstr "Para todos los usuarios"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Miembros"
+msgstr "Aplicar este ACL a todos los usuarios de LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
-msgstr ""
+msgstr "Usuarios o grupos a los cuales asignar este rol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Asignación de ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
-msgstr ""
+msgstr "Gestionar ACLs"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Lista de usuarios"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Apellido"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Nombre de pila"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Usuario"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Bloquear usuarios"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Desbloquear usuarios"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Aplicar plantilla"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Nuevo usuario desde plantilla"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Editar usuario"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Eliminar usuario"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Usuarios"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Gestión de usuarios"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Bloqueo de cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
+"El método de contraseña \"%s\" no soporta bloqueos. ¡La cuenta \"%s\" no se "
+"ha bloqueado!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
-"locked!"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Desbloquear cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Bloquear cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
+"locked!"
 msgstr ""
 
 #: plugins/admin/aclrole/class_aclRole.inc:38
@@ -2543,283 +2598,385 @@ msgstr ""
 msgid "Contains settings for these objects: %s"
 msgstr "Tiene configuraciones de los siguientes objetos: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Roles de control de acceso"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
-msgstr ""
+msgstr "Rol ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
-msgstr ""
+msgstr "Un nombre para este rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
-msgstr ""
+msgstr "Una descripción corta para este rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
-msgstr ""
+msgstr "ACLs"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
-msgstr ""
+msgstr "ACLs que son parte de este grupo"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "No hay ACL configuradas en esta categoría"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACLs que tienen estos objetos: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Editar la categoría ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Eliminar la categoría ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Lista de categorías ACL disponibles"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Todos los objetos en el subárbol actual"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "leer"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Administración de Roles \"ACL\""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "escribir"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Mostrar/ocultar caracteristicas avanzadas"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Crear objetos"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Mover objetos"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Eliminar Objetos"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Garantizar permiso al propietario"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Objeto completo"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
-msgid "Plugins configuration"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
-msgid "FusionDirectory plugins configuration"
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Activar instantaneas"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Permite que usted salve ciertos estados o entradas para luego restaurarlas."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Base de instantaneas"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:26
+msgid "Plugins configuration"
+msgstr "Configuración de 'plugins'"
+
+#: plugins/config/class_mainPluginsConfig.inc:27
+msgid "FusionDirectory plugins configuration"
+msgstr "Configuración de plugins de FusionDirectory"
+
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Grupos de objetos"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
-msgstr ""
+msgstr "Grupos RDN"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
-msgstr ""
+msgstr "Rama de LDAP donde ser almacenarán los Grupos"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
-msgstr ""
+msgstr "Configuración del Panel"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
-msgstr ""
+msgstr "FusionDirectory panel de configuración de plugins."
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
-msgstr ""
+msgstr "Panel nombre del esquema"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
-msgstr ""
+msgstr "Cantidad de dígitos"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
-msgstr ""
+msgstr "Cantidad de dígitos a usar después del prefijo."
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
-msgstr ""
+msgstr "Prefijos"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
-msgstr ""
+msgstr "Prefijos que se usarán para las 'id' de computadoras."
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
-msgstr ""
+msgstr "Panel de usuarios expirados"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
-msgstr ""
+msgstr "Cantidad de días"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
+"Número de días antes previos antes de expirar una cuenta para mostrarlo en "
+"el panel de las próximas cuentas por expirar."
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
-msgstr ""
+msgstr "Plugins"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:29
 msgid "Configuration for plugins"
+msgstr "Configuración de plugins"
+
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
 #: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Recuperación de clave"
-
-#: plugins/config/class_recoveryConfig.inc:29
 msgid "Settings for the password recovery feature"
-msgstr ""
+msgstr "Configuraciones para la característica de recuperación de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Opciones de recuperación de clave"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
-msgstr ""
+msgstr "Habilitar recuperación de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
-msgstr ""
+msgstr "Correo del remitente"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
-msgstr ""
+msgstr "Dirección desde donde se enviarán los correos."
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
-msgstr ""
+msgstr "Vigencia del 'Link' (minutos)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
-msgstr ""
+msgstr "Cantidad de tiempo antes que el link para recuperar expire."
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
-msgstr ""
+msgstr "'Salt' para 'tokens''"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
+"Solo una medida de seguridad, usted puede incluir cualquier cosa aquí, "
+"incluso caracteres aleatorios."
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
-msgstr ""
+msgstr "Habilitar el uso de correos alternativos"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Atributo de inicio de sesión"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
-msgstr ""
+msgstr "Correo principal"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Asunto"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
-msgstr ""
+msgstr "Asunto del correo principal"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Enlace de recuperación de clave"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
-msgstr ""
+msgstr "Mensaje (primer %s es Cuenta de usuario,  el segundo es 'Enlace')"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
+"Mensaje del primer correo enviado cuando el usuario solicita una nueva "
+"contraseña. Utilice %s para la cuenta de usuario y el enlace de recuperación"
+" de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,31 +2988,33 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
-msgstr ""
+msgstr "Email secundario"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
-msgstr ""
+msgstr "Asunto del email secundario"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Recuperación de clave realizada con exito"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
-msgstr ""
+msgstr "Mensaje (%s es cuenta de usuario)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
+"Mensaje del segundo correo enviado al confirmar el cambio de contraseña. "
+"Utilice %s para la cuenta de usuario."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2868,699 +3027,817 @@ msgstr ""
 "Su clave ha sido cambiada.\n"
 "Su nombre de usuario aun es %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Cuándo llamar este comando"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "La línea de comandos que será usada"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configuración"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
-msgstr ""
+msgstr "Configuración de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Temas y apariencia"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Idioma"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
+"Idioma de la aplicación. Si utiliza 'automático' o no disponible, se "
+"preguntará al navegador cuál utilizar. Ésta opción puede ser cambiada por el"
+" usuario."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Tema"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
-msgstr ""
+msgstr "Plantilla a utilizar"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Zona de uso horario"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
-msgstr ""
+msgstr "Zona Horaria a utilizar"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
-msgstr ""
+msgstr "Configuración del 'Núcleo'"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
-msgstr ""
+msgstr "Tamaño límite LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
-msgstr ""
+msgstr "Determine cuántas entradas se traerán de LDAP por defecto."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
-msgstr ""
+msgstr "Editar bloqueo"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
+"Mientras tanto, revisar si una entrada que está siendo editada ha sido "
+"modificada desde fuera de FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
-msgstr ""
+msgstr "Habilitar escritura de logs"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
-msgstr ""
+msgstr "Escritura de eventos en logs de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
-msgstr ""
+msgstr "Validación del esquema 'LDAP'"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
+"Habilita la validación del esquema 'LDAP' durante el inicio de sesión."
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Activar instantaneas"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Base de instantaneas"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Parámetros de Contraseña"
 
-#: plugins/config/class_configInLdap.inc:156
-msgid "Password default hash"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
-msgid "Default hash to be used"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:122
+msgid "Password default hash"
+msgstr "'hash' de contraseña por defecto."
+
+#: plugins/config/class_configInLdap.inc:122
+msgid "Default hash to be used"
+msgstr "'hash' por defecto"
+
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
-msgstr ""
+msgstr "Forzar 'hash' por defecto"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
-msgstr ""
+msgstr "Forzar el uso del 'hash' de Contraseña por defecto."
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Longitud mínima de la contraseña"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
-msgstr ""
+msgstr "Longitud máxima de contraseña para usuarios"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
-msgstr ""
+msgstr "Diferencia mínima entre contraseñas"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
+"Cantidad mínima de caracteres distintos a partir de la última contraseña"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Usar caducidad de cuenta"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
+"Habilita pruebas del atributo 'shadow'  durante el proceso de inicio de "
+"sesión en FusionDirectory y fuerza la renovación de contraseña o bloqueo de "
+"cuenta."
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
-msgstr ""
+msgstr "SASL Realm"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
-msgstr ""
+msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
-msgstr ""
+msgstr "Valor que será almacenado en el atributo 'userPassword'"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Inicio y sesión"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
+"Que atributo LDAP debería usarse como 'cuenta de usuario' en el inicio de "
+"sesión."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Forzar conexiones seguras"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
+"Habilita revisiones de seguridad con PHP para forzar el acceso encriptado "
+"(https) en la interfaz web."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Avisar si la sesión no esta codificada"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
+"mostrará un mensaje de advertencia al usuario cuando se utilice http en vez "
+"de https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Duración de sesiones."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
-msgstr ""
+msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
-msgstr ""
+msgstr "Ruta de la llave "
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
+"Ruta donde se encuentra la llave de FusionDirectory. Por el momento, sin "
+"uso."
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
-msgstr ""
+msgstr "Ruta del certificado"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
-msgstr ""
+msgstr "Ruta donde se encuentra el certificado. Por el momento, sin uso."
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
-msgstr ""
+msgstr "Path del certificado CA"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
+"Ruta del certificado CA. Se utiliza para validar el equipo con el 'Servidor "
+"Argonaut'."
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Nombre de equipo"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Puerto"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Almacén de grupos y usuarios"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Atributo 'dn' de los usuarios"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
-msgstr ""
+msgstr "Patrón para CN"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
+msgstr "Este es el patrón que se usará para crear el campo de 'nombre común'"
+
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
-msgid "Strict naming policy"
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:271
+msgid "Strict naming policy"
+msgstr "Politica de nombres"
+
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
-msgstr ""
+msgstr "Habilita la validación estricta de nombres para usuarios o grupos."
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
-msgstr ""
+msgstr "Usuarios RDN"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
-msgstr ""
+msgstr "La rama donde los usuarios están guardados."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
-msgstr ""
+msgstr "ACL Rol RDN"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
-msgstr ""
+msgstr "La rama donde los rol ACL están almacenados."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Depurando"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Tiempo de consulta máxima de LDAP"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
+"Detenga las acciones sobre LDAP si no hay respuesta después del tiempo "
+"especificado en segundos."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Registrar estadísticas LDAP"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
+"Registrar estadísticas de tiempo de LDAP en 'syslog'. Esto puede ser útil "
+"para encontrar problemas o filtros de búsqueda erróneos."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Nivel de depuración"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
+msgstr "Mostrar determinados datos en cada página de carga."
+
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Varios"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Mostrar resumen en listados"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
+"Determina cuando una barra de estado será mostrada al final de listas, en un"
+" resumen corto y cantidad de elementos en la lista."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
-msgstr ""
+msgstr "Mostrar pestaña de ACL en todos los objetos."
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
+"Para el uso de permisos ACLs muy específicos usted podría requerir dar "
+"acceso en un objeto particular."
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Métodos"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatico"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Grupo %s"
+
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Rol %s"
+
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Versión"
+
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Panel"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Estadísticas"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
 msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatico"
-
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
-msgstr ""
+msgstr "Estadísticas de los usuarios"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
-msgstr ""
+msgstr "Estadísticas de usuario"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
-msgstr ""
+msgstr "Estadísticas de los grupos"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
-msgstr ""
+msgstr "Cuentas expiradas"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Inicio"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Correo Electrónico"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Importar"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3568,53 +3845,202 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Programación"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
-msgstr ""
+msgstr "Editar grupos y roles del usuario"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
+msgstr "Pertenencia a Roles"
+
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Metodo de contraseña"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
-msgstr ""
+msgstr "Tipo de 'hash' para la contraseña"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3622,274 +4048,328 @@ msgstr ""
 msgid "Password"
 msgstr "Contraseña"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
-msgstr ""
+msgstr "Contraseña (deje vacío si usted no desea cambiarla)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
-msgstr ""
+msgstr "Su contraseña de nuevo"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
+msgstr "Igual a la contraseña anterior para evitar errores"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Usuario"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Información de Cuentas de Usuario"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Cuenta de Usuario"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Información personal"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Apellido"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
-msgstr ""
+msgstr "Apellido de este usuario"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Nombre"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
+msgstr "Primer nombre de este usuario"
+
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
-msgid "Short description of the user"
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:108
+msgid "Short description of the user"
+msgstr "Descripción corta para éste usuario"
+
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
-msgstr ""
+msgstr "Imagen"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
-msgstr ""
+msgstr "El avatar para este usuario"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
-msgstr ""
+msgstr "Información de contacto Profesional"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
-msgstr ""
+msgstr "Dirección postal de trabajo"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Número sala"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Número de habitación"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
-msgstr ""
+msgstr "Número telefónico de trabajo"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Móvil"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
-msgstr ""
+msgstr "Celular de trabajo"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Buscapersonas"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
-msgstr ""
+msgstr "Bíper laboral"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
-msgstr ""
+msgstr "Nro. Fax de trabajo"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Página Web"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
-msgstr ""
+msgstr "Página web personal"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
-msgstr ""
+msgstr "Información de cuenta"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
-msgstr ""
+msgstr "Cuenta de este usuario"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Idioma preferido"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
-msgstr ""
+msgstr "Contraseña del usuario"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
-msgstr ""
+msgstr "Información de contacto 'Personal'"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Nombre a Mostrar"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
-msgstr ""
+msgstr "Dirección personal"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Dirección Postal personal"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Teléfono privado"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Número de teléfono personal"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Información corporativa"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Título"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
+"Tratamiento 'Dr, Ing, Sr, Sra ...' en un contexto profesional. Cada "
+"tratamiento es un valor de sus múltiples atributos."
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Número departamento"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Número del departamento"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Número empleado"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Número de empleado"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Categoría profesional"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Código Postal"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
-msgstr ""
+msgstr "Usted no tiene permitido cambiar su propia contraseña."
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
+"Usted debe esperar %d segundos antes de cambiar su contraseña de nuevo."
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
-msgstr ""
+msgstr "La contraseña está en el historial de viejas contraseñas."
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
-msgstr ""
+msgstr "La contraseña no será cambiada por este valor"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Necesita introducir su contraseña actual para continuar."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
+"Las contraseñas que usted ingresó como \"Nueva contraseña\" y \"Repetir "
+"nueva contraseña\" no coinciden."
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nueva contraseña"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 "La contraseña actual y la introducida como nueva son demasiado parecidas."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "La clave contiene caracteres unicode posiblemente problemáticos!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referencias"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "¡Bienvenido %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Completado"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Siguiente"
 
@@ -3917,6 +4397,7 @@ msgstr "Nombre de la localización"
 #: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
+"Nombre de esta conexión para mostrar en la lista de servidores de LDAP."
 
 #: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
@@ -3924,7 +4405,7 @@ msgstr "URI de conexión"
 
 #: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
-msgstr ""
+msgstr "URI para contactar al servidor LDAP. Usualmente comienza con ldap://"
 
 #: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
@@ -3932,12 +4413,12 @@ msgstr "Conexión TLS"
 
 #: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
-msgstr ""
+msgstr "¿Debería usarse TLS para conectarse a este servidor LDAP?"
 
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
 #: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
-msgstr ""
+msgstr "El directorio base de LDAP"
 
 #: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
@@ -3948,6 +4429,8 @@ msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
+"DN de la cuenta admin para conectarse a LDAP. La base se añade "
+"automáticamente."
 
 #: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
@@ -3959,11 +4442,7 @@ msgstr "Contraseña de administrador"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
-msgstr ""
-
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Estado"
+msgstr "Contraseña para la cuenta de Administrador que será vinculada a LDAP."
 
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
@@ -3972,6 +4451,8 @@ msgstr "Estado actual"
 #: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
+"Resultado del último intento al revisar la vinculación con LDAP y los "
+"esquemas básicos."
 
 #: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
@@ -3989,46 +4470,46 @@ msgstr ""
 "Este dialogo realiza la configuración básica de la conectividad LDAP para "
 "FusionDirectory"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "¡La conexión anónima al servidor '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "¡La conexión como usuario '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Reintento"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La conexión anónima al servidor '%s' ha tenido exito."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Refresco"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "¡Por Favor especifique un usuario y contraseña!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "¡La conexión como usuario '%s' al servidor '%s' ha tenido exito!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "Comprobaciones de módulos y extensiones PHP"
 
@@ -4044,31 +4525,31 @@ msgstr "Comprobación de la instalación"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Comprobación básica de la versión de PHP y las extensiones."
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Comprobando la versión de PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP debe ser versión '%s' o superior."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Por favor actualize a la versión soportada."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory requiere este modulo para poder hablar con su servidor LDAP."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory requiere este modulo para una interfaz internacionalizada."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4076,79 +4557,57 @@ msgstr ""
 "FusionDirectory requiere este modulo para comunicarse con distintos tipos de"
 " servidores y protocolos."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory requiere este modulo para la integración con Samba"
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory requiere ya sea el modulo 'mhash' o 'sha1' para usar "
-"encripción SSHA"
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory requiere este modulo para poder hablar con un servidor IMAP."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr "FusionDirectory requiere este modulo para manejar cadenas unicode."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory requiere esta extensión para manejar imágenes."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "modulo de compresión"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requiere esta extensión para manejar capturas."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP usa este valor en el recolector de basura para eliminar las sesiones "
 "antiguas."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4156,40 +4615,47 @@ msgstr ""
 "Ajustando este valor a un día impedirá la perdida de sesiones y cookies "
 "antes de que realmente se desconecte por tiempo."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 "Busque 'sessio.gc_maxlifetime' en su php.ini y modifíquelo a 86400 o mayor."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Off"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
+"Para utilizar FusionDirectory sin problemas la opción session.auto_start  en"
+" su archivo php.ini debe estar configurada en 'Off'."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr "Busque 'session.auto_start' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
+"FusionDirectory requiere al menos 128MB de memoria. Si usted utiliza menos "
+"que esto ¡puede causar errores que no son reproducibles! aumente la memoria "
+"para instalaciones grandes."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
+"Buscar 'memory_limit' en su archivo php.ini y configurarlo con '128MB' o "
+"superior."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4197,22 +4663,22 @@ msgstr ""
 "Esta opción está relacionada con el manejo de salida de PHP. Desactive esta "
 "opción poniéndola en off para mejorar el rendimiento."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Busque 'implicit_flush' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "El tiempo de ejecución debe ser de al menos 30 segundos."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Busque 'max_execution_time' en su php.ini y modifíquelo a '30' o mayor."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4221,108 +4687,114 @@ msgstr ""
 "'off'. PHP no debería enviar ningún tipo de información sobre el servidor "
 "que esta ejecutando la aplicación."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Busque 'expose_php' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrar"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Inspección LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analizar el arbol LDAP actual por compatibilidad con FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
-msgstr ""
+msgstr "Otorgar todos los permisos en usuarios que pertenezcan a dicha rama."
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
+"Permitir a los usuarios editar su propia información (Pestaña de Inicio y "
+"posix, usar únicamente en base)"
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
+"Permitir a los usuarios editar su propia contraseña (Solo en las pestañas "
+"POSIX e Inicio)"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Analizando objetos en la entrada raíz"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Comprobando permisos en la base de datos LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Comprobando usuarios invisibles"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Comprobando súper administrador"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Comprobando cuentas fuera del árbol de usuarios"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Comprobando grupos fuera del árbol de grupos"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Comprobando departamentos invisibles"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Comprobando números UID duplicados"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Comprobando números GID duplicados"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "La consulta LDAP ha fallado"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Error"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Objeto '%s' de FusionDirectory faltante!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Por favor compruebe su instalación"
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4331,123 +4803,174 @@ msgstr ""
 "No se puede un tipo de objeto estructural en su entrada raíz. Por favor "
 "intente añadir la clase de objeto '%s' manualmente."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
+"El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
+"LDAP."
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
+"El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
+"ldap."
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
-"Se encontraron %s usuarios que no serán visibles en FusionDirectory o están "
-"incompletos."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Error de migración"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
+msgstr "Migración de Usuario"
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Roles"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "No hay una cuenta de administrador FusionDirectory dentro de su LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
-msgstr ""
+msgstr "Dar permisos en todos los objetos."
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
-msgstr ""
+msgstr "Los roles ACL por defecto no han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
-msgstr ""
+msgstr "No se encuentran algunos de los roles ACL por defecto"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
-msgstr ""
+msgstr "Los roles ACL por defecto han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Mover usuarios al árbol de usuarios configurado"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
-msgstr ""
+msgstr "¡No se pueden mover entradas en la División seleccionada!"
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "a"
-
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Las siguientes referencias se actualizaran"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Encontrados '%s' grupos fuera del árbol configurado '%s'."
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
+#, php-format
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
+msgstr "Mover grupos dentro del árbol configurado"
+
+#: setup/class_setupStepMigrate.inc:1256
+#, php-format
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1258
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Se encontraron %s departamentos que no serán visibles en FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr "Migración de Divisiones."
+
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4462,7 +4985,7 @@ msgstr "Terminar - Escribir el archivo de configuración"
 msgid "Write configuration file"
 msgstr "Escribir archivo de configuración"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4470,20 +4993,17 @@ msgstr ""
 "El fichero de configuración es universalmente legible. ¡Por favor modifique "
 "los permisos del archivo!"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "En estos momentos la configuración no es accesible o no existe."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Después de descargar y colocar el archivo en %s, por favor asegúrese de que "
-"el usuario bajo el cual está corriendo el servidor web es capaz de leer %s, "
-"mientras que otros usuarios no deben poder."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4499,121 +5019,32 @@ msgid ""
 "\"automatic\" will use the language requested by the browser. This setting "
 "can be overriden per user."
 msgstr ""
+"En este punto usted puede elegir el idioma por defecto del   sitio. Si elige"
+" 'automático'  se utilizará el lenguaje del navegador. Ésta opción puede ser"
+" cambiada por el usuario."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr "¡No se puede acceder a el directorio de compilación '%s'!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-"La configuración de FusionDirectory %s/%s no se puede leer. Cancelado."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Dirección de correo"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Contacte a su administrador, hubo un problema con el servidor de correo"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "Esta prenda es invalida"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Configuración PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Error Fatal: 'Register globals' está activado. No se permitirá ningun acceso"
-" hasta que esto sea solucionado por un administrador."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Cambio de contraseña"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 "Su contraseña va a caducar próximamente, ¡Por favor cambie su contraseña!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "¡Funcionando sin memoria!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Desactivados chequeos de ACL de usuario"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Extensión"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Error de configuración"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4621,105 +5052,25 @@ msgstr ""
 "Error fatal: no todas las variables POST fueron transferidas por PHP - por "
 "favor informe a su administrador!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Entrando"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Error Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Su sesión de FusionDirectory ha expirado!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
-msgstr ""
+msgstr "¡Parámetro \"%s\" de plugin inválido!"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
-msgstr ""
-
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "¡Por favor introduzca un nombre de usuario válido!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "¡Por favor introduzca una contraseña!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Por favor compruebe la combinación nombre de usuario/contraseña"
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-"Cuenta bloqueada. ¡Por favor contacte con su administrador de sistemas!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Su navegador tiene las cookies desactivadas. ¡Porfavor active las cookies y "
-"recargue esta página antes de iniciar sesión!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtro"
+msgstr "¡No se encuentra la sesión!"
 
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
@@ -4732,30 +5083,20 @@ msgid ""
 "This includes all ACL assignments made on this node(s). If you want the list"
 " of these assignments, please cancel and open the objects."
 msgstr ""
+"Aquí se incluyen todos los permisos ACL de este nodo(s). Si desea la lista "
+"de esas asignaciones, por favor presione cancelar y abra los objetos."
 
 #: plugins/admin/acl/remove.tpl.c:8
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
-msgstr ""
+msgstr "Presione 'Borrar' para continuar o 'Cancelar' para abortar."
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Mostrar plantillas"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Mostrar usuarios funcionales"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Mostrar usuarios POSIX"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Mostrar los usuarios de correo"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Mostrar/ocultar caracteristicas avanzadas"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Mostrar los usuarios samba"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Objeto completo"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4765,13 +5106,13 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
 msgid "Manager concerned"
-msgstr ""
+msgstr "Manager concerned"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:14
 msgid "There is one account expiring in the next %1 days"
@@ -4782,11 +5123,11 @@ msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
-msgstr ""
+msgstr "No hay cuentas por expirar por los próximos %1 días"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:20
 msgid "Next expired accounts"
-msgstr ""
+msgstr "Cuentas por expirar"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:2
 msgid "There is 1 group:"
@@ -4808,7 +5149,7 @@ msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
-msgstr ""
+msgstr "No existe el grupo %1"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:2
 #: plugins/addons/dashboard/users_stats.tpl.c:2
@@ -4819,8 +5160,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4833,7 +5174,7 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4841,7 +5182,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4849,17 +5190,19 @@ msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
-msgstr ""
+msgstr "Ninguno de ellos tiene una %1 cuenta"
 
 #: plugins/generic/references/contents.tpl.c:2
 msgid "<strong>%1</strong> references our <strong>%3</strong>"
-msgstr ""
+msgstr "<strong>%1</strong>referencia nuestro<strong>%3</strong>"
 
 #: plugins/generic/references/contents.tpl.c:5
 msgid ""
 "<strong>%1</strong> references our field <strong>%3</strong> from tab "
 "<strong>%2</strong>"
 msgstr ""
+"<strong>%1</strong> referencia nuestro campo <strong>%3</strong> en el tab "
+"<strong>%2</strong>"
 
 #: plugins/generic/references/contents.tpl.c:8
 msgid "This object has no relationship to other objects."
@@ -4890,10 +5233,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Añadir las clases de objetos necesarias a la base LDAP"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Actual"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Despues de migrar"
 
@@ -4915,13 +5260,10 @@ msgstr "FusionDirectory correrá aun si no se arregla esto."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Esta parece ser la primera vez que inicia FusionDirectory - no conseguimos "
-"ninguna configuración hasta el momento. Este simple asistente trata de "
-"ayudarlo a configurar."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -4959,17 +5301,17 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:29
 msgid "To continue:"
-msgstr ""
+msgstr "Para continuar:"
 
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4993,7 +5335,7 @@ msgstr "Crear su fichero de configuración"
 
 #: setup/setup_finish.tpl.c:5
 msgid "Run %1 to put the correct right on fusiondirectory.conf"
-msgstr ""
+msgstr "Ejecute %1 para corregir los permisos en fusiondirectory.conf"
 
 #: setup/setup_finish.tpl.c:8
 msgid "Download configuration"
@@ -5008,6 +5350,8 @@ msgid ""
 "This dialog allows moving a couple of entries to the configured tree. Doing "
 "this may straighten your LDAP service."
 msgstr ""
+"Este cuadro de mensaje le permite mover un par de entradas al árbol LDAP "
+"configurado. Hacer esto podría arreglar su servicio LDAP."
 
 #: setup/setup_migrate_accounts.tpl.c:5
 msgid ""
@@ -5015,10 +5359,13 @@ msgid ""
 "entries. The FusionDirectory setup can't migrate references, so you may want"
 " to cancel the migration in this case."
 msgstr ""
+"¡Cuidado con ésta opción! Pueden haber referencias que apuntan a ésas "
+"entradas. La 'configuración' de FusionDirectory no puede migrar ésas "
+"referencias, así que usted podría querer cancelar la migración en éste caso."
 
 #: setup/setup_migrate_accounts.tpl.c:8
 msgid "Move selected entries into this tree"
-msgstr ""
+msgstr "Mover las entradas seleccionadas a éste árbol."
 
 #: setup/setup_migrate_accounts.tpl.c:11
 msgid ""
@@ -5026,6 +5373,9 @@ msgid ""
 " If you want to change this for a couple of entries only, just select them "
 "and use the 'Migrate' button below."
 msgstr ""
+"Las entradas que se listan actualmente no son visibles en la interfaz de "
+"FusionDirectory. Si desea cambiar ésto para un par de entradas únicamente, "
+"solo debe seleccionarlas y usar el botón \"Migrar\"."
 
 #: setup/setup_migrate_accounts.tpl.c:14
 msgid ""
@@ -5035,7 +5385,12 @@ msgstr ""
 "Si quiere saber que se hará cuando se migren las entradas seleccionadas use "
 "el botón 'Mostrar cambios' para ver el LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Seleccione todos"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Mostrar cambios"
 
@@ -5134,6 +5489,8 @@ msgid ""
 "Password recovery is not activated. If you have lost your password, please "
 "contact your administrator"
 msgstr ""
+"La recuperación de contraseña no está disponible. Si usted perdió su "
+"contraseña por favor contacte a su administrador."
 
 #: ihtml/themes/legacy/login.tpl.c:5 ihtml/themes/breezy/login.tpl.c:5
 msgid ""
@@ -5145,17 +5502,31 @@ msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:26 ihtml/themes/breezy/login.tpl.c:26
 msgid "I forgot my password"
-msgstr ""
+msgstr "Olvidé la contraseña"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Su navegador tiene las cookies desactivadas. ¡Porfavor active las cookies y "
+"recargue esta página antes de iniciar sesión!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Pulse aquí para iniciar sesión"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
-msgstr ""
+msgstr "¡Advertencia!: Usted está a punto de borrar los siguientes objetos"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5170,37 +5541,88 @@ msgstr ""
 "Entonces, si esta seguro, presione <i>Eliminar</i> para continuar o "
 "<i>Cancelar</i> para Abortar."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Abajo"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Acciones"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtro"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Buscar en subárboles"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Aplicar filtro"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
-msgstr ""
+msgstr "Crear un nuevo objeto utilizando plantillas"
 
 #: ihtml/themes/breezy/template.tpl.c:8
 #: ihtml/themes/breezy/restore-confirm.tpl.c:14
 msgid "Continue"
 msgstr "Continuar"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Detectado conflicto de Bloqueos"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Solo lectura"
 
@@ -5217,6 +5639,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Enviar"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Inicio"
@@ -5235,6 +5662,10 @@ msgid "Session expires in %d!"
 msgstr "La sesión expira en %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5247,24 +5678,24 @@ msgstr ""
 "la búsqueda a valores pequeños y usar filtros para encontrar las entradas "
 "que este buscando."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Por favor elija la forma de reaccionar en esta sesión"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
-"ignore este error y muestre todas las entradas devueltas por el servidor "
-"LDAP"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"ignore este error y muestre todas las entradas que coincidan con el tamaño "
-"limite definido y active el uso de filtros en su lugar"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Activar"
diff --git a/locale/es_CO/fusiondirectory.po b/locale/es_CO/fusiondirectory.po
index ee5b253b272b53447790d7950176499b6aadd9e8..720ca57a9a350d4c73f8b23d91d09e7b06690d6f 100644
--- a/locale/es_CO/fusiondirectory.po
+++ b/locale/es_CO/fusiondirectory.po
@@ -4,148 +4,557 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
-"Language-Team: Spanish (Colombia) (https://www.transifex.com/fusiondirectory/teams/12202/es_CO/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Spanish (Colombia) (https://app.transifex.com/fusiondirectory/teams/12202/es_CO/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es_CO\n"
 "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Por favor solucione el error anterior y recargue la página."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tipo"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Etiqueta"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Fecha"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Descripción"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Recuperar"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Hubo un problema descomprimiendo la información del snapshot."
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objeto"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Snapshots"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Marca de tiempo"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Por favor elija las entradas que desea"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "%s plantilla"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Plantilla"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "A partir de plantilla"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Crear"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Exportar lista"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Editar"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Cortar"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copiar"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Pegar"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Aplicar plantilla"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Borrar"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Crear 'snapshot'"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Restaurar 'snapshot'"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Usted no tiene permitido crear un 'snashot' para %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Usted no está autorizado para restaurar un 'snapshot' para %s"
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Ir a la División raíz"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Root"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Subir una División"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Arriba"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Ir a la División del usuario"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Home"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Refrescar lista"
 
-#: include/class_config.inc:151
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Configurar"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Error XML en fusiondirectory.conf: %s en la línea %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Error de configuración"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Error LDAP"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 "No se puede contactar a LDAP. Por favor contacte al adminsitrador del "
 "sistema."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Todas las categorías"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Mi cuenta"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Página"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr "No se puede exportar un PDF: no hay una librería FPDF instalada."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "creado por"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Archivo"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Line"
 
@@ -169,462 +578,381 @@ msgstr "static"
 msgid "method"
 msgstr "método"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Trace"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tipo"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argumentos"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "¡Al generar esta página se han generado errores en el intérprete PHP!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Enviar un reporte de fallo al equipo de FusionDirectory"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Enviar reporte de errores"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Alternar información"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Arriba"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Abajo"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Ordenar"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Ordenar de modo inverso"
-
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Seleccionar todo"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "creado por"
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Ir a la División raíz"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Root"
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Subir una División"
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr "Ir a la División del usuario"
-
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Home"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Refrescar lista"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "La Zona Horaria \"%s\" en su configuración no es válida."
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Acciones"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Copiar"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Nombre de la plantilla"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Cortar"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Entrada fallida: %s"
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Pegar"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Cortar esta entrada"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "¡El objectType especificado está vacío o es inválido!"
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Copiar esta entrada"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Restaurar 'snapshots'"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Exportar lista"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Restaurar 'snapshot'"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Crear 'snapshot'"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Crear un nuevo 'snapshot' de este objeto"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Acceder"
 
-#: include/class_timezone.inc:52
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
-msgstr "La Zona Horaria \"%s\" en su configuración no es válida."
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
-msgstr "Hubo un problema descomprimiendo la información del snapshot."
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "¡Por favor especifique un nombre de usuario válido!"
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr ""
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "¡Por favor especifique su contraseña!"
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Plantilla"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Cuenta bloqueada. ¡Por favor contacte a su administrador!"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
-msgstr ""
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Error LDAP"
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Nombre de la plantilla"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Error Interno"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
 
-#: include/class_logging.inc:81
-#, php-format
-msgid "Logging failed: %s"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "¡El objectType especificado está vacío o es inválido!"
-
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
-"Usted debe completar saslRealm o saslExop en la pantalla de configuración "
-"para usar SASL"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Enviar"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Dirección de correo"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Recuperación de contraseña"
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Aplicar filtro"
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "No se encontró la cuenta de usuario: \"%s\""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Buscar en subárboles"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Se encontraron varias cuentas identificadas como: \"%s\""
 
-#: include/class_filter.inc:404
+#: include/class_passwordRecovery.inc:294
 #, php-format
-msgid "Searches in %s"
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "The size limit of %d entries is exceed!"
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Configurar"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "incompleto"
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "Este token es inválido"
 
-#: include/functions.inc:97
-#, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:116
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
-"Error fatal: No se puede ejemplificar la clase '%s' - intente ejecutar '%s' "
-"para arreglar esto."
-
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Error fatal"
-
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr "FATAL: Error conectándose a LDAP. El servidor dijo: '%s'"
 
-#: include/functions.inc:472
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
-"¡Login (uid) no es un valor único en el árbol LDAP!. Por favor contacte a su"
-" administrador."
+"Usted debe completar saslRealm o saslExop en la pantalla de configuración "
+"para usar SASL"
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Error de autenticación"
+#: include/class_standAlonePage.inc:127
+#, php-format
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr ""
+"La configuración %s/%s de FusionDirectory no tiene permisos de lectura. "
+"Abortado."
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
-"Al parecer tu contraseña expiró. Por favor acceda a<a "
-"href=\"recovery.php\">Recuperar contraseña</a> y cámbiela."
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr "Error mientras agregando un bloqueo. ¡Contacte a los desarrolladores!"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "incompleto"
 
-#: include/functions.inc:594
+#: include/class_ldapSizeLimit.inc:152
 #, php-format
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
-"No se puede crear un bloqueo de información en el árbol de 'LDAP'. ¡Por "
-"favor contacte a su administrador!"
 
-#: include/functions.inc:594
+#: include/functions.inc:55
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "El servidor LDAP respondió: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Precacuión"
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"Error fatal: no se han definido un emplazamiento para las clases - por favor"
+" ejecute '%s' para solucionar esto"
 
-#: include/functions.inc:783
+#: include/functions.inc:78
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
-"Se encontraron varios 'locks' en el objeto lo cual impide bloquearlo. Esto "
-"no debería suceder - borrando varias referencias."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Continuar de todos modos"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Editar de todos modos"
+"Error fatal: No se puede ejemplificar la clase '%s' - intente ejecutar '%s' "
+"para arreglar esto."
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Usted está a punto de editar las entradas de LDAP: %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
+msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
-"El archivo '%s' no se puede borrar. Intente ejecutar fusiondirectory-setup-"
-"check-directories para arreglar los permisos."
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
-msgstr ""
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
+msgstr "¡No se puede escribir en el archivo de revisión!"
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "LDAP - Advertencia"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
+msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "No se puede traer información del 'schema' desde el servidor. ¡No se puede "
 "validar el schema'"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
-msgstr ""
+msgstr "Clase(s) disponibles"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
@@ -632,13 +960,13 @@ msgstr ""
 "Usted ha instalado el plugin 'Mixed Groups', pero la configuración de su "
 "esquema no lo soporta."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
@@ -646,375 +974,231 @@ msgstr ""
 "Su esquema tiene configurado soporte para 'Mixed Groups', pero este plugin "
 "no está presente."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"No se encuentra el archivo '%s' - por favor ejecute '%s' para  arreglar "
-"esto."
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Todos los objetos en esta categoría"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Usuario"
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Permisos"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Cancelar todo"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "No se puede pegar"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Elija para listar todos los objetos del tipo '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Elegir para listar los objetos que posean '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Elegir para listar todos los objetos que posean '%s' habilitado."
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Seleccione para buscar dentro de subárboles"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "¡Este objeto será borrado!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "¡Este '%s' objeto será borrad<o! "
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Este objeto será borrado: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Este '%s' objeto será borrado: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Este objeto será borrado:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Este '%s' objeto será borrado:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Estos objetos serán borrados: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "These '%s' objects will be deleted: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "¡Usted no posee permisos para borrar este objeto!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Usted no posee permisos para borrar el objeto:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Usted no posee permisos para borrar estos objetos:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "¡No tienes permisos para crear este objeto!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "No tienes permisos para crear este objeto:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "No tienes permisos para crear estos objetos:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "!No tienes permisos para modificar este objeto!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "!No tienes permisos para ver este objeto!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "No tienes permisos para ver el objeto:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "No tienes permisos para para ver estos objetos:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "!No tienes permisos para mover este objeto!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "No tienes permisos para mover el objeto:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "No tienes permisos para mover estos objetos:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Información de la conexión"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "¡No se puede conectar a la base de datos %s!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "¡No se puede seleccionar la base de datos %s!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "¡No se ha definido el servidor %s!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "¡No se puede consultar la base de datos %s!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "¡El campo '%s' tiene una palabra especial reservada por el sistema!"
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "¡El comando especificado como %s hook para el plugin '%s' no existe!"
-
-#: include/class_msgPool.inc:313
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "'%s' command is invalid!"
-msgstr "¡El comando '%s' es inválido!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "¡El comando '%s' para el plugin %s es inválido!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "¡El '%s' comando  (%s) es inválido!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "¡'%s' comando (%s) para el plugin %s es inválido!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "¡No se puede ejecutar el comando '%s'!"
-
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "¡No se puede ejecutar el comando '%s' para el plugin %s!"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "¡No se puede ejecutar  '%s' comando (%s)!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The required field '%s' is empty!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:436
-msgid "Example:"
+#: include/class_msgPool.inc:238
+#, php-format
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
-msgstr ""
+msgstr "¡Extensión PHP %s no encontrada!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Aplicar"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Salvar"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Agregar"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Agregar %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Borrar"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Borrar %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Editar..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Editar %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Atrás"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "¡Esta cuenta no tiene extensiones %s válidas!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1023,7 +1207,7 @@ msgstr ""
 "Ésta cuenta tiene %s configuraciones habilitadas. Usted puede "
 "deshabilitarlas haciendo clic debajo."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1032,7 +1216,7 @@ msgstr ""
 "Ésta cuenta tiene  %s configuraciones habilitadas. ¡Para deshabilitarlas "
 "deberá borrar el %s de configuraciones primero!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1041,7 +1225,7 @@ msgstr ""
 "Ésta cuenta tiene %s configuraciones deshabilitadas. Usted puede "
 "habilitarlas haciendo clic debajo."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1050,300 +1234,222 @@ msgstr ""
 "Ésta cuenta tiene %s configuraciones deshabilitadas. ¡Para habilitarlas "
 "usted deberá agregar el %s de configuraciones primero!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Agregar %s configuraciones "
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Borrar %s configuraciones "
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Enero"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Febrero"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Marzo"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Abril"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Mayo"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Junio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Julio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Agosto"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Septiembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Octubre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Noviembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Diciembre"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Domingo"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Lunes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Martes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Miércoles"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Jueves"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Viernes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Sábado"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "leer operación"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "agregar operación"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "modificar operación"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "borrar operación"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "buscar operación"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "autenticación"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "¡LDAP %s falló!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "¡La operación en LDAP ha fallado!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objeto"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "¡La subida del archivo ha fallado!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "¡La subida del archivo: %s ha fallado!"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "¡Falló la comunicación con el servicio de infraestructura!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "¡Falló la comunicación con el servicio de infraestructura: %s!"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "Este '%s' sigue en uso por el objeto: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "Este '%s' sigue en uso."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr ""
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr ""
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
-msgstr ""
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "No se puede eliminar el archivo '%s'!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "¡No se puede borrar el directorio '%s'!"
-
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
-msgstr ""
+msgstr "Comprobando soporte %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
-msgstr ""
+msgstr "Instala y activa el módulo de PHP %s."
+
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr "¡La base introducida no es válida, se ha dejado el valor anterior!"
 
-#: include/class_msgPool.inc:838
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "Install and activate the %s Pear module."
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
-"No se puede inicializar la clase '%s'! ¿Quizás hay algún plugin mal "
-"instalado en su configuración de FusionDirectory?"
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Por favor elija las entradas que desea"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nombre"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Descripción"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
-msgstr ""
+msgstr "Iniciar servicio"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
-msgstr ""
+msgstr "Parar servicio"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
-msgstr ""
+msgstr "Reiniciar servicio"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1355,557 +1461,543 @@ msgstr "Objeto base"
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
-msgid "Hours"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
-msgid "Minutes"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Tipo desconocido: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "¡dn: %s Inexsitente!"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Ninguno"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
-msgid "Seconds"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
-msgid "Time"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
+msgid "Hours"
+msgstr "Horas"
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
+msgid "Minutes"
+msgstr "Minutos"
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
+msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
+msgid "Time"
+msgstr "Tiempo"
+
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "No se puede leer el archivo subido: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "el archivo está vacio"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "archivo no encontrado"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "archivo sin privilegios de lectura"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr "%s (%d bytes)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Subir"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Descargar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Borrar"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Editar"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Un número entero entre %d y %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Un número entero mayor que %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Un número entero menor a %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Un número flotante entre %f y %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Un número flotante mayor que %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Un número flotante menor que %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (necesario)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Valor inválido para %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Ordenar"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Ninguno"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Ordenar de modo inverso"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "Configuraciones de Plantilla"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Este es el nombre de la plantilla"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr "Solo la pestaña principal puede calcular dn"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr "No es posible calcular dn: no hay pestaña de clase padre para \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
-"No es posible calcular dn: No se encuentra el objectType infos desde la "
-"pestaña clase \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Ya existe una entrada con el mismo dn: %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "La entrada %s no existe"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Pestaña \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
-#, php-format
-msgid "Unknown field \"%s\""
+#: include/simpleplugin/class_simplePlugin.inc:2100
+#, php-format
+msgid "Unknown field \"%s\""
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "segundos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "minutos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "horas"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "días"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Administrar listas de control de acceso"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Rol %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Roles ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr "Grupo %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Grupo del usuario"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Desconocido"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "A partir de plantilla"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "¡Entrada desconocida '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "%s plantilla"
+msgid "All users"
+msgstr "Todos los usuarios"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Mostrar %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Error al filtrar"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"¡Login (uid) no es un valor único en el árbol LDAP!. Por favor contacte a su"
+" administrador."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "¡El filtro está incompleto!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Precacuión"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Error de permisos"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Usted no tiene permitido crear un 'snashot' para %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Usted no está autorizado para restaurar un 'snapshot' para %s"
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "SIN ETIQUETA"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Crear"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Administrar listas de control de acceso"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Roles ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
-"¡Tipo de ACL '%s' desconocido!\n"
-"Puede que usted necesite ejecutar \"fusiondirectory-setup --migrate-acls\"  para migrar sus acls al nuevo formato."
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "¡Entrada desconocida '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
+"Al parecer tu contraseña expiró. Por favor acceda a<a "
+"href=\"recovery.php\">Recuperar contraseña</a> y cámbiela."
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Todos los usuarios"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Advertencia de Rendmiento"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr "LDAP tiene un desempeño lento: su última consulta tomó %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "mientras se realizan operaciones en '%s' usando el servidor LDAP %s"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "mientras se realizan operaciones en el servidor LDAP %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr "proc_open falló al ejecutar ldapsearch"
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Marca de tiempo"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Error mientras agregando un bloqueo. ¡Contacte a los desarrolladores!"
 
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"No se puede crear un bloqueo de información en el árbol de 'LDAP'. ¡Por "
+"favor contacte a su administrador!"
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "El servidor LDAP respondió: %s"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Se encontraron varios 'locks' en el objeto lo cual impide bloquearlo. Esto "
+"no debería suceder - borrando varias referencias."
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Snapshots"
-
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Lista de categorías"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Departamento"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Editar de todos modos"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Dominio"
@@ -1914,127 +2006,142 @@ msgstr "Dominio"
 msgid "domain"
 msgstr "dominio"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organización"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "organización"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Departamento"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Divisiones"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "división"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Propiedades"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Nombre de  %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Un nombre para este %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Una descripción de este %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "categoría"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Categoría de este %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Mánager"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Mánager de este %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Ubicación"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Estado"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "País"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Dirección"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Dirección postal de este  %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Teléfono"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Número telefónico"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "Teléfono alternativo"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nombre"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Componente de Dominio"
@@ -2043,268 +2150,233 @@ msgstr "Componente de Dominio"
 msgid "domain component"
 msgstr "componente de dominio"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "país"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Localidad"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "localidad"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Administrar categorías"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Usuarios y Grupos"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr "Grupos y Roles"
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr "Administrar grupos y roles"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Tareas"
 
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Reportes"
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Estado"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Rol"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Editar propiedades de Rol"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Grupos y Roles"
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Editar propiedades posix"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Administrar grupos y roles"
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Mostrar grupos del usuario"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Mostrar roles de Profesionales"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Acción disparada"
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Mostrar grupos de aplicación"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Acción programada"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Mostrar grupos primarios"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Mostrar grupos de correo"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Mostrar grupos Samba"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Mostrar grupos de servidores"
-
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Mostrar grupos de estaciones de trabajo"
-
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Mostrar grupos de Terminales"
-
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Mostrar grupos de impresión"
-
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Mostrar grupos de teléfono"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "Tipo desconocido: %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
-msgstr "¡dn: %s Inexsitente!"
+msgid "Action called without error (result was \"%s\")"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Objeto grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Datos del 'objeto grupo'"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "GRupo"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Nombre de este grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Una descripción corta de este grupo."
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
-msgstr ""
+msgstr "Propietario"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Objetos miembro"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Objetos miembro de este grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Confianza del Sistema"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Modo de Confianza"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Tipo de autorización para ésos equipos"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "deshabilitado"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "Acceso Completo"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "Permitir acceso a ésos equipos"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 "Habilitar solamente a éste grupo para conectarse a ésta lista de equipos."
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 "Alojar estaciones de trabajo y terminales en el mismo grupo no está "
 "permitido."
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Lista de Grupos"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Miembros"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Rol"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Información del Rol"
 
@@ -2322,8 +2394,8 @@ msgid "Description of the role"
 msgstr "Descripción del Rol"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Teléfono"
 
@@ -2331,190 +2403,178 @@ msgstr "Teléfono"
 msgid "Fax number"
 msgstr "Fax"
 
-#: plugins/admin/groups/class_roleGeneric.inc:105
-msgid "Role members"
+#: plugins/admin/groups/class_roleGeneric.inc:105
+msgid "Role members"
+msgstr ""
+
+#: plugins/admin/groups/class_roleGeneric.inc:108
+msgid "Add users for the role"
+msgstr "Agregar usuarios al rol"
+
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Gestionar ACLs"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Gestión de ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Gestionar permisos ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Permisos"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Gestión de ACL para esta base"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Permisos en el objeto o subárbol %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:108
-msgid "Add users for the role"
-msgstr "Agregar usuarios al rol"
-
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Panel de gestión de roles ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Modo"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr "¿Se aplicará en todo el subárbol o solo en la base?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Subárbol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Base únicamente"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Rol a aplicar"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Para todos los usuarios"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Aplicar este ACL a todos los usuarios de LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Miembros"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr "Usuarios o grupos a los cuales asignar este rol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "Gestionar ACLs"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Gestión de ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Gestionar permisos ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Permisos"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "Gestión de ACL para esta base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
-msgstr "Permisos en el objeto o subárbol %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "Gestionar ACLs"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Lista de usuarios"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Apellido"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Nombre"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Usuario"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Bloquear usuarios"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Desbloquear usuarios"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Aplicar plantilla"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Nuevo usuario a partir de plantilla"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Editar usuario"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Borrar usuario"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Usuarios"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Administrar usuarios"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Bloqueo de cuentas"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
@@ -2523,205 +2583,276 @@ msgstr ""
 "El método de contraseña \"%s\" no soporta bloqueos. ¡La cuenta \"%s\" no se "
 "ha bloqueado!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Desbloquear cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Bloquear cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Cuenta de Usuario"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Información de Cuentas de Usuario"
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Contiene configuraciones para ésos objetos: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Roles de control de acceso."
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "Rol ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Un nombre para este rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Una descripción corta para este rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "ACLs"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr "ACLs que son parte de este grupo"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "No hay configuraciones ACL para esta categoría"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL para ésos objetos: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Editar categioría ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Restablecer categoría ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Lista de categorías ACL disponibles"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Todos los objetos en el subárbol actual."
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "leer"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Administración de Roles \"ACL\""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "escribir"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Mostrar/Ocultar configuraciones avanzadas"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Crear objetos"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Mover objetos"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Borrar objetos"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Otorgar permisos al dueño"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Completar objeto"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "Administración de Roles \"ACL\""
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Habilitar snapshots"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Permite que usted salve ciertos estados o entradas para luego restaurarlas."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Base para Snapshot "
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Configuración de 'plugins'"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "Configuración de plugins de FusionDirectory"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Grupos"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "Grupos RDN"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Rama de LDAP donde ser almacenarán los Grupos"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
-msgstr "Forzar para solicitar la contraseña"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
-"Útil si usted agrega un 'hook' utilizando una contraseña cuando las "
-"contraseñas de usuario SASL se editan."
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Configuración del Panel"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr "FusionDirectory panel de configuración de plugins."
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Panel nombre del esquema"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Cantidad de dígitos"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "Cantidad de dígitos a usar después del prefijo."
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Prefijos"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr "Prefijos que se usarán para las 'id' de computadoras."
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "Panel de usuarios expirados"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Cantidad de días"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
@@ -2730,6 +2861,8 @@ msgstr ""
 "el panel de las próximas cuentas por expirar."
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -2737,49 +2870,50 @@ msgstr "Plugins"
 msgid "Configuration for plugins"
 msgstr "Configuración de plugins"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Recuperación de contraseña"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Configuraciones para la característica de recuperación de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Configuración de \"Recuperación de Contraseña\""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Habilitar recuperación de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
-"Elegir cuando activar la característica de recuperación de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Correo del remitente"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "Dirección desde donde se enviarán los correos."
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Vigencia del 'Link' (minutos)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Cantidad de tiempo antes que el link para recuperar expire."
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "'Salt' para 'tokens''"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2787,51 +2921,49 @@ msgstr ""
 "Solo una medida de seguridad, usted puede incluir cualquier cosa aquí, "
 "incluso caracteres aleatorios."
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Habilitar el uso de correos alternativos"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Los usuarios también podrán una dirección alternativa para recuperar su "
-"contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Cuenta de Usuario"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Correo principal"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Asunto"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Asunto del correo principal"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Enlace para recuperar contraseña"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Mensaje (primer %s es Cuenta de usuario,  el segundo es 'Enlace')"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2841,7 +2973,7 @@ msgstr ""
 "contraseña. Utilice %s para la cuenta de usuario y el enlace de recuperación"
 " de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2853,24 +2985,24 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Email secundario"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Asunto del email secundario"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] ¡Recuperación de contraseña satisfactoria!"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Mensaje (%s es cuenta de usuario)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2879,7 +3011,7 @@ msgstr ""
 "Mensaje del segundo correo enviado al confirmar el cambio de contraseña. "
 "Utilice %s para la cuenta de usuario."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2892,29 +3024,84 @@ msgstr ""
 "Su contraseña se ha cambiado.\n"
 "Su cuenta de usuario sigue siendo %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Cuándo llamar este comando"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "La línea de comandos que será usada"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configuración"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "Configuración de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Look and feel"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Idioma"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2923,39 +3110,39 @@ msgstr ""
 "preguntará al navegador cuál utilizar. Ésta opción puede ser cambiada por el"
 " usuario."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Plantilla"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Plantilla a utilizar"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Zona Horaria"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Zona Horaria a utilizar"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Configuración del 'Núcleo'"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "Tamaño límite LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr "Determine cuántas entradas se traerán de LDAP por defecto."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Editar bloqueo"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -2963,95 +3150,84 @@ msgstr ""
 "Mientras tanto, revisar si una entrada que está siendo editada ha sido "
 "modificada desde fuera de FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Habilitar escritura de logs"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Escritura de eventos en logs de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr "Validación del esquema 'LDAP'"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 "Habilita la validación del esquema 'LDAP' durante el inicio de sesión."
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Habilitar snapshots"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-"Permite que usted salve ciertos estados o entradas para luego restaurarlas."
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Base para Snapshot "
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "La base donde los snapshots deberían ser almacenados dentro de LDAP."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Configuraciones de Contraseña"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "'hash' de contraseña por defecto."
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "'hash' por defecto"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Forzar 'hash' por defecto"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr "Forzar el uso del 'hash' de Contraseña por defecto."
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Longitud mínima de contraseña"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Longitud máxima de contraseña para usuarios"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Diferencia mínima entre contraseñas"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 "Cantidad mínima de caracteres distintos a partir de la última contraseña"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Expiración de la cuenta de usuario"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
@@ -3060,33 +3236,33 @@ msgstr ""
 "sesión en FusionDirectory y fuerza la renovación de contraseña o bloqueo de "
 "cuenta."
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "SASL Realm"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr "Valor que será almacenado en el atributo 'userPassword'"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Cuenta de Usuario y sesión"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 "Que atributo LDAP debería usarse como 'cuenta de usuario' en el inicio de "
 "sesión."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Forzar las conexiones encriptadas"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3094,216 +3270,235 @@ msgstr ""
 "Habilita revisiones de seguridad con PHP para forzar el acceso encriptado "
 "(https) en la interfaz web."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Alertar si la sesión no se encuentra encriptada"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 "mostrará un mensaje de advertencia al usuario cuando se utilice http en vez "
 "de https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Tiempo de vida de la sesión "
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr "Ruta de la llave "
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 "Ruta donde se encuentra la llave de FusionDirectory. Por el momento, sin "
 "uso."
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr "Ruta del certificado"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr "Ruta donde se encuentra el certificado. Por el momento, sin uso."
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr "Path del certificado CA"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 "Ruta del certificado CA. Se utiliza para validar el equipo con el 'Servidor "
 "Argonaut'."
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
+#: plugins/config/class_configInLdap.inc:217
+msgid "Path to the CA certificate of the CAS server"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host"
+msgstr "Equipo"
+
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port"
+msgstr "Puerto"
+
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
-msgid "Path to the CA certificate of the CAS server"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host"
-msgstr "Equipo"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host of the CAS server"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port"
-msgstr "Puerto"
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port the CAS server is listening on"
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context"
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context to be used"
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Almacenamiento de 'Usuarios' y 'Grupos'"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Atributo DN para 'Usuarios'"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
-msgstr "Atributo al inicio del \"dn\" de los usuarios"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr "Patrón para CN"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr "Este es el patrón que se usará para crear el campo de 'nombre común'"
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Politica de nombres"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr "Habilita la validación estricta de nombres para usuarios o grupos."
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr "Usuarios RDN"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "La rama donde los usuarios están guardados."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr "ACL Rol RDN"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr "La rama donde los rol ACL están almacenados."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Rastreo de errores"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Mostrar errores"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
-"Muesta los errores PHP en la parte superior de la pantalla. esto debería "
-"estar deshabilitado en entornos productivos, ya que, en algunos casos "
-"podrían mostrarse contraseñas allí."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Tiempo máximo de consultas LDAP."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
@@ -3311,11 +3506,11 @@ msgstr ""
 "Detenga las acciones sobre LDAP si no hay respuesta después del tiempo "
 "especificado en segundos."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Escribir logs de las estadísticas LDAP."
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3323,23 +3518,31 @@ msgstr ""
 "Registrar estadísticas de tiempo de LDAP en 'syslog'. Esto puede ser útil "
 "para encontrar problemas o filtros de búsqueda erróneos."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Nivel del 'Rastreo de Errores'"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Mostrar determinados datos en cada página de carga."
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Miscelánea"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Muestra un resumen en los listados."
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3347,11 +3550,11 @@ msgstr ""
 "Determina cuando una barra de estado será mostrada al final de listas, en un"
 " resumen corto y cantidad de elementos en la lista."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr "Mostrar pestaña de ACL en todos los objetos."
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
@@ -3359,266 +3562,279 @@ msgstr ""
 "Para el uso de permisos ACLs muy específicos usted podría requerir dar "
 "acceso en un objeto particular."
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automático"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Grupo %s"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "'Hooks' que son llamados cuando suceden acciones específicas."
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Rol %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "La pestaña que corresponde a este 'hook'"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Cuándo llamar este comando"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Versión"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "La línea de comandos que será usada"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
-msgstr "Mostrar la salida del 'hook'"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
-"Si se  habilita, cuando un 'hook' termine exitosamente se mostrará una "
-"ventana de diálogo al usuario."
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automático"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Panel"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Estadísticas"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Estadísticas de los usuarios"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Estadísticas de usuario"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Estadísticas de los grupos"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Cuentas expiradas"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Usuario"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
-msgstr ""
+msgstr "Correo Electrónico"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Panel"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "Reportes"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Estadísticas"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
-msgstr ""
+msgstr "Importar"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3626,53 +3842,202 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Programación"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Editar grupos y roles del usuario"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
-msgstr "Pertenencia a grupos"
+msgid "Group memberships"
+msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
 msgstr "Pertenencia a Roles"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Tipo de contraseña"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Tipo de 'hash' para la contraseña"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3680,156 +4045,205 @@ msgstr "Tipo de 'hash' para la contraseña"
 msgid "Password"
 msgstr "Contraseña"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Contraseña (deje vacío si usted no desea cambiarla)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Su contraseña de nuevo"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Igual a la contraseña anterior para evitar errores"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Usuario"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Información de Cuentas de Usuario"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Cuenta de Usuario"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Información personal"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Apellido"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Apellido de este usuario"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Primer nombre"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Primer nombre de este usuario"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Descripción corta para éste usuario"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Imagen"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "El avatar para este usuario"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr "Información de contacto Profesional"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Dirección postal de trabajo"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Habitación Nro."
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Número de habitación"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Número telefónico de trabajo"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Celular"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Celular de trabajo"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Bíper"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "Bíper laboral"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Nro. Fax de trabajo"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Página web"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "Página web personal"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "Información de cuenta"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr "Cuenta de este usuario"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Idioma preferido"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Contraseña del usuario"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Información de contacto 'Personal'"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
-msgstr ""
+msgstr "Nombre a Mostrar"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr "Dirección personal"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Código postal"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Teléfono personal"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Teléfono de domicilio personal"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Información Profesional"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Tratamiento 'Sr, Sra...'"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
@@ -3837,79 +4251,79 @@ msgstr ""
 "Tratamiento 'Dr, Ing, Sr, Sra ...' en un contexto profesional. Cada "
 "tratamiento es un valor de sus múltiples atributos."
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "División No."
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Número de División"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Empleado N°"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Número de empleado"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Tipo de empleado"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
-msgstr ""
+msgstr "Código Postal"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
-msgstr "¡No se pudo encontrar la política \"%s\" en LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
+msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr "Usted no tiene permitido cambiar su propia contraseña."
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 "Usted debe esperar %d segundos antes de cambiar su contraseña de nuevo."
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "La contraseña está en el historial de viejas contraseñas."
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr "La contraseña no será cambiada por este valor"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Usted debe especificar su contraseña actual para poder proceder."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
@@ -3917,43 +4331,43 @@ msgstr ""
 "Las contraseñas que usted ingresó como \"Nueva contraseña\" y \"Repetir "
 "nueva contraseña\" no coinciden."
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nueva contraseña"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "La contraseña anterior y la nueva son muy parecidas."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 "La contraseña posiblemente contiene caracteres 'Unicoide' que son "
 "problemáticos."
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referencias"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "¡Bienvenido  %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Completado"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Siguiente"
 
@@ -4028,10 +4442,6 @@ msgstr "Contraseña de Administrador"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr "Contraseña para la cuenta de Administrador que será vinculada a LDAP."
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Estado"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Estado Actual"
@@ -4058,46 +4468,46 @@ msgstr ""
 "Este mensaje muestra una configuración básica de la conectividad de LDAP con"
 " FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "¡La vinculación anónima al servidor %s ha fallado!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Falló la vinculación con el usuario '%s'"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
-msgstr ""
+msgstr "Reintento"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "¡La vinculación anónima al servidor %s ha funcionado!"
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
-msgstr ""
+msgstr "Refresco"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "¡Por favor especifique su usuario y contraseña!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "¡Ha funcionado la vinculación del usuario '%s' al servidor '%s'!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "Verificación de extensiones y módulos PHP "
 
@@ -4113,31 +4523,31 @@ msgstr "Revisión de la instalación"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Revisión básica de Extensiones PHP y compatibilidad"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Revisando la versión PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP debe tener una versión %s o superior."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Por favor actualice a una versión soportada."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory requiere este módulo para comunicarse con su servidor LDAP."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory requiere este módulo para una inferfaz internacionalizada."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4145,79 +4555,57 @@ msgstr ""
 "FusionDirectory requiere este módulo para comunicarse con diferentes tipos "
 "de servidores y protocolos."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory necesita éste módulo para la integración con Samba"
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory requiere el módulo 'mhash' o bien 'sha1' para usar "
-"encripción por SSHA."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory requiere este módulo para comunicarse con un servidor IMAP."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr "FusionDirectory requiere este módulo para manejar strings unicoide."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory requiere esta extensión para manejar imágenes."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "módulo de compresión"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requiere esta extensión para manejar snapshots."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP utiliza este valor para que el colector de basura borre las sesiones "
 "obsoletas."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4225,7 +4613,7 @@ msgstr ""
 "Configurando este valor a 'un día' prevendrá perder sesiones y cookies antes"
 " de que realmente expiren."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4233,12 +4621,12 @@ msgstr ""
 "Buscar por  'session.gc_maxlifetime' en su archivo php.ini y configurarlo a "
 "86400 o superior."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Apagado"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4246,12 +4634,12 @@ msgstr ""
 "Para utilizar FusionDirectory sin problemas la opción session.auto_start  en"
 " su archivo php.ini debe estar configurada en 'Off'."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Buscar  'session.auto_start'  en su archivo php.ini y configurarlo en 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4260,14 +4648,14 @@ msgstr ""
 "que esto ¡puede causar errores que no son reproducibles! aumente la memoria "
 "para instalaciones grandes."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Buscar 'memory_limit' en su archivo php.ini y configurarlo con '128MB' o "
 "superior."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4275,16 +4663,16 @@ msgstr ""
 "Esta opción afecta el manejo de la salida PHP. Deshabilitar esta opción con "
 "'off' mejorará el rendimiento."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Busca 'omplicit_flush' en su archivo php.ini y lo establece como 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "El tiempo de ejecución debería ser al menos de 30 segundos."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4292,7 +4680,7 @@ msgstr ""
 "Busca 'max_execution_time' en su archivo php.ini y lo establece como '30' o "
 "superior."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4300,27 +4688,27 @@ msgstr ""
 "Incrementa la seguridad del servidor estableciendo 'expose_php' como 'Off'. "
 "PHP no enviará información de su  servidor en este caso."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Busca 'expose_php' en su archivo php.ini y lo establece como 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrar"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Revisión de LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Se va a analizar la compatibilidad entre LDAP y FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr "Otorgar todos los permisos en usuarios que pertenezcan a dicha rama."
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4328,84 +4716,86 @@ msgstr ""
 "Permitir a los usuarios editar su propia información (Pestaña de Inicio y "
 "posix, usar únicamente en base)"
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Permitir a los usuarios editar su propia contraseña (Solo en las pestañas "
 "POSIX e Inicio)"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Revisar las clases del objeto 'root'"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Revisar los permisos para la base de datos LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
-msgstr ""
+msgstr "Comprobando usuarios invisibles"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
-msgstr ""
+msgstr "Comprobando súper administrador"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
-msgstr ""
+msgstr "Comprobando cuentas fuera del árbol de usuarios"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
-msgstr ""
+msgstr "Comprobando grupos fuera del árbol de grupos"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Revisar si existen Divisiones ocultas"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Comprobando números GID duplicados"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
-msgstr ""
+msgstr "La consulta LDAP ha fallado"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Falló"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "¡No se encuentra el objeto clase '%s' de FusionDirectory!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Por favor verifique su instalación."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4414,127 +4804,174 @@ msgstr ""
 "No es posible utilizar el tipo de objeto estructurado de su objeto 'root'. "
 "Por favor intente agregar el objeto clase '%s' manualmente."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 "El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
 "LDAP."
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 "El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
 "ldap."
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"Se encontraron %s usuario(s) que no estarán visibles en FusionDirectory o "
-"que están incompletos."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr "Migración de Usuario"
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Error de migración"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
-msgstr "No se puede migrar la entrada \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
-msgstr ""
+msgstr "Roles"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "No hay una cuenta de administrador de FusionDirectory en su LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr "Dar permisos en todos los objetos."
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr "Los roles ACL por defecto no han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr "No se encuentran algunos de los roles ACL por defecto"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr "Los roles ACL por defecto han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
-msgstr "No es posible agregar el rol ACL \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
-msgstr "Se encontraron %s usuario(s) fuera del árbol configurado \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Mover usuarios dentro del árbol configurado"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr "¡No se pueden mover entradas en la División seleccionada!"
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
-msgstr "La entrada será movida desde "
-
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "a"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Las siguientes referencias serán actualizadas"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Se encontraron %s grupos fuera del árbol configurado '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr "Mover grupos dentro del árbol configurado"
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Se encontraron %s Division(es) que no serán visibles en FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
-msgstr "Migración de Divisiones."
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr "Migración de Divisiones."
+
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4549,7 +4986,7 @@ msgstr "Finalizar - Crear el archivo de configuración"
 msgid "Write configuration file"
 msgstr "Crear el archivo de configuración"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4557,22 +4994,19 @@ msgstr ""
 "Su archivo de configuración no debería tener permisos de lectura para todos "
 "los usuarios. ¡Por favor actualice los permisos!"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 "No se puede acceder al archivo de configuración porque no existe o no tiene "
 "permisos de lectura sobre él."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Después de descargar y colocar el archivo en %s, por favor verifique que el "
-"usuario con el cual está ejecutándose el servidor web tiene acceso a %s. "
-"Otros usuarios no deberían tener acceso."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4592,125 +5026,28 @@ msgstr ""
 " 'automático'  se utilizará el lenguaje del navegador. Ésta opción puede ser"
 " cambiada por el usuario."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr "¡No se puede acceder al directorio '%s' especificado para compilar!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-"La configuración %s/%s de FusionDirectory no tiene permisos de lectura. "
-"Abortado."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Dirección de correo"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr "No se encontró la cuenta de usuario: \"%s\""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr "Se encontraron varias cuentas identificadas como: \"%s\""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Contacte a su administrador, hubo un problema con el servidor de correo."
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "Este token es inválido"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-"Hay un problema con el servidor de correo, la confirmación de email no será "
-"enviada."
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Configuración PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Error fatal: Registrar 'globales' está habilitado. FusionDirectory rechazará"
-" el inicio de sesión hasta que esto sea solucionado por un administrador."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Cambio de contraseña"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 "Su contraseña está a punto de expirar, ¡por favor cambie su contraseña!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "¡El sistema se está quedando sin memoria!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Checks  ACL de usuario deshabiltiados"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Plugin"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-"Error Fatal: ¡No es posible encontrar ninguna definición de plugin para el "
-"plugin '%s' ('%s' no es un archivo)!"
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Error de configuración"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4718,108 +5055,26 @@ msgstr ""
 "Error Fatal: ¡Algunas de las variables POST no se han transferido por PHP - "
 "por favor informe a su administrador!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Acceder"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-"El archivo de configuración de FusionDirectory  %s/%s no tiene privilegios "
-"de lectura. Por favor ejecute \"fusiondirectory-setup --check-config\" para "
-"corregir éste problema."
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Error en Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "¡Su sesión de FusionDirectory ha expirado!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr "¡Parámetro \"%s\" de plugin inválido!"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr "¡No se encuentra la sesión!"
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "¡Por favor especifique un nombre de usuario válido!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "¡Por favor especifique su contraseña!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Por favor verifique su combinación de usuario/contraseña"
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Cuenta bloqueada. ¡Por favor contacte a su administrador!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Su navegador tiene las cookies deshabilitadas. ¡Por favor habilítelas y "
-"recarge la página antes de iniciar sesión!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtro"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4838,25 +5093,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr "Presione 'Borrar' para continuar o 'Cancelar' para abortar."
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Mostrar plantillas"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Mostrar usuarios funcionales"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Mostrar usuarios POSIX"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Mostrar usuarios de correo"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Mostrar/Ocultar configuraciones avanzadas"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Mostrar usuarios de Samba"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Completar objeto"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4866,8 +5109,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
-msgstr "No hay una cuenta expirada"
+msgid "There are no expired accounts"
+msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
@@ -4920,8 +5163,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4934,15 +5177,15 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
-msgstr "Ninguno de ellos está bloqueado"
+msgid "None of them are locked"
+msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4993,10 +5236,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Agregar  'object classes' requeridos en la base de LDAP"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Actual"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Luego de la migración"
 
@@ -5018,13 +5263,10 @@ msgstr "FusionDirectory intentará ejecutarse sin arreglar esto."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Parece que es la primera vez que usted inicia FusionDirectory  - aún no se "
-"ha encontrado una configuración. Éste fácil asistente intentará ayudarle "
-"mientras realiza la configuración inicial."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -5067,16 +5309,13 @@ msgstr "Para continuar:"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
-"Por motivos de seguridad usted necesita autenticarse para esta instalación "
-"creando el archivo '%1' con el ID de la sesión actual en el servidor local. "
-"Esto se puede hacer ejecutando el siguiente comando:"
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Cuando haya terminado haga clic en 'Siguiente'."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -5149,7 +5388,12 @@ msgstr ""
 "Si usted desea saber qué se hará cuando se migren las entradas "
 "seleccionadas, utilice el botón de \"Mostrar Cambios\" para ver el LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Seleccionar todo"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Mostrar cambios"
 
@@ -5264,14 +5508,28 @@ msgid "I forgot my password"
 msgstr "Olvidé la contraseña"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Su navegador tiene las cookies deshabilitadas. ¡Por favor habilítelas y "
+"recarge la página antes de iniciar sesión!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Clic aquí para ingresar"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr "¡Advertencia!: Usted está a punto de borrar los siguientes objetos"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5285,6 +5543,59 @@ msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 "Si está seguro presione 'Eliminar' para continuar o 'Cancelar' para abortar."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Abajo"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Acciones"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtro"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Buscar en subárboles"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Aplicar filtro"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr "Crear un nuevo objeto utilizando plantillas"
@@ -5294,28 +5605,26 @@ msgstr "Crear un nuevo objeto utilizando plantillas"
 msgid "Continue"
 msgstr "Continuar"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Conflicto de bloqueo detectado"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Solo lectura"
 
@@ -5332,6 +5641,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Enviar"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Inicio"
@@ -5350,30 +5664,40 @@ msgid "Session expires in %d!"
 msgstr "¡La sesión va a expirar en %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
 " long timeouts would be to limit your search to smaller values and use "
 "filters to get the entries you are looking for."
 msgstr ""
-
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Por favor elija la forma de interactuar con esta sesión"
+"La opción 'tamaño limite' permite unas operaciones con LDAP mas rápidas y "
+"protege al servidor LDAP de tener una mayor carga. La manera mas fácil de "
+"manipular grandes bases de datos sin grandes perdidas de tiempo es limitar "
+"la búsqueda a valores pequeños y usar filtros para encontrar las entradas "
+"que este buscando."
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
-"ignore este error y muestre todas las entradas que regresa el servidor LDAP"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"ignore este error y muestre todas las entradas que cumplen con el tamaño "
-"límite definido y en cambio permitame utilizar filtros "
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Asignar"
diff --git a/locale/es_VE/fusiondirectory.po b/locale/es_VE/fusiondirectory.po
index 6a0b96dc7cf8eec2dfb0a41efec8566861a84969..e33c1ba8e781bc9f605fd90c0a15960aa540580b 100644
--- a/locale/es_VE/fusiondirectory.po
+++ b/locale/es_VE/fusiondirectory.po
@@ -4,148 +4,557 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2021
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Spanish (Venezuela) (https://www.transifex.com/fusiondirectory/teams/12202/es_VE/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Spanish (Venezuela) (https://app.transifex.com/fusiondirectory/teams/12202/es_VE/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: es_VE\n"
 "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Error"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Por favor solucione el problema y actualize la página."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tipo"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Etiqueta"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Fecha"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Descripción"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Recuperar"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Hubo un problema descomprimiendo la información del snapshot."
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objeto"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Snapshots"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Marca de tiempo"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Por favor seleccione las entradas que desee"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "%s plantilla"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Plantilla"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "A partir de plantilla"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Crear"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Exportar lista"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Editar"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Mover"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copiar"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Pegar"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Aplicar plantilla"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Eliminar"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Crear instantánea"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Recuperar instantanea"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "No tiene permisos para crear una instantanea para %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "No tiene permisos para recuperar una instantanea para %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Ir al departamento raíz"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Raíz"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Subir un departamento"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Arriba"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Ir a la División del usuario"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Inicio"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Recargar lista"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Configurar"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Error XML en fusiondirectory.conf: %s en la línea %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Error en la configuración"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Error LDAP"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 "No se puede conectar a LDAP: Por favor consulte con el administrador de "
 "sistemas."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Todas las categorías"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Mi cuenta"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Página"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr "No se puede exportar a PDF: no se ha instalado la librería FPDF."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "Creado por"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Archivo"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Linea"
 
@@ -169,269 +578,264 @@ msgstr "estático"
 msgid "method"
 msgstr "método"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Traza"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tipo"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argumentos"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "¡La generación de esta página ha provocado errores en el interprete PHP!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Enviar informe de errores al equipo de FusionDirectory"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Enviar informe de errores"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Modificar información"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Arriba"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Abajo"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "La Zona Horaria \"%s\" en su configuración no es válida."
+
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Seleccione todos"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Nombre de la plantilla"
 
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "Creado por"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Entrada fallida: %s"
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Ir al departamento raíz"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Raíz"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "¡Se ha indicado un objectType vacio o no válido!"
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Subir un departamento"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr ""
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Inicio"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Recargar lista"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Acciones"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Copiar"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Entrando"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Mover"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Pegar"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Mover esta entrada"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Copiar esta entrada"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Recuperar instantánea"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
+msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Exportar lista"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "¡Por favor introduzca un nombre de usuario válido!"
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Recuperar instantanea"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "¡Por favor introduzca una contraseña!"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Crear instantánea"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Cuenta bloqueada. ¡Por favor contacte con su administrador de sistemas!"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "¡Crear una nueva instantánea de este objeto!"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Error LDAP"
 
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr ""
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Dirección de correo"
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Plantilla"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Recuperación de clave"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
-msgstr ""
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "No se encontró la cuenta de usuario: \"%s\""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Nombre de la plantilla"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Se encontraron varias cuentas identificadas como: \"%s\""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "error interno"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Logging failed: %s"
-msgstr "Entrada fallida: %s"
+msgid "There are several accounts using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "¡Se ha indicado un objectType vacio o no válido!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "Esta prenda es invalida"
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
 msgstr ""
+"Usted debe completar saslRealm o saslExop en la pantalla de configuración "
+"para usar SASL"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Enviar"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Aplicar filtro"
-
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Buscar en subárboles"
-
-#: include/class_filter.inc:404
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "Searches in %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
+"La configuración de FusionDirectory %s/%s no se puede leer. Cancelado."
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "¡El límite máximo de %d entradas se ha sobrepasado!"
-
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
-"Introduzca un nuevo límite máximo a %s y se volvera a mostrar este mensaje "
-"si se supera el límite máximo"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Configurar"
 
-#: include/class_ldapSizeLimit.inc:136
+#: include/class_ldapSizeLimit.inc:135
 msgid "incomplete"
 msgstr "incompleto"
 
-#: include/functions.inc:97
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
+msgid ""
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
+msgstr ""
+
+#: include/functions.inc:55
 #, php-format
 msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 "Error fatal: no se han definido un emplazamiento para las clases - por favor"
 " ejecute '%s' para solucionar esto"
 
-#: include/functions.inc:116
+#: include/functions.inc:78
 #, php-format
 msgid ""
 "Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
@@ -439,579 +843,363 @@ msgstr ""
 "Error fatal: no se puede instanciar la clase '%s' - intente solucionarlo "
 "ejecutando '%s'"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Error fatal"
-
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr ""
-"FATAL: Ha habido un error conectando a LDAP. El servidor comunicó '%s'."
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
-msgstr ""
-
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Error de Autenticación"
-
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr ""
-"Ha ocurrido un problema al añadir un bloqueo. ¡Contacte con los "
-"desarrolladores!"
-
-#: include/functions.inc:594
+#: include/functions.inc:151
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
-"No puedo crear información de bloqueos en el árbol LDAP. ¡Por favor contacte"
-" con su Administrador!"
-
-#: include/functions.inc:594
-#, php-format
-msgid "LDAP server returned: %s"
-msgstr "El servidor LDAP devolvio: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Aviso"
 
 #: include/functions.inc:783
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
-msgstr ""
-"Se han encontrado varios bloqueos para un objeto que iba a ser bloqueado. "
-"Esto no debería ocurrir - limpiando referencias multiples."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Continuar de cualquier manera"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Editar de cualquier manera"
-
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Has decidido editar las siguientes entradas LDAP %s"
-
-#: include/functions.inc:1505
 #, php-format
 msgid "%sB"
-msgstr ""
+msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
-msgstr ""
+msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
-msgstr ""
+msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
-msgstr ""
+msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
-msgstr ""
+msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
-msgstr ""
+msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
-msgstr ""
+msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
-msgstr ""
+msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
-msgstr ""
+msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
+msgstr ""
+
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "¡No se puede escribir en el archivo de revisión!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Aviso LDAP"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "No puedo obtener información de esquemas del servidor. ¡No es posible "
 "comprobar los esquemas!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Clase(s) disponibles"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
+"Usted ha instalado el plugin 'Mixed Groups', pero la configuración de su "
+"esquema no lo soporta."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
+"Su esquema tiene configurado soporte para 'Mixed Groups', pero este plugin "
+"no está presente."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"No se puede encontrar el archivo '%s' - por favor ejecute '%s' para "
-"solucionarlo"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Todos los objetos en esta categoría"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Inicio"
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Permisos"
-
-#: include/class_CopyPasteHandler.inc:266
-msgid "Cancel all"
-msgstr "Cancelar todo"
-
-#: include/class_CopyPasteHandler.inc:332
-msgid "Cannot paste"
-msgstr "No puedo pegar"
-
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Seleccione para mostrar objetos de tipo '%s'."
-
-#: include/class_msgPool.inc:45
+#: include/class_pluglist.inc:580
 #, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Seleccione para mostrar objetos conteniendo '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Seleccione para mostrar objetos que tengan '%s' activado"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Seleccione para buscar dentro de los subárboles"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "¡El objeto será eliminado!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "¡El objeto '%s' será eliminado!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Este objeto será eliminado: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "El objeto '%s' será eliminado: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Este objeto será eliminado"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "El objeto '%s' será eliminado:"
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Estos objetos serán eliminados: %s"
+#: include/class_CopyPasteHandler.inc:267
+msgid "Cancel all"
+msgstr "Cancelar todo"
 
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Los objetos '%s' serán eliminados: %s"
+#: include/class_CopyPasteHandler.inc:333
+msgid "Cannot paste"
+msgstr "No puedo pegar"
 
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "¡No tiene permisos para eliminar este objeto!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "No tiene permisos para eliminar este objeto:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "No tiene permisos para eliminar estos objetos:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "¡No tiene permisos para crear este objeto!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "No tiene permisos para crear este objeto:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "No tiene permisos para crear estos objetos:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "¡No tiene permisos para modificar este objeto!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "¡No tiene permisos para ver este objeto!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "No tiene permisos para ver el objeto:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "No tiene permisos para ver estos objetos:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "¡No tiene permisos para mover este objeto!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "No tiene permisos para mover el objeto:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "No tiene permisos para mover estos objetos:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Información de conexión"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "¡No se puede conectar a la base de datos %s!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "¡No se puede seleccionar la base de datos %s!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "¡No se ha definido el servidor %s!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "¡No se ha podido ejecutar la consulta %s!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "¡El campo '%s' tiene una palabra reservada!"
-
-#: include/class_msgPool.inc:297
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
-"¡El comando especificado como método %s para la extensión '%s' no existe!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "¡El comando '%s' no es válido!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "¡'%s' comando para la extensión %s no es válido!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "¡'%s' comando (%s) no es válido!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "¡'%s' comando (%s) para la extensión %s no es válido!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "¡No se puede ejecutar el comando '%s'!"
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "¡No se puede ejecutar el comando '%s' para la extensión %s!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "¡No se puede ejecutar el comando '%s' (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "¡No se puede ejecutar el comando '%s' (%s) para la extensión %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "¡El valor especificado como '%s' es demasiado grande!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "¡'%s' debe ser menor que %s!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "¡El valor especificado como '%s' es demasiado pequeño!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "¡'%s' debe ser %d o superior!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "¡'%s' depende de '%s' - Por favor introduzca ambos valores!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "¡Ya existe una entrada con el atributo '%s' en el sistema!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "¡El campo obligatorio '%s' está vacio!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' no está permitido:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "¡'%s' no están permitidos!"
+msgid "Example: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "¡Extensión PHP %s no encontrada!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Aplicar"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Guardar"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Añadir"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Añadir %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Eliminar"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Eliminar %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Editar..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Editar %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Atrás"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "¡Esta cuenta tiene extensiones %s no validas!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1020,7 +1208,7 @@ msgstr ""
 "Esta cuenta tiene características %s activadas. Puede desactivarla pulsando "
 "aquí"
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1029,7 +1217,7 @@ msgstr ""
 "Esta cuenta tiene las características %s activadas. ¡Para desactivarlas, "
 "necesita eliminar las caracteristicas %s primero!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1038,7 +1226,7 @@ msgstr ""
 "Esta cuenta tiene características %s desactivadas. Puede activarla pulsando "
 "aquí"
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1047,1262 +1235,1157 @@ msgstr ""
 "Esta cuenta tiene las características %s desactivadas. ¡Para activarlas, "
 "necesita añadir las caracteristicas %s primero!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Añadir caracteristicas %s"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Eliminar las caracteristicas %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Enero"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Febrero"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Marzo"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Abril"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Mayo"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Junio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Julio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Agosto"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Septiembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Octubre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Noviembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Diciembre"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Domingo"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Lunes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Martes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Miércoles"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Jueves"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Viernes"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Sábado"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "lectura"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "adición"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "modificación"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "eliminación"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "busqueda"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "autenticación"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "¡LDAP %s ha fallado!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "¡La consulta LDAP ha fallado!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objeto"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "¡Ha fallado el subir archivo!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Ha fallado el subir archivo: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "¡Ha fallado la comunciación con el servicio de infraestructura!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Ha fallado la comunciación con el servicio de infraestructura: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "'%s' esta todavía en uso por el objeto: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "'%s' esta todavía en uso."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "'%s' esta todavía en uso por los objetos: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "¡El archivo %s no existe!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "¡No se puede abrir el archivo '%s'!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "¡No se puede grabar el archivo '%s'!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"El valor para '%s' no esta configurado o no es válido.¡Por favor compruebe "
-"el archivo de configuración!"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "¡No se puede eliminar el fichero '%s'!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "¡No se puede crear la carpeta '%s'!"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "¡No se puede eliminar la carpeta '%s'!"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Comprobando soporte %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Instala y activa el módulo de PHP %s."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Instale y active el module Pear %s. "
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr "¡La base introducida no es válida, se ha dejado el valor anterior!"
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
-"No se puede inicializar la clase '%s'! Posiblemente hay un complemento "
-"faltante en su instalación de FusionDirectory?"
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
-msgstr "¡La base introducida no es válida, se ha dejado el valor anterior!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Por favor seleccione las entradas que desee"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nombre"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Descripción"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Iniciar servicio"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Parar servicio"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Reiniciar servicio"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
 msgid "Object base"
-msgstr ""
+msgstr "Objeto base"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Tipo desconocido: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "¡dn: %s Inexsitente!"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Ninguno"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Horas"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Minutos"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Fecha"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Tiempo"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "No puedo leer el archivo: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "el archivo está vacío"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "archivo no encontrado"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "archivo no accesible"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
+msgstr "%s (%d bytes)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Enviar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Descargar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
+msgid "An integer between %d and %d"
+msgstr "Un número entero entre %d y %d"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Eliminar"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr "Un número entero mayor que %d"
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Editar"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr "Un número entero menor a %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
-msgstr ""
+msgstr "Un número flotante entre %f y %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
-msgstr ""
+msgstr "Un número flotante mayor que %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
-msgstr ""
+msgstr "Un número flotante menor que %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
-msgstr ""
+msgstr "%s (necesario)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr ""
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Ordenar"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Ninguno"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Ordenar de modo inverso"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
-msgstr ""
+msgstr "Configuraciones de Plantilla"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
-msgstr ""
+msgstr "Este es el nombre de la plantilla"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
-msgstr ""
+msgstr "Solo la pestaña principal puede calcular dn"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
-msgstr ""
+msgstr "No es posible calcular dn: no hay pestaña de clase padre para \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
-msgstr ""
+msgstr "La entrada %s no existe"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
-msgstr ""
+msgstr "Pestaña \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
-msgstr ""
+msgstr "KB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
-msgstr ""
+msgstr "MB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
-msgstr ""
+msgstr "GB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
-msgstr ""
+msgstr "TB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "segundos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "minutos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "horas"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "días"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Gestión de las Listas de control de acceso"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr ""
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Roles ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Grupo de usuarios"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Desconocido"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "¡Entrada desconocida '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr ""
+msgid "All users"
+msgstr "Todos los usuarios"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Error del filtro"
-
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "¡El filtro está incompleto!"
-
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Error de permisos"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"¡Login (uid) no es un valor único en el árbol LDAP!. Por favor contacte a su"
+" administrador."
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "No tiene permisos para crear una instantanea para %s."
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Aviso"
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "No tiene permisos para recuperar una instantanea para %s."
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Crear"
+#: include/errors/class_SimplePluginHookError.inc:73
+#, php-format
+msgid "Exit code: %d"
+msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Gestión de las Listas de control de acceso"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Roles ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "¡Entrada desconocida '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
+"Al parecer tu contraseña expiró. Por favor acceda a<a "
+"href=\"recovery.php\">Recuperar contraseña</a> y cámbiela."
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Todos los usuarios"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Aviso e rendimiento"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr "El rendimiento LDAP es bajo: ¡la última consulta tardó sobre %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr ""
+
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "mientras operaba en '%s' usando el servidor LDAP '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "mientras operaba en el servidor LDAP '%s'"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
-msgstr ""
+msgstr "proc_open falló al ejecutar ldapsearch"
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Marca de tiempo"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
+"Ha ocurrido un problema al añadir un bloqueo. ¡Contacte con los "
+"desarrolladores!"
 
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"No puedo crear información de bloqueos en el árbol LDAP. ¡Por favor contacte"
+" con su Administrador!"
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Recuperar"
-
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "El servidor LDAP devolvio: %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Se han encontrado varios bloqueos para un objeto que iba a ser bloqueado. "
+"Esto no debería ocurrir - limpiando referencias multiples."
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Lista de Departamentos"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Departamento"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Editar de cualquier manera"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Dominio"
 
 #: plugins/admin/departments/class_domain.inc:51
 msgid "domain"
-msgstr ""
+msgstr "dominio"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organización"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
-msgstr ""
+msgstr "organización"
+
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Departamento"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Departamentos"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "departamento"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Propiedades"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
-msgstr ""
+msgstr "Nombre de  %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
-msgstr ""
+msgstr "Un nombre para este %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
-msgstr ""
+msgstr "Una descripción de este %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Categoría"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
-msgstr ""
+msgstr "Categoría de este %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Gestor"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
-msgstr ""
+msgstr "Mánager de este %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Localización"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Provincia"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "País"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Dirección"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
-msgstr ""
+msgstr "Dirección postal de este  %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Teléfono"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Número de teléfono"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
-msgstr ""
+msgstr "Teléfono alternativo"
+
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nombre"
 
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Componentes del dominio"
 
 #: plugins/admin/departments/class_dcObject.inc:51
 msgid "domain component"
-msgstr ""
+msgstr "componente de dominio"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
-msgstr ""
+msgstr "país"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Localidad"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
-msgstr ""
+msgstr "localidad"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
-msgstr ""
+msgstr "Administrar categorías"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Usuarios y grupos"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Tareas"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Reportes"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Rol"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Editar características posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Estado"
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Grupos y Roles"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Administrar grupos y roles"
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Mostrar grupos primarios"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Mostrar grupos de correo"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Mostrar grupos de samba"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Acción disparada"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Acción programada"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Grupo de objetos"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
-msgstr ""
+msgstr "Datos del 'objeto grupo'"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
-msgstr ""
+msgstr "Nombre de este grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
-msgstr ""
+msgstr "Una descripción corta de este grupo."
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Propietario"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Objetos miembros"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
-msgstr ""
+msgstr "Objetos miembro de este grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Sistema de seguridad"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Modo seguro"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
-msgstr ""
+msgstr "Tipo de autorización para ésos equipos"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "desactivado"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "Acceso sin restricciones"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "Permitir el acceso a estos equipos"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
+"Habilitar solamente a éste grupo para conectarse a ésta lista de equipos."
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
+"Alojar estaciones de trabajo y terminales en el mismo grupo no está "
+"permitido."
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Lista de grupos"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Acción disparada"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Miembros"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Acción programada"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Rol"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
-msgstr ""
+msgstr "Información del Rol"
 
 #: plugins/admin/groups/class_roleGeneric.inc:60
 msgid "Organizational role"
-msgstr ""
+msgstr "Rol Profesional"
 
 #: plugins/admin/groups/class_roleGeneric.inc:82
 #: ihtml/themes/breezy/msg_dialog.tpl.c:8
@@ -2311,11 +2394,11 @@ msgstr "Información"
 
 #: plugins/admin/groups/class_roleGeneric.inc:91
 msgid "Description of the role"
-msgstr ""
+msgstr "Descripción del Rol"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Número de teléfono"
 
@@ -2329,213 +2412,185 @@ msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:108
 msgid "Add users for the role"
+msgstr "Agregar usuarios al rol"
+
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Gestionar ACLs"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Asignación de ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Gestionar permisos ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Permisos"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Gestión de ACL para esta base"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Permisos en el objeto o subárbol %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
-msgstr ""
+msgstr "Panel de gestión de roles ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Modo"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
-msgstr ""
+msgstr "¿Se aplicará en todo el subárbol o solo en la base?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
-msgstr ""
+msgstr "Subárbol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
-msgstr ""
+msgstr "Base únicamente"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
-msgstr ""
+msgstr "Rol a aplicar"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
-msgstr ""
+msgstr "Para todos los usuarios"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Miembros"
+msgstr "Aplicar este ACL a todos los usuarios de LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
-msgstr ""
+msgstr "Usuarios o grupos a los cuales asignar este rol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Asignación de ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
-msgstr ""
+msgstr "Gestionar ACLs"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Lista de usuarios"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Apellido"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Nombre de pila"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Usuario"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Bloquear usuarios"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Desbloquear usuarios"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Aplicar plantilla"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Nuevo usuario desde plantilla"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Editar usuario"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Eliminar usuario"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Usuarios"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Gestión de usuarios"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Bloqueo de cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
+"El método de contraseña \"%s\" no soporta bloqueos. ¡La cuenta \"%s\" no se "
+"ha bloqueado!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
-"Locking failed using password method \"%s\". Account \"%s\" has not been "
-"locked!"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Desbloquear cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Bloquear cuenta"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
+"Locking failed using password method \"%s\". Account \"%s\" has not been "
+"locked!"
 msgstr ""
 
 #: plugins/admin/aclrole/class_aclRole.inc:38
@@ -2543,283 +2598,385 @@ msgstr ""
 msgid "Contains settings for these objects: %s"
 msgstr "Tiene configuraciones de los siguientes objetos: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Roles de control de acceso"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
-msgstr ""
+msgstr "Rol ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
-msgstr ""
+msgstr "Un nombre para este rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
-msgstr ""
+msgstr "Una descripción corta para este rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
-msgstr ""
+msgstr "ACLs"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
-msgstr ""
+msgstr "ACLs que son parte de este grupo"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "No hay ACL configuradas en esta categoría"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACLs que tienen estos objetos: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Editar la categoría ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Eliminar la categoría ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Lista de categorías ACL disponibles"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Todos los objetos en el subárbol actual"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "leer"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Administración de Roles \"ACL\""
+
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "escribir"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Mostrar/ocultar caracteristicas avanzadas"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Crear objetos"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Mover objetos"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Eliminar Objetos"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Garantizar permiso al propietario"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Objeto completo"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
-msgid "Plugins configuration"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
-msgid "FusionDirectory plugins configuration"
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Activar instantaneas"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Permite que usted salve ciertos estados o entradas para luego restaurarlas."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Base de instantaneas"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
+msgid "Plugins configuration"
+msgstr "Configuración de 'plugins'"
+
+#: plugins/config/class_mainPluginsConfig.inc:27
+msgid "FusionDirectory plugins configuration"
+msgstr "Configuración de plugins de FusionDirectory"
+
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Grupos de objetos"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
-msgstr ""
+msgstr "Grupos RDN"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
-msgstr ""
+msgstr "Rama de LDAP donde ser almacenarán los Grupos"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
-msgstr ""
+msgstr "Configuración del Panel"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
-msgstr ""
+msgstr "FusionDirectory panel de configuración de plugins."
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
-msgstr ""
+msgstr "Panel nombre del esquema"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
-msgstr ""
+msgstr "Cantidad de dígitos"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
-msgstr ""
+msgstr "Cantidad de dígitos a usar después del prefijo."
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
-msgstr ""
+msgstr "Prefijos"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
-msgstr ""
+msgstr "Prefijos que se usarán para las 'id' de computadoras."
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
-msgstr ""
+msgstr "Panel de usuarios expirados"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
-msgstr ""
+msgstr "Cantidad de días"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
+"Número de días antes previos antes de expirar una cuenta para mostrarlo en "
+"el panel de las próximas cuentas por expirar."
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
-msgstr ""
+msgstr "Plugins"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:29
 msgid "Configuration for plugins"
+msgstr "Configuración de plugins"
+
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
 #: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Recuperación de clave"
-
-#: plugins/config/class_recoveryConfig.inc:29
 msgid "Settings for the password recovery feature"
-msgstr ""
+msgstr "Configuraciones para la característica de recuperación de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Opciones de recuperación de clave"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
-msgstr ""
+msgstr "Habilitar recuperación de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
-msgstr ""
+msgstr "Correo del remitente"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
-msgstr ""
+msgstr "Dirección desde donde se enviarán los correos."
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
-msgstr ""
+msgstr "Vigencia del 'Link' (minutos)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
-msgstr ""
+msgstr "Cantidad de tiempo antes que el link para recuperar expire."
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
-msgstr ""
+msgstr "'Salt' para 'tokens''"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
+"Solo una medida de seguridad, usted puede incluir cualquier cosa aquí, "
+"incluso caracteres aleatorios."
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
-msgstr ""
+msgstr "Habilitar el uso de correos alternativos"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Atributo de inicio de sesión"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
-msgstr ""
+msgstr "Correo principal"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Asunto"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
-msgstr ""
+msgstr "Asunto del correo principal"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Enlace de recuperación de clave"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
-msgstr ""
+msgstr "Mensaje (primer %s es Cuenta de usuario,  el segundo es 'Enlace')"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
+"Mensaje del primer correo enviado cuando el usuario solicita una nueva "
+"contraseña. Utilice %s para la cuenta de usuario y el enlace de recuperación"
+" de contraseña."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,31 +2988,33 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
-msgstr ""
+msgstr "Email secundario"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
-msgstr ""
+msgstr "Asunto del email secundario"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Recuperación de clave realizada con exito"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
-msgstr ""
+msgstr "Mensaje (%s es cuenta de usuario)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
+"Mensaje del segundo correo enviado al confirmar el cambio de contraseña. "
+"Utilice %s para la cuenta de usuario."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2868,699 +3027,817 @@ msgstr ""
 "Su clave ha sido cambiada.\n"
 "Su nombre de usuario aun es %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Cuándo llamar este comando"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "La línea de comandos que será usada"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configuración"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
-msgstr ""
+msgstr "Configuración de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Temas y apariencia"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Idioma"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
+"Idioma de la aplicación. Si utiliza 'automático' o no disponible, se "
+"preguntará al navegador cuál utilizar. Ésta opción puede ser cambiada por el"
+" usuario."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Tema"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
-msgstr ""
+msgstr "Plantilla a utilizar"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Zona de uso horario"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
-msgstr ""
+msgstr "Zona Horaria a utilizar"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
-msgstr ""
+msgstr "Configuración del 'Núcleo'"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
-msgstr ""
+msgstr "Tamaño límite LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
-msgstr ""
+msgstr "Determine cuántas entradas se traerán de LDAP por defecto."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
-msgstr ""
+msgstr "Editar bloqueo"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
+"Mientras tanto, revisar si una entrada que está siendo editada ha sido "
+"modificada desde fuera de FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
-msgstr ""
+msgstr "Habilitar escritura de logs"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
-msgstr ""
+msgstr "Escritura de eventos en logs de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
-msgstr ""
+msgstr "Validación del esquema 'LDAP'"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
+"Habilita la validación del esquema 'LDAP' durante el inicio de sesión."
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Activar instantaneas"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Base de instantaneas"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Parámetros de Contraseña"
 
-#: plugins/config/class_configInLdap.inc:156
-msgid "Password default hash"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
-msgid "Default hash to be used"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:122
+msgid "Password default hash"
+msgstr "'hash' de contraseña por defecto."
+
+#: plugins/config/class_configInLdap.inc:122
+msgid "Default hash to be used"
+msgstr "'hash' por defecto"
+
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
-msgstr ""
+msgstr "Forzar 'hash' por defecto"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
-msgstr ""
+msgstr "Forzar el uso del 'hash' de Contraseña por defecto."
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Longitud mínima de la contraseña"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
-msgstr ""
+msgstr "Longitud máxima de contraseña para usuarios"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
-msgstr ""
+msgstr "Diferencia mínima entre contraseñas"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
+"Cantidad mínima de caracteres distintos a partir de la última contraseña"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Usar caducidad de cuenta"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
+"Habilita pruebas del atributo 'shadow'  durante el proceso de inicio de "
+"sesión en FusionDirectory y fuerza la renovación de contraseña o bloqueo de "
+"cuenta."
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
-msgstr ""
+msgstr "SASL Realm"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
-msgstr ""
+msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
-msgstr ""
+msgstr "Valor que será almacenado en el atributo 'userPassword'"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Inicio y sesión"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
+"Que atributo LDAP debería usarse como 'cuenta de usuario' en el inicio de "
+"sesión."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Forzar conexiones seguras"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
+"Habilita revisiones de seguridad con PHP para forzar el acceso encriptado "
+"(https) en la interfaz web."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Avisar si la sesión no esta codificada"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
+"mostrará un mensaje de advertencia al usuario cuando se utilice http en vez "
+"de https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Duración de sesiones."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
-msgstr ""
+msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
-msgstr ""
+msgstr "Ruta de la llave "
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
+"Ruta donde se encuentra la llave de FusionDirectory. Por el momento, sin "
+"uso."
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
-msgstr ""
+msgstr "Ruta del certificado"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
-msgstr ""
+msgstr "Ruta donde se encuentra el certificado. Por el momento, sin uso."
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
-msgstr ""
+msgstr "Path del certificado CA"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
+"Ruta del certificado CA. Se utiliza para validar el equipo con el 'Servidor "
+"Argonaut'."
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Nombre de equipo"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Puerto"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Almacén de grupos y usuarios"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Atributo 'dn' de los usuarios"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
-msgstr ""
+msgstr "Patrón para CN"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
+msgstr "Este es el patrón que se usará para crear el campo de 'nombre común'"
+
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
-msgstr ""
+msgstr "Politica de nombres"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
-msgstr ""
+msgstr "Habilita la validación estricta de nombres para usuarios o grupos."
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
-msgstr ""
+msgstr "Usuarios RDN"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
-msgstr ""
+msgstr "La rama donde los usuarios están guardados."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
-msgstr ""
+msgstr "ACL Rol RDN"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
-msgstr ""
+msgstr "La rama donde los rol ACL están almacenados."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Depurando"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Tiempo de consulta máxima de LDAP"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
+"Detenga las acciones sobre LDAP si no hay respuesta después del tiempo "
+"especificado en segundos."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Registrar estadísticas LDAP"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
+"Registrar estadísticas de tiempo de LDAP en 'syslog'. Esto puede ser útil "
+"para encontrar problemas o filtros de búsqueda erróneos."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Nivel de depuración"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
+msgstr "Mostrar determinados datos en cada página de carga."
+
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Varios"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Mostrar resumen en listados"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
+"Determina cuando una barra de estado será mostrada al final de listas, en un"
+" resumen corto y cantidad de elementos en la lista."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
-msgstr ""
+msgstr "Mostrar pestaña de ACL en todos los objetos."
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
+"Para el uso de permisos ACLs muy específicos usted podría requerir dar "
+"acceso en un objeto particular."
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Métodos"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatico"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Grupo %s"
+
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Rol %s"
+
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Versión"
+
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Panel"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Estadísticas"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
 msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatico"
-
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
-msgstr ""
+msgstr "Estadísticas de los usuarios"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
-msgstr ""
+msgstr "Estadísticas de usuario"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
-msgstr ""
+msgstr "Estadísticas de los grupos"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
-msgstr ""
+msgstr "Cuentas expiradas"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Inicio"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Correo Electrónico"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Importar"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3568,53 +3845,202 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Programación"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
-msgstr ""
+msgstr "Editar grupos y roles del usuario"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
+msgstr "Pertenencia a Roles"
+
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Metodo de contraseña"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
-msgstr ""
+msgstr "Tipo de 'hash' para la contraseña"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3622,274 +4048,328 @@ msgstr ""
 msgid "Password"
 msgstr "Contraseña"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
-msgstr ""
+msgstr "Contraseña (deje vacío si usted no desea cambiarla)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
-msgstr ""
+msgstr "Su contraseña de nuevo"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
+msgstr "Igual a la contraseña anterior para evitar errores"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Usuario"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Información de Cuentas de Usuario"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Cuenta de Usuario"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Información personal"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Apellido"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
-msgstr ""
+msgstr "Apellido de este usuario"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Nombre"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
+msgstr "Primer nombre de este usuario"
+
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
-msgid "Short description of the user"
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:108
+msgid "Short description of the user"
+msgstr "Descripción corta para éste usuario"
+
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
-msgstr ""
+msgstr "Imagen"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
-msgstr ""
+msgstr "El avatar para este usuario"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
-msgstr ""
+msgstr "Información de contacto Profesional"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
-msgstr ""
+msgstr "Dirección postal de trabajo"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Número sala"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Número de habitación"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
-msgstr ""
+msgstr "Número telefónico de trabajo"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Móvil"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
-msgstr ""
+msgstr "Celular de trabajo"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Buscapersonas"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
-msgstr ""
+msgstr "Bíper laboral"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
-msgstr ""
+msgstr "Nro. Fax de trabajo"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Página Web"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
-msgstr ""
+msgstr "Página web personal"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
-msgstr ""
+msgstr "Información de cuenta"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
-msgstr ""
+msgstr "Cuenta de este usuario"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Idioma preferido"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
-msgstr ""
+msgstr "Contraseña del usuario"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
-msgstr ""
+msgstr "Información de contacto 'Personal'"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Nombre a Mostrar"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
-msgstr ""
+msgstr "Dirección personal"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Dirección Postal personal"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Teléfono privado"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Número de teléfono personal"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Información corporativa"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Título"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
+"Tratamiento 'Dr, Ing, Sr, Sra ...' en un contexto profesional. Cada "
+"tratamiento es un valor de sus múltiples atributos."
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Número departamento"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Número del departamento"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Número empleado"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Número de empleado"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Categoría profesional"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Código Postal"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
-msgstr ""
+msgstr "Usted no tiene permitido cambiar su propia contraseña."
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
+"Usted debe esperar %d segundos antes de cambiar su contraseña de nuevo."
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
-msgstr ""
+msgstr "La contraseña está en el historial de viejas contraseñas."
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
-msgstr ""
+msgstr "La contraseña no será cambiada por este valor"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Necesita introducir su contraseña actual para continuar."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
+"Las contraseñas que usted ingresó como \"Nueva contraseña\" y \"Repetir "
+"nueva contraseña\" no coinciden."
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nueva contraseña"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 "La contraseña actual y la introducida como nueva son demasiado parecidas."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "La clave contiene caracteres unicode posiblemente problemáticos!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referencias"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "¡Bienvenido %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Completado"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Siguiente"
 
@@ -3917,6 +4397,7 @@ msgstr "Nombre de la localización"
 #: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
 msgstr ""
+"Nombre de esta conexión para mostrar en la lista de servidores de LDAP."
 
 #: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
@@ -3924,7 +4405,7 @@ msgstr "URI de conexión"
 
 #: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
-msgstr ""
+msgstr "URI para contactar al servidor LDAP. Usualmente comienza con ldap://"
 
 #: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
@@ -3932,12 +4413,12 @@ msgstr "Conexión TLS"
 
 #: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
-msgstr ""
+msgstr "¿Debería usarse TLS para conectarse a este servidor LDAP?"
 
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
 #: setup/class_setupStepLdap.inc:130
 msgid "The LDAP directory base"
-msgstr ""
+msgstr "El directorio base de LDAP"
 
 #: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
@@ -3948,6 +4429,8 @@ msgid ""
 "DN of the admin account to use for binding to the LDAP. Base is "
 "automatically appended."
 msgstr ""
+"DN de la cuenta admin para conectarse a LDAP. La base se añade "
+"automáticamente."
 
 #: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
@@ -3959,11 +4442,7 @@ msgstr "Contraseña de administrador"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
-msgstr ""
-
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Estado"
+msgstr "Contraseña para la cuenta de Administrador que será vinculada a LDAP."
 
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
@@ -3972,6 +4451,8 @@ msgstr "Estado actual"
 #: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
 msgstr ""
+"Resultado del último intento al revisar la vinculación con LDAP y los "
+"esquemas básicos."
 
 #: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
@@ -3989,46 +4470,46 @@ msgstr ""
 "Este dialogo realiza la configuración básica de la conectividad LDAP para "
 "FusionDirectory"
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "¡La conexión anónima al servidor '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "¡La conexión como usuario '%s' ha fallado!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Reintento"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La conexión anónima al servidor '%s' ha tenido exito."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Refresco"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "¡Por Favor especifique un usuario y contraseña!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "¡La conexión como usuario '%s' al servidor '%s' ha tenido exito!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "Comprobaciones de módulos y extensiones PHP"
 
@@ -4044,31 +4525,31 @@ msgstr "Comprobación de la instalación"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Comprobación básica de la versión de PHP y las extensiones."
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Comprobando la versión de PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP debe ser versión '%s' o superior."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Por favor actualize a la versión soportada."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory requiere este modulo para poder hablar con su servidor LDAP."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory requiere este modulo para una interfaz internacionalizada."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4076,79 +4557,57 @@ msgstr ""
 "FusionDirectory requiere este modulo para comunicarse con distintos tipos de"
 " servidores y protocolos."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory requiere este modulo para la integración con Samba"
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory requiere ya sea el modulo 'mhash' o 'sha1' para usar "
-"encripción SSHA"
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory requiere este modulo para poder hablar con un servidor IMAP."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr "FusionDirectory requiere este modulo para manejar cadenas unicode."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory requiere esta extensión para manejar imágenes."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "modulo de compresión"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requiere esta extensión para manejar capturas."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP usa este valor en el recolector de basura para eliminar las sesiones "
 "antiguas."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4156,19 +4615,19 @@ msgstr ""
 "Ajustando este valor a un día impedirá la perdida de sesiones y cookies "
 "antes de que realmente se desconecte por tiempo."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 "Busque 'sessio.gc_maxlifetime' en su php.ini y modifíquelo a 86400 o mayor."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Off"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4176,22 +4635,27 @@ msgstr ""
 "Para poder usar FusionDirectory sin problemas, la opción session.auto_start "
 "debe estar configurada en 'Off' en su php.ini."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr "Busque 'session.auto_start' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
+"FusionDirectory requiere al menos 128MB de memoria. Si usted utiliza menos "
+"que esto ¡puede causar errores que no son reproducibles! aumente la memoria "
+"para instalaciones grandes."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
+"Buscar 'memory_limit' en su archivo php.ini y configurarlo con '128MB' o "
+"superior."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4199,22 +4663,22 @@ msgstr ""
 "Esta opción está relacionada con el manejo de salida de PHP. Desactive esta "
 "opción poniéndola en off para mejorar el rendimiento."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Busque 'implicit_flush' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "El tiempo de ejecución debe ser de al menos 30 segundos."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Busque 'max_execution_time' en su php.ini y modifíquelo a '30' o mayor."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4223,108 +4687,114 @@ msgstr ""
 "'off'. PHP no debería enviar ningún tipo de información sobre el servidor "
 "que esta ejecutando la aplicación."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Busque 'expose_php' en su php.ini y modifíquelo a 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrar"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Inspección LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analizar el arbol LDAP actual por compatibilidad con FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
-msgstr ""
+msgstr "Otorgar todos los permisos en usuarios que pertenezcan a dicha rama."
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
+"Permitir a los usuarios editar su propia información (Pestaña de Inicio y "
+"posix, usar únicamente en base)"
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
+"Permitir a los usuarios editar su propia contraseña (Solo en las pestañas "
+"POSIX e Inicio)"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Analizando objetos en la entrada raíz"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Comprobando permisos en la base de datos LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Comprobando usuarios invisibles"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Comprobando súper administrador"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Comprobando cuentas fuera del árbol de usuarios"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Comprobando grupos fuera del árbol de grupos"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Comprobando departamentos invisibles"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Comprobando números UID duplicados"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Comprobando números GID duplicados"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "La consulta LDAP ha fallado"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Error"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Objeto '%s' de FusionDirectory faltante!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Por favor compruebe su instalación"
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4333,123 +4803,174 @@ msgstr ""
 "No se puede un tipo de objeto estructural en su entrada raíz. Por favor "
 "intente añadir la clase de objeto '%s' manualmente."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
+"El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
+"LDAP."
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
+"El usuario \"%s\" especificado no tiene acceso completo a la base de datos "
+"ldap."
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
-"Se encontraron %s usuarios que no serán visibles en FusionDirectory o están "
-"incompletos."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Error de migración"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
+msgstr "Migración de Usuario"
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Roles"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "No hay una cuenta de administrador FusionDirectory dentro de su LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
-msgstr ""
+msgstr "Dar permisos en todos los objetos."
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
-msgstr ""
+msgstr "Los roles ACL por defecto no han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
-msgstr ""
+msgstr "No se encuentran algunos de los roles ACL por defecto"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
-msgstr ""
+msgstr "Los roles ACL por defecto han sido insertados"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Mover usuarios al árbol de usuarios configurado"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
-msgstr ""
+msgstr "¡No se pueden mover entradas en la División seleccionada!"
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "a"
-
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Las siguientes referencias se actualizaran"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Encontrados '%s' grupos fuera del árbol configurado '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
+msgstr "Mover grupos dentro del árbol configurado"
+
+#: setup/class_setupStepMigrate.inc:1256
+#, php-format
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1258
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Se encontraron %s departamentos que no serán visibles en FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr "Migración de Divisiones."
+
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4464,7 +4985,7 @@ msgstr "Terminar - Escribir el archivo de configuración"
 msgid "Write configuration file"
 msgstr "Escribir archivo de configuración"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4472,20 +4993,17 @@ msgstr ""
 "El fichero de configuración es universalmente legible. ¡Por favor modifique "
 "los permisos del archivo!"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "En estos momentos la configuración no es accesible o no existe."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Después de descargar y colocar el archivo en %s, por favor asegúrese de que "
-"el usuario bajo el cual está corriendo el servidor web es capaz de leer %s, "
-"mientras que otros usuarios no deben poder."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4501,121 +5019,32 @@ msgid ""
 "\"automatic\" will use the language requested by the browser. This setting "
 "can be overriden per user."
 msgstr ""
+"En este punto usted puede elegir el idioma por defecto del   sitio. Si elige"
+" 'automático'  se utilizará el lenguaje del navegador. Ésta opción puede ser"
+" cambiada por el usuario."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr "¡No se puede acceder a el directorio de compilación '%s'!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-"La configuración de FusionDirectory %s/%s no se puede leer. Cancelado."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Dirección de correo"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Contacte a su administrador, hubo un problema con el servidor de correo"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "Esta prenda es invalida"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Configuración PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Error Fatal: 'Register globals' está activado. No se permitirá ningun acceso"
-" hasta que esto sea solucionado por un administrador."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Cambio de contraseña"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 "Su contraseña va a caducar próximamente, ¡Por favor cambie su contraseña!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "¡Funcionando sin memoria!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Desactivados chequeos de ACL de usuario"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Extensión"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Error de configuración"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4623,105 +5052,25 @@ msgstr ""
 "Error fatal: no todas las variables POST fueron transferidas por PHP - por "
 "favor informe a su administrador!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Entrando"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Error Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Su sesión de FusionDirectory ha expirado!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
-msgstr ""
+msgstr "¡Parámetro \"%s\" de plugin inválido!"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
-msgstr ""
-
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "¡Por favor introduzca un nombre de usuario válido!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "¡Por favor introduzca una contraseña!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Por favor compruebe la combinación nombre de usuario/contraseña"
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-"Cuenta bloqueada. ¡Por favor contacte con su administrador de sistemas!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Su navegador tiene las cookies desactivadas. ¡Porfavor active las cookies y "
-"recargue esta página antes de iniciar sesión!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtro"
+msgstr "¡No se encuentra la sesión!"
 
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
@@ -4734,30 +5083,20 @@ msgid ""
 "This includes all ACL assignments made on this node(s). If you want the list"
 " of these assignments, please cancel and open the objects."
 msgstr ""
+"Aquí se incluyen todos los permisos ACL de este nodo(s). Si desea la lista "
+"de esas asignaciones, por favor presione cancelar y abra los objetos."
 
 #: plugins/admin/acl/remove.tpl.c:8
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Mostrar plantillas"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Mostrar usuarios funcionales"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Mostrar usuarios POSIX"
+msgstr "Presione 'Borrar' para continuar o 'Cancelar' para abortar."
 
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Mostrar los usuarios de correo"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Mostrar/ocultar caracteristicas avanzadas"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Mostrar los usuarios samba"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Objeto completo"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4767,13 +5106,13 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
 msgid "Manager concerned"
-msgstr ""
+msgstr "Manager concerned"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:14
 msgid "There is one account expiring in the next %1 days"
@@ -4784,11 +5123,11 @@ msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
-msgstr ""
+msgstr "No hay cuentas por expirar por los próximos %1 días"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:20
 msgid "Next expired accounts"
-msgstr ""
+msgstr "Cuentas por expirar"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:2
 msgid "There is 1 group:"
@@ -4810,7 +5149,7 @@ msgstr[2] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
-msgstr ""
+msgstr "No existe el grupo %1"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:2
 #: plugins/addons/dashboard/users_stats.tpl.c:2
@@ -4821,8 +5160,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4835,7 +5174,7 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4843,7 +5182,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4851,17 +5190,19 @@ msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
-msgstr ""
+msgstr "Ninguno de ellos tiene una %1 cuenta"
 
 #: plugins/generic/references/contents.tpl.c:2
 msgid "<strong>%1</strong> references our <strong>%3</strong>"
-msgstr ""
+msgstr "<strong>%1</strong>referencia nuestro<strong>%3</strong>"
 
 #: plugins/generic/references/contents.tpl.c:5
 msgid ""
 "<strong>%1</strong> references our field <strong>%3</strong> from tab "
 "<strong>%2</strong>"
 msgstr ""
+"<strong>%1</strong> referencia nuestro campo <strong>%3</strong> en el tab "
+"<strong>%2</strong>"
 
 #: plugins/generic/references/contents.tpl.c:8
 msgid "This object has no relationship to other objects."
@@ -4892,10 +5233,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Añadir las clases de objetos necesarias a la base LDAP"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Actual"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Despues de migrar"
 
@@ -4917,13 +5260,10 @@ msgstr "FusionDirectory correrá aun si no se arregla esto."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Esta parece ser la primera vez que inicia FusionDirectory - no conseguimos "
-"ninguna configuración hasta el momento. Este simple asistente trata de "
-"ayudarlo a configurar."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -4961,17 +5301,17 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:29
 msgid "To continue:"
-msgstr ""
+msgstr "Para continuar:"
 
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4995,7 +5335,7 @@ msgstr "Crear su fichero de configuración"
 
 #: setup/setup_finish.tpl.c:5
 msgid "Run %1 to put the correct right on fusiondirectory.conf"
-msgstr ""
+msgstr "Ejecute %1 para corregir los permisos en fusiondirectory.conf"
 
 #: setup/setup_finish.tpl.c:8
 msgid "Download configuration"
@@ -5010,6 +5350,8 @@ msgid ""
 "This dialog allows moving a couple of entries to the configured tree. Doing "
 "this may straighten your LDAP service."
 msgstr ""
+"Este cuadro de mensaje le permite mover un par de entradas al árbol LDAP "
+"configurado. Hacer esto podría arreglar su servicio LDAP."
 
 #: setup/setup_migrate_accounts.tpl.c:5
 msgid ""
@@ -5017,10 +5359,13 @@ msgid ""
 "entries. The FusionDirectory setup can't migrate references, so you may want"
 " to cancel the migration in this case."
 msgstr ""
+"¡Cuidado con ésta opción! Pueden haber referencias que apuntan a ésas "
+"entradas. La 'configuración' de FusionDirectory no puede migrar ésas "
+"referencias, así que usted podría querer cancelar la migración en éste caso."
 
 #: setup/setup_migrate_accounts.tpl.c:8
 msgid "Move selected entries into this tree"
-msgstr ""
+msgstr "Mover las entradas seleccionadas a éste árbol."
 
 #: setup/setup_migrate_accounts.tpl.c:11
 msgid ""
@@ -5028,6 +5373,9 @@ msgid ""
 " If you want to change this for a couple of entries only, just select them "
 "and use the 'Migrate' button below."
 msgstr ""
+"Las entradas que se listan actualmente no son visibles en la interfaz de "
+"FusionDirectory. Si desea cambiar ésto para un par de entradas únicamente, "
+"solo debe seleccionarlas y usar el botón \"Migrar\"."
 
 #: setup/setup_migrate_accounts.tpl.c:14
 msgid ""
@@ -5037,7 +5385,12 @@ msgstr ""
 "Si quiere saber que se hará cuando se migren las entradas seleccionadas use "
 "el botón 'Mostrar cambios' para ver el LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Seleccione todos"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Mostrar cambios"
 
@@ -5152,14 +5505,28 @@ msgid "I forgot my password"
 msgstr "Olvidé mi clave"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Su navegador tiene las cookies desactivadas. ¡Porfavor active las cookies y "
+"recargue esta página antes de iniciar sesión!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Pulse aquí para iniciar sesión"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
-msgstr ""
+msgstr "¡Advertencia!: Usted está a punto de borrar los siguientes objetos"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5174,37 +5541,88 @@ msgstr ""
 "Entonces, si esta seguro, presione <i>Eliminar</i> para continuar o "
 "<i>Cancelar</i> para Abortar."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Abajo"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Acciones"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtro"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Buscar en subárboles"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Aplicar filtro"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
-msgstr ""
+msgstr "Crear un nuevo objeto utilizando plantillas"
 
 #: ihtml/themes/breezy/template.tpl.c:8
 #: ihtml/themes/breezy/restore-confirm.tpl.c:14
 msgid "Continue"
 msgstr "Continuar"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Detectado conflicto de Bloqueos"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Solo lectura"
 
@@ -5221,6 +5639,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Enviar"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Inicio"
@@ -5239,6 +5662,10 @@ msgid "Session expires in %d!"
 msgstr "La sesión expira en %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5251,24 +5678,24 @@ msgstr ""
 "la búsqueda a valores pequeños y usar filtros para encontrar las entradas "
 "que este buscando."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Por favor elija la forma de reaccionar en esta sesión"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
-"ignore este error y muestre todas las entradas devueltas por el servidor "
-"LDAP"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"ignore este error y muestre todas las entradas que coincidan con el tamaño "
-"limite definido y active el uso de filtros en su lugar"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Activar"
diff --git a/locale/fa_IR/fusiondirectory.po b/locale/fa_IR/fusiondirectory.po
index c816ed20ed7ab51df7d7dfba7dcc7c6fbd3067ef..b5bad35d9695eefb92c759a636bc4dba2f9cd0da 100644
--- a/locale/fa_IR/fusiondirectory.po
+++ b/locale/fa_IR/fusiondirectory.po
@@ -4,335 +4,614 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2017
+# fusiondirectory <contact@fusiondirectory.org>, 2018
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2017\n"
-"Language-Team: Persian (Iran) (https://www.transifex.com/fusiondirectory/teams/12202/fa_IR/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Language-Team: Persian (Iran) (https://app.transifex.com/fusiondirectory/teams/12202/fa_IR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fa_IR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "خطا"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "خطای LDAP"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -340,1534 +619,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "خطای داخلی"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "خطای LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "خطا"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
+msgstr ""
+
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
-msgstr "فایل '%s' را نمی توانم پیدا کنم برای رفع مشکل دستور '%s' را بزنید."
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
+msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "جواز"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "دپارتمان"
-
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1876,127 +1974,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "دپارتمان"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "کشور"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "آدرس"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "تلفن"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr ""
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "پست الکترونیک"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "اطلاعات شخصی"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "فامیل"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "نام"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "شماره اتاق."
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "شماره اتاق"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "تلفن همراه"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "پیجر"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "آدرس پستی منزل"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "شماره تماس خصوصی"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "شماره تلفن منزل"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "اطلاعات سازمان"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "شماره دپارتمان."
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "شماره دپارتمان"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "شماره کارمندی."
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "شماره کارمندی"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "کد پستی"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "کلمه عبور جدید"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+#: setup/class_setupStepChecks.inc:85
+msgid ""
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "خطا"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,218 +4890,53 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "پیکربندی PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "تغییر کلمه عبور"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 "اعتبار کلمه عبور شما در حال اتمام است، لطفا کلمه عبور خود را تغییر دهید!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "پلاگین"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4660,24 +4953,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4687,7 +4968,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4737,8 +5018,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4749,7 +5030,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4757,7 +5038,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4803,10 +5084,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4828,7 +5111,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4872,12 +5155,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4937,7 +5220,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5046,14 +5334,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5064,6 +5364,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5073,28 +5426,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5111,6 +5462,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5129,6 +5485,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5136,20 +5496,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/fi_FI/fusiondirectory.po b/locale/fi_FI/fusiondirectory.po
index 0f1a5db0d7bc5da3aff7dc36c3b04455d3738c6b..96209b56b99e6e354646656ee2494464e3dee320 100644
--- a/locale/fi_FI/fusiondirectory.po
+++ b/locale/fi_FI/fusiondirectory.po
@@ -11,328 +11,607 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Finnish (Finland) (https://www.transifex.com/fusiondirectory/teams/12202/fi_FI/)\n"
+"Language-Team: Finnish (Finland) (https://app.transifex.com/fusiondirectory/teams/12202/fi_FI/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fi_FI\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Virhe"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tyyppi"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAP virhe"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Kuvaus"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Luo"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Poista"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tyyppi"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Toiminnot"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -340,1534 +619,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Virhe"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAP virhe"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Sähköpostiosoite"
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Varoitus"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Lupa"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "The field '%s' contains a reserved keyword!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:297
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr ""
-
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr ""
-
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Peruta"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Talenna"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nimi"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Kuvaus"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Aika"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Lataa"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Poista"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Varoitus"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Luo"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1876,127 +1974,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Ominaisuudet"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Valtio"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Maa"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Osoite"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Puhelin"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Puhelinnumero"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Faksi"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nimi"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Etunimi"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Portti"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Eräpäivä"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Sähköposti"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Alkupäivämäärä"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "Loppupäivämäärä"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr "Salasana"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Sukunimi"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Etunimi"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Mobiili"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Sähköpostiosoite"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4659,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4686,7 +4967,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4736,8 +5017,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4748,7 +5029,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4756,7 +5037,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4802,10 +5083,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4827,7 +5110,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4871,12 +5154,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4936,7 +5219,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5045,14 +5333,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5063,6 +5363,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Toiminnot"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5072,28 +5425,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5110,6 +5461,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5128,6 +5484,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5135,20 +5495,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/fr/fusiondirectory.po b/locale/fr/fusiondirectory.po
index ecde72526738024959fef4fceebbe1786a6fe944..a43f417cb149f3d41a78206b232da0e0073e2ffe 100644
--- a/locale/fr/fusiondirectory.po
+++ b/locale/fr/fusiondirectory.po
@@ -4,111 +4,510 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# MCMic, 2018
-# fusiondirectory <contact@fusiondirectory.org>, 2021
-# Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2022
+# MCMic, 2020
+# Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2023
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2022\n"
-"Language-Team: French (https://www.transifex.com/fusiondirectory/teams/12202/fr/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: French (https://app.transifex.com/fusiondirectory/teams/12202/fr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: fr\n"
 "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Erreur"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Veuillez corriger l'erreur ci-dessus et recharger la page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr "Configuration des listes"
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr "Colonnes"
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr "Colonnes affichées pour cette liste"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Type"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr "Type de colonne"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr "Attribut"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+"Attributs LDAP à afficher, séparés par des virgules. Les valeurs spéciales "
+"\"nameAttr\" et \"mainAttr\" fonctionnent également."
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Étiquette"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr "Titre de la colonnes"
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr "Persistant"
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+"Cette configuration doit-elle être enregistrée dans le LDAP en tant que "
+"configuration par défaut pour cette page"
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr "Oublier ma configuration persistante"
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+"Supprimer la configuration persistante pour cette page de gestion afin que "
+"celle par défaut soit utilisée"
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr "Oublier"
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr "Défaut global"
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+"Cette configuration doit-elle être enregistrée dans le LDAP en tant que "
+"configuration par défaut pour cette page pour tout les utilisateurs"
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr "Oublier la configuration globale par défaut"
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+"Supprimer la configuration globale pour cette page de gestion afin que celle"
+" par défaut soit utilisée"
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr "Vous n'êtes pas autorisé à exécuter l'action \"%s\" sur la cible \"%s\""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr "Pas assez de cibles (%d) passées pour l'action \"%s\""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr "Trop de cibles (%d) passées pour l'action \"%s\""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr "DN"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Date"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Description"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Restaurer"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr "Instantanés"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr "Gestionnaire d'instantanés"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr "Restaurer sur un objet existant"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr "Restaurer un objet supprimé"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr "Echec de la création d'un instantané pour %s"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Il y a eu un problème lors de la décompression de l’instantané"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr "Les données de l'instantané n'ont pas pu être récupérées"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr "Restauration d’instantanés"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objet"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr "DN de l’objet dont vous créez un instantané"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Instantanés"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr "Instantanés existants pour cet objet"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr "Création d’un instantané"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Date"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr "Date et heure de création de l’instantané"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr "Raison"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr "Raison pour la création de cet instantané"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr "Searches in %s"
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+"Impossible de rechercher les \"%s\" modèles: \n"
+"%s"
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+"Impossible de rechercher \"%s\":\n"
+"%s"
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr "Fixe"
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Veuillez sélectionner les entrées désirées"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "Modèle de %s"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr "Onglet"
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Modèle"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Depuis un modèle"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Créer"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Exporter la liste"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Éditer"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Couper"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copier"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Coller"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Appliquer un modèle"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Supprimer"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Créer un instantané"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Restaurer un instantané"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr "Créer un objet depuis ce modèle"
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr "appliquer quand même"
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr "Appliquer un modèle sur un modèle n'est pas possible"
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+"Toutes les entrées sélectionnées doivent partager le même type pour pouvoir "
+"leur appliquer un modèle."
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr "Archiver quand même"
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr "L'archivage d'un modèle n'est pas possible"
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr "Archivage réussi"
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr "%dentrées ont été archivées avec succès"
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr "Supprimer quand même"
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Vous n'êtes pas autorisé à créer un nouvel instantané pour %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Vous n'êtes pas autorisé à restaurer un instantané de %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr "Vous n'êtes pas autorisé à effacer l'instantané pour %s."
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+"Le nombre d'entrées répertoriées (%d) est supérieur ou trop proche du "
+"paramètre PHP ini max_input_vars configuré (%d). Veuillez modifier le "
+"paramètre ini max_input_vars à une valeur plus élevée."
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Aller à la racine"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Racine"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Monter d'un département"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Haut"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Aller au département de l’utilisateur"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Accueil"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Recharger la liste"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr "Recharger"
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr "Configurez cette liste"
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Configurer"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Erreur XML dans fusiondirectory.conf : %s à la ligne %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Erreur de configuration"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
-"Il semble que vous essayez de déchiffrer quelque chose qui n'est pas chiffré :%s<br/>\n"
+"Il semble que vous essayez de déchiffrer quelque chose qui n'est pas chiffré :%s\n"
 "Veuillez vérifier que vous n'utilisez pas un fichier fusiondirectory.secrets alors que vos mots de passe ne sont pas chiffrés."
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Erreur LDAP"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 "Impossible de se connecter à l'annuaire LDAP. Veuillez contacter "
 "l'administrateur du système."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 "La configuration «%s» n'est pas présente dans le fichier de configuration"
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
@@ -117,7 +516,7 @@ msgstr ""
 "La fonctionnalité des instantanés est activée, mais la variable requise «%s»"
 " n'est pas configurée."
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
@@ -126,36 +525,65 @@ msgstr ""
 "La fonctionnalité des instantanés est activée, mais le module nécessaire à "
 "la compression est manquant. Veuillez installer «%s». "
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Toutes les catégories"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Mon compte"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr "Type non inexistant : \"%s\" !"
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr "branche inexistante : \"%s\" !"
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr "DN inexistant : \"%s\" !"
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr "le filtre est vide"
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr "Classe inconnue '%s' !"
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Page"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 "Exportation en PDF impossible, la bibliothèque FPDF n'est pas installée."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "créé par"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Fichier"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Ligne"
 
@@ -179,174 +607,44 @@ msgstr "statique"
 msgid "method"
 msgstr "méthode"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Trace"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Type"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Arguments"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "La génération de cette page a causé des erreurs dans l'interpréteur PHP !"
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
-msgstr "Envoyer le rapport de bugs à l'équipe FusionDirectory"
-
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Envoyer le rapport de bug"
-
-#: include/php_setup.inc:258
-msgid "Toggle information"
-msgstr "Afficher/Cacher l'information"
-
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Haut"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Bas"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Trier vers le haut"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Trier vers le bas"
-
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Sélectionner tout"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "créé par"
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Aller à la racine"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Racine"
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Monter d'un département"
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr "Aller au département de l’utilisateur"
-
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Accueil"
-
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Recharger la liste"
-
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Actions"
-
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Copier"
-
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Couper"
-
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Coller"
-
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Couper cette entrée"
-
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Copier cette entrée"
-
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Restaurer des instantanés"
-
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Exporter la liste"
-
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Restaurer un instantané"
-
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Créer un instantané"
-
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Créer un nouvel instantané depuis cet objet"
-
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
-msgstr "Le fuseau horaire «%s» indiqué dans votre configuration est invalide."
-
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
-msgstr "Instantanés"
-
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
-msgstr "Gestionnaire d'instantanés"
-
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
-msgstr "Restaurer sur un objet existant"
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr "Envoyer le rapport de bugs à l'équipe FusionDirectory"
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
-msgstr "Restaurer un objet supprimé"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr "Icône courriel"
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
-msgstr "Il y a eu un problème lors de la décompression de l’instantané"
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr "Envoyer le rapport de bug"
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr "Les données de l’instantané n’ont pas pu être obtenue"
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr "Afficher/Cacher l'information"
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Modèle"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr "Non attrapé : %s : %s"
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "Le fuseau horaire «%s» indiqué dans votre configuration est invalide."
 
 #: include/class_template.inc:44
 msgid "Object template, used to create several objects with similar values"
@@ -355,298 +653,362 @@ msgstr ""
 "similaires"
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr "Nom du modèle"
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Erreur interne"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr "Échec du journal système : %s"
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr "Option %s invalide !"
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr "Le type d’objet spécifié est vide ou invalide !"
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
-msgstr "Impossible de changer le mot de passe, utilisateur «%s» inconnu."
+msgid "Failed to log event (%s - %s): %s"
+msgstr "Échec d'enregistrement de l'événement (%s - %s): %s"
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
-msgstr ""
-"Vous devez remplir saslRealm ou saslExop dans l’écran de configuration pour "
-"pouvoir utiliser SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "CAS"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Soumettre"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr "L'utilisateur CAS «%s» n'existe pas dans l'annuaire LDAP"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr "La connexion avec l'utilisateur «%s» a provoqué l'erreur : %s"
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Appliquer le filtre"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr "Formulaire HTML"
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Chercher dans les sous-arbres"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Connexion"
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
-msgstr "Recherches dans %s"
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr "Attention : %sLa session n’est pas chiffrée !%s"
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "La taille limite de %d entrées est dépassée !"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+"Attention : La durée de validité des sessions configurée dans votre "
+"fusiondirectory.conf sera remplacée par celle définie dans votre php.ini."
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr "Deuxième facteur"
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr "La vérification des schémas LDAP a signalé des erreurs :"
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
-"Mettre la nouvelle limite à %s et me montrer ce message si la limite est "
-"toujours dépassée"
+"Erreur de schéma LDAP:\n"
+"%s"
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Configurer"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Veuillez entrer un nom d’utilisateur valide !"
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "incomplet"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Veuillez entrer votre mot de passe !"
 
-#: include/functions.inc:97
-#, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Compte verrouillé. Veuillez contacter votre administrateur système !"
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Erreur LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
-"Erreur fatale : pas d'emplacement défini pour les classes  - veuillez "
-"exécuter '%s' pour régler le problème"
+"Une erreur irrécupérable s'est produite. Veuillez contacter votre "
+"administrateur."
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr "Erreur Fatale !"
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr "En-tête HTTP"
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
+msgstr "Aucune valeur trouvée dans l’entête HTTP «%s»"
+
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
-"Erreur fatale : impossible d'initialiser la classe '%s' - veuillez exécuter "
-"'%s' pour essayer de régler le problème"
+"L'utilisateur «%s» mentionné dans l’entête n'existe pas dans l'annuaire LDAP"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Erreur Fatale"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr "Authentification HTTP basique"
+
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Adresse de courriel"
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Récupération de mot de passe"
+
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "Aucun compte utilisateur trouvé avec l’identifiant «%s»"
+
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Plusieurs comptes trouvés avec l’identifiant «%s»"
+
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr "Il n'y a pas de compte qui utilise le courriel «%s»"
+
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
+msgstr "Il y a plusieurs comptes qui utilisent le courriel «%s»"
+
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
-"FATAL : Erreur lors de la connexion au serveur LDAP. Le serveur a répondu "
-"'%s'."
+"L'utilisateur correspondant au courriel «%s» est verrouillé. Veuillez "
+"contacter votre administrateur système !"
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
-"Cet identifiant (uid) n'est pas unique au sein de l’annuaire LDAP. Veuillez "
-"contacter votre administrateur système."
+"Contactez votre administrateur système, il y a eu un problème avec le "
+"serveur de courriel"
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "Le jeton n'est pas valide"
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+"Un problème est survenu avec le serveur de courriel, le courriel de "
+"confirmation n'a pas été envoyé"
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Erreur d'authentification"
+#: include/password-methods/class_passwordMethodSasl.inc:66
+#, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr "Impossible de changer le mot de passe, utilisateur «%s» inconnu."
 
-#: include/functions.inc:533
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
-"Il semble que votre mot de passe soit expiré. Veuillez utiliser <a "
-"href=\"recovery.php\">la récupération de mot de passe</a> pour le changer."
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr "Erreur lors de l'ajout d'un verrou. Contactez les développeurs !"
+"Vous devez remplir saslRealm ou saslExop dans l’écran de configuration pour "
+"pouvoir utiliser SASL"
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
-"Impossible de créer des informations de verrouillage dans l'annuaire LDAP. "
-"Veuillez contacter votre administrateur !"
+"Le fichier de configuration de FusionDirectory %s/%s ne peut être lu. "
+"Abandon."
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "Le serveur LDAP a retourné : %s"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr ""
+"Le répertoire «%s» spécifié comme répertoire de compilation est "
+"inaccessible !"
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Avertissement"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "incomplet"
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
-"Détection de verrou multiple pour un même objet. Ceci ne devrait pas "
-"arriver. Effacement des références multiples."
+"La limite%d est supérieure ou trop proche du paramètre ini PHP "
+"max_input_vars configuré de %d . Veuillez modifier le paramètre ini "
+"max_input_vars à une valeur plus élevée si vous souhaitez définir la limite "
+"plus élevée."
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Continuer malgré tout"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"Erreur fatale : pas d'emplacement défini pour les classes  - veuillez "
+"exécuter '%s' pour régler le problème"
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Éditer malgré tout"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+"Erreur fatale : impossible d'initialiser la classe '%s' - veuillez exécuter "
+"'%s' pour essayer de régler le problème"
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Vous êtes sur le point d'éditer le(s) entrée(s) %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
+msgstr "%s 2002-%d %sl’équipe de FusionDirectory, %s%s"
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr "%sO"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiO"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiO"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiO"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiO"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiO"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sEiO"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiO"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiO"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
-"Le fichier '%s' n’a pas pu être supprimé. Essayez de lancer la commande "
-"«fusiondirectory-setup --check-directories» sur le serveur FusionDirectory "
-"pour corriger les permissions."
+"Le fichier \"%s\" n’a pas pu être supprimé. Essayez de lancer la commande "
+"«fusiondirectory-configuration-manager  --check-directories» pour corriger "
+"les permissions."
 
-#: include/functions.inc:1722
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
+msgstr "Impossible d'écrire le fichier de révision ! :"
+
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Impossible d'écrire le fichier de révision !"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr "Impossible de lire le fichier de révision !"
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Avertissement LDAP"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Impossible de récupérer les informations sur les schémas depuis le serveur. "
 "Vérification des schémas impossible !"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr "Schéma principal de FusionDirectory"
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr "Schéma utilisé pour stocker la configuration de FusionDirectory"
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 "Utilisé pour stocker l'autorisation de connexion dans les utilisateurs ou "
 "les groupes."
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr "Utilisé pour stocker les modèles."
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr "Utilisé pour stocker les informations POSIX."
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr "Object class obligatoire \"%s\" manquante !"
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr "Object class facultative \"%s\" manquante !"
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Classe(s) disponible(s)"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
@@ -654,7 +1016,7 @@ msgstr ""
 "Vous avez installé le plugin «mixed groups», mais vos schémas ne sont pas "
 "compatibles."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
@@ -662,7 +1024,7 @@ msgstr ""
 "Pour pouvoir utiliser «mixed groups» l’objectClass «posixGroup» doit être "
 "auxiliaire («AUXILIARY»)"
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
@@ -670,379 +1032,237 @@ msgstr ""
 "Vos schémas sont fait pour utiliser des «mixed groups», mais ce plugin n’est"
 " pas installé."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr "L’objectClass «posixGroup» doit être structurelle («STRUCTURAL»)"
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Le fichier '%s' n’a pas été trouvé - veuillez exécuter '%s' pour régler ce "
-"problème"
+"Le fichier \"%s\" n’a pas été trouvé - veuillez exécuter \"%s\" pour régler "
+"ce problème"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Tous les objets dans cette catégorie"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Identifiant"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
+"Erreur fatale : Impossible de trouver une définition pour le plugin \"%s\" "
+"(\"%s\" n'est pas un fichier) !"
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Permissions"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Tout annuler"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Impossible de coller"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Sélectionnez pour lister les objets de type '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Sélectionner pour lister les objets contenant '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Sélectionnez pour lister les objets qui ont '%s' activé"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Sélectionner pour chercher dans les sous-arbres"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Cet objet sera effacé !"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "L'objet '%s' sera effacé !"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Cet objet sera effacé : %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "L'objet de type '%s' sera effacé : %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Cet objet sera effacé : "
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "L'objet de type '%s' sera effacé :"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Ces objets seront effacés : %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Ces objets de type '%s' seront effacés : %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Vous n'avez pas les droits nécessaires pour supprimer cet objet !"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Vous n'avez pas les droits nécessaires pour supprimer cet objet :"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Vous n'avez pas les droits nécessaires pour supprimer ces objets :"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Vous n'avez pas les droits nécessaires pour créer cet objet !"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Vous n'avez pas les droits nécessaires pour créer l'objet :"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Vous n'avez pas les droits nécessaires pour créer ces objets :"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Vous n'avez pas les droits nécessaires pour modifier cet objet !"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 "Vous n'avez pas les droits nécessaires pour modifier le champ «%s» de "
 "l'objet «%s»"
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
-msgstr "Vous n'avez pas les droits nécessaires pour modifier l’objet :<br/>%s"
+msgid "You have no permission to modify the object:%s"
+msgstr "Vous n'avez pas l'autorisation de modifier l'objet : %s"
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
-msgstr ""
-"Vous n'avez pas les droits nécessaires pour modifier les objets :<br/>%s"
+msgid "You have no permission to modify these objects:%s"
+msgstr "Vous n'avez pas l'autorisation de modifier ces objets : %s"
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Vous n'avez pas les droits nécessaires pour voir cet objet !"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Vous n'avez pas les droits nécessaires pour voir l'objet :"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Vous n'avez pas les droits nécessaires pour voir ces objets :"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Vous n'avez pas les droits nécessaires pour déplacer cet objet !"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Vous n'avez pas les droits nécessaires pour déplacer l'objet :"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Vous n'avez pas les droits nécessaires pour déplacer ces objets :"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Informations de connexion"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Impossible de se connecter à la base de données %s !"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Impossible de sélectionner la base de données %s !"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "Pas de serveur %s défini !"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Impossible d'interroger la base de données %s !"
-
-#: include/class_msgPool.inc:285
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "The field '%s' contains a reserved keyword!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr "Le champ '%s' contient un mot réservé !"
 
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-"La commande '%s', spécifiée comme hook pour le plugin '%s' n'existe pas !"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "La commande '%s' est invalide !"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "La commande '%s' pour le plugin %s est invalide !"
-
-#: include/class_msgPool.inc:319
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "La commande '%s' (%s) est invalide !"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "La commande '%s' (%s) pour le plugin %s est invalide !"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
+msgid "Cannot execute \"%s\" command!"
 msgstr "Impossible d'exécuter la commande '%s' !"
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr "Impossible d'exécuter la commande '%s' pour le plugin %s !"
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr "Impossible d'exécuter la commande '%s' (%s) !"
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr "Impossible d'exécuter la commande '%s' (%s) pour le plugin %s !"
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Value for \"%s\" is too large!"
 msgstr "La valeur pour '%s' est trop grande !"
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr "'%s' doit être plus petit que %s !"
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too small!"
 msgstr "La valeur pour '%s' est trop petite !"
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s' doit être supérieur ou égal à %d !"
+msgid "\"%s\" must be %d or above!"
+msgstr "'%s' doit être à la version %d ou plus !"
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr "'%s' dépend de '%s' - veuillez remplir les deux valeurs !"
 
-#: include/class_msgPool.inc:405
-#, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "Il existe déjà une entrée avec l'attribut '%s' dans le système !"
-
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
-msgstr "L’entrée '%s' utilise déjà l'attribut '%s' !"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
+msgstr "Il existe déjà une entrée avec l'attribut %s dans le système !"
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Le champ obligatoire '%s' n'est pas rempli !"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "Exemple :"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
+msgstr "L’entrée '%s' utilise déjà l'attribut \"%s\" !"
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
-msgstr "Le champ '%s' contient des caractères invalides"
+msgid "The required field \"%s\" is empty!"
+msgstr "Le champ obligatoire « %s » n'est pas rempli !"
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' n'est pas autorisé :"
+msgid "The field \"%s\" contains an invalid value."
+msgstr "Le champ '%s' contient une valeur invalide"
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s' n'est pas autorisé !"
+msgid "Example: %s"
+msgstr "Exemple :%s"
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "Extension PHP %s manquante !"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Annuler"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Appliquer"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Sauver"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Ajouter"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Ajouter %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Supprimer"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Supprimer %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Éditer…"
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Éditer %s…"
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Retour"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Ce compte n'a pas d'extensions %s valides !"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1051,7 +1271,7 @@ msgstr ""
 "Ce compte a les paramètres %s activés. Vous pouvez les désactiver en "
 "cliquant sur le bouton ci-dessous."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1060,7 +1280,7 @@ msgstr ""
 "Ce compte a les paramètres %s activés. Pour les désactiver vous devez au "
 "préalable désactiver les paramètres %s !"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1069,7 +1289,7 @@ msgstr ""
 "Ce compte a les paramètres %s desactivés. Vous pouvez les activer en "
 "cliquant ci dessous."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1078,7 +1298,7 @@ msgstr ""
 "Ce compte a les paramètres %s désactivés. Pour les activer, vous devez au "
 "préalable activer les paramètres %s !"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
@@ -1087,17 +1307,17 @@ msgstr ""
 "Ce compte a les paramètres %s désactivés. Pour les activer, vous devez "
 "d'abord désactiver les paramètres %s !"
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Activer les paramètres %s"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Retirer les paramètres %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
@@ -1105,225 +1325,180 @@ msgstr ""
 "Cliquez sur le bouton \"Modifier\" dans le coin inférieur droit de la page "
 "pour modifier les champs"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Janvier"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Février"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Mars"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Avril"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Mai"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Juin"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Juillet"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Août"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Septembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Octobre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Novembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Décembre"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Dimanche"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Lundi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Mardi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Mercredi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Jeudi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Vendredi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Samedi"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "lecture"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "ajout"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "modification"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "suppression"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "recherche"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "authentification"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "La requête LDAP %s a échoué !"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "La requête LDAP a échoué !"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objet"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Le téléversement a échoué !"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Le téléversement a échoué : %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Échec de communication avec le service d'infrastructure !"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Échec de communication avec le service d'infrastructure : %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "Ce '%s' est en cours d'utilisation par l’objet : %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "Ce '%s' est en cours d’utilisation."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "Ce '%s' est en cours d’utilisation par les objets : %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Le fichier '%s' n'existe pas !"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Impossible de lire dans le fichier '%s' !"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Impossible d'écrire dans le fichier '%s' !"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"La valeur de '%s' est actuellement vide ou invalide, veuillez vérifier votre"
-" fichier de configuration !"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Impossible de supprimer le fichier '%s' !"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Impossible de créer le répertoire '%s' !"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Impossible de supprimer le répertoire '%s' !"
+"Échec de communication avec le service d'infrastructure \n"
+"\n"
+"Erreur: %s"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Vérification du support de %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Installer et activer le module PHP %s."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Installer et activer le module Pear %s."
-
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
-msgstr ""
-"Impossible d'initialiser la classe '%s' ! Peut-être qu’il manque une "
-"extension dans votre installation de FusionDirectory ?"
-
-#: include/class_msgPool.inc:856
+#: include/class_msgPool.inc:600
 msgid ""
 "The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 "La base fournie n'est pas valide et a été réinitialisée à la valeur "
 "précédente !"
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:149
+#, php-format
+msgid "\"%s\" was not found in attributes"
+msgstr "\"%s\"n'a pas été trouvé dans les attributs"
+
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+"Mode non valide pour le modificateur \"a\", les modes pris en charge sont "
+"\"uid\" et \"ascii\""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr "Paramètre d'id manquant pour le modificateur incrémentiel"
+
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
@@ -1332,56 +1507,26 @@ msgstr ""
 "Dépendance récursive dans les champs de modèle : «%1$s» ne peut pas dépendre"
 " de «%2$s» puisque «%2$s» dépend déjà de «%1$s»"
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Veuillez sélectionner les entrées désirées"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nom"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Description"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
-msgstr "Obtenir le statut du service"
+msgstr "Obtenir le statut d'un service"
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Démarrer le service"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
-msgstr "Arrêter le Service"
+msgstr "Stopper le service"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Redémarrer le service"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1391,90 +1536,130 @@ msgstr "Base de l'objet"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
 msgid "Base field value should always be a string"
-msgstr "La valeur de la base doit toujours être une chaîne"
+msgstr "La valeur du champ de base doit toujours être une chaîne"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr "oui"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr "non"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr "L'attribut %sest désactivé, sa valeur n'a pas pu être définie"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr "\"%s\" n'est pas une valeur valide, devrait être \"%s\" ou \"%s\""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Type inconnu : %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "DN inexistant : %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Aucun"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr "Ajouter (dialogue)"
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr "%s(de la liste)"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
 #, php-format
-msgid "Error, incorrect date: %s"
-msgstr "Erreur, date incorrecte : %s"
+msgid "%s is older than %s"
+msgstr "%s est plus vieux que %s "
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr "%s est plus récent que %s "
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr "Date incorrecte : %s"
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Heures"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Minutes"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "Secondes"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Date"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Temps"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Impossible de lire le fichier importé : %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "le fichier est vide"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "le fichier n'a pas été trouvé"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "le fichier n'est pas lisible"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr "%s (%d octets)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr "L'attribut %sest désactivé, sa valeur n'a pas pu être définie"
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
-msgstr "Valeur codé en base64 non valide pour l'attribut %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
+msgstr "Données base64 non valides"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Téléverser"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Télécharger"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-"Impossible de définir la valeur \"%s\", elle contient des données non "
-"valides: %s"
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
@@ -1482,127 +1667,106 @@ msgstr ""
 "Impossible de sauver la photo de l'utilisateur, FusionDirectory a besoin que"
 " le module php \"imagick\" soit installé pour cela."
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr "Données non valides, erreur Imagick: \"%s\""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Supprimer"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr "Numéro"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Éditer"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Un nombre entier entre %d et %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Un nombre entier plus grand que %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Un nombre entier plus petit que %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr "\"%s\" n'est pas un nombre"
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr "%s est plus petit que %s"
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr "%s est plus grand que %s "
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Un nombre à virgule flottante entre %f et %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Un nombre à virgule flottante plus grand que %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Un nombre à virgule flottante plus petit que %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
-msgstr "La valeur du champ multivalué «%s» n'est pas un tableau"
+msgid "Invalid: %s"
+msgstr "Non valide : %s"
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr "La valeur n'est pas un tableau"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (requis)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
-msgstr "SetAttribute %sa été fixé à une valeur non compatible"
+msgstr "SetAttribute \"%s\" a été défini sur une valeur non compatible"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Valeur invalide pour %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Trier vers le haut"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Aucun"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Trier vers le bas"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
-msgstr ""
-"La valeur «%s» pour le champ «%s» n’est pas dans la liste des choix "
-"possibles"
+msgid "\"%s\" is not in the list of possible choices"
+msgstr "La valeur \"%s\" n’est pas dans la liste des choix possibles"
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
-msgstr "StringAttribute%s a été fixé à une valeur non compatible"
+msgstr "StringAttribute \"%s\" a été défini sur une valeur non compatible"
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "Paramètres du modèle"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Le nom de ce modèle "
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr "Seul l'onglet principal peut générer le dn"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
@@ -1610,51 +1774,58 @@ msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 "Impossible de générer le dn : pas d’infos sur le type d’objet pour la classe"
 " d’onglet «%s»"
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr "Il existe déjà une entrée avec le même dn : %s"
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "L'entrée %s n'existe pas"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 "L'objet a changé depuis son ouverture dans FusionDirectory. Toutes les "
 "modifications qui peuvent avoir été faites par d'autres seront perdues si "
 "vous sauvez cette entrée !"
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr "Service «%s»"
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Onglet «%s»"
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
-msgstr "Impossible de créer un DN unique"
+msgstr "Échec de la création d'un DN unique"
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr "Champ inconnu «%s»"
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr "L'heure à laquelle l'entrée a été ajoutée"
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr "Heure de la dernière modification de l'entrée"
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
@@ -1663,311 +1834,276 @@ msgstr ""
 "Pas de définition de plugin pour l'initialisation de «%s», veuillez vérifier"
 " votre fichier de configuration."
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
-msgstr "Impossible de calculer le DN pour l'objet : %s"
+msgstr "Échec de calcul du DN pour l'objet: %s"
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
-msgstr "Le déplacement de \"%s\" à \"%s\" a échoué: %s"
-
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr "Valeur invalide pour %s"
+msgstr "Passer de \"%s\" à \"%s\" a échoué: %s"
 
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "O"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiO"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiO"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiO"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiO"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "secondes"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "minutes"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "heures"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "jours"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr "Ajouter (dialogue)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr "Groupe POSIX %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Gestion des listes de contrôle d'accès (ACL)"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Rôle %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Rôles ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr "Groupe %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Groupe d'utilisateurs"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Inconnu"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
+"Type d'ACL inconnu \"%s\" !\n"
+"Vous devez exécuter \"ffusiondirectory-configuration-manager --migrate-acls\" pour migrer vos acls au nouveau format."
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "Depuis un modèle"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Entrée inconnue '%s' !"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "Modèle de %s"
+msgid "All users"
+msgstr "Tous les utilisateurs"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Afficher %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
+"Une affectation de liste de contrôle d'accès pour l'utilisateur connecté "
+"depassait la limite des objets fixé à %d. Cet utilisateur n'aura pas les "
+"droits ACL qu'il devrait avoir."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Erreur de filtre"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"Cet identifiant (uid) n'est pas unique au sein de l’annuaire LDAP. Veuillez "
+"contacter votre administrateur système."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Le filtre est incomplet !"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Avertissement"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Erreur de permissions"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr "Objet :"
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Vous n'êtes pas autorisé à créer un nouvel instantané pour %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr "Erreur :"
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Vous n'êtes pas autorisé à restaurer un instantané de %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr "Le trigger a renvoyé une erreur !"
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr "Vous n'êtes pas autorisé à supprimer l'instantané pour %s."
+msgid "Exit code: %d"
+msgstr "Code de sortie: %d"
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "PAS DE TITRE"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr "Valeur invalide :"
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Créer"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
-
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Gestion des listes de contrôle d'accès (ACL)"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr "Erreur fatale de Fusiondirectory"
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Rôles ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr "Erreur Fatale"
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
-"Type d'ACL inconnu '%s'!\n"
-"Vous devez exécuter \"fusiondirectory-setup --migrate-acls\" pour migrer vos acls au nouveau format."
+"FATAL : Erreur lors de la connexion au serveur LDAP. Le serveur a répondu "
+"\"%s\"."
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Entrée inconnue '%s' !"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
+"Il semble que votre mot de passe soit expiré. Veuillez utiliser <a "
+"href=\"recovery.php\">la récupération de mot de passe</a> pour le changer."
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Tous les utilisateurs"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Avertissement de performance"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr "Erreur inattendue ppolicy \"%s\", veuillez contacter l'administrateur"
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 "La performance de votre annuaire est faible : la dernière requête a duré "
 "%.2fs !"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
-msgstr ""
-"Impossible de créer automatiquement des sous-arbres pour la branche « %s » :"
-" non supporté"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr "L'analyse du résultat LDAP a échoué"
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr "Aucun résultat LDAP à analyser"
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
-"Impossible de créer automatiquement des sous-arbres pour la branche «%s» : "
+"Impossible de créer automatiquement des sous-arbres avec le RDN «%s» : "
 "object class non trouvée !"
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "lors de l'opération sur '%s' en utilisant le serveur LDAP '%s'"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+"Impossible de créer automatiquement des sous-arbres avec le RDN «%s» : non "
+"supporté"
+
+#: include/class_ldap.inc:1077
+#, php-format
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr "%s (%s, lors de l'opération sur \"%s\" en utilisant le serveur LDAP \"%s\")"
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "lors de l'opération sur le serveur LDAP %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr "%s (lors de l'opération sur le serveur LDAP \"%s\")"
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr "proc_open a échoué lors de l’exécution de ldapsearch"
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 "Erreur ligne %s, la première ligne d'une entrée ne peut pas commencer par un"
 " espace"
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 "Erreur ligne %s, les références à un fichier externe ne sont pas prises en "
 "charge."
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr "Erreur ligne %s, l'attribut «%s» n'a pas de valeur"
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr "Erreur ligne %s, une entrée ne peut avoir qu'un seul dn"
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr "Erreur ligne %s, une entrée doit commencer par le dn"
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 "Erreur lors de l'importation du dn : «%s», veuillez vérifier votre fichier "
 "LDIF à partir de la ligne %s !"
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr "Création d’un instantané"
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr "DN de l’objet dont vous créez un instantané"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Date"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr "Date et heure de création de l’instantané"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr "Raison"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr "Raison pour la création de cet instantané"
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr "DN"
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Restaurer"
-
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr "Restauration d’instantanés"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Erreur lors de l'ajout d'un verrou. Contactez les développeurs !"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Instantanés"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Impossible de créer des informations de verrouillage dans l'annuaire LDAP. "
+"Veuillez contacter votre administrateur !"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
-msgstr "Instantanés existants pour cet objet"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "Le serveur LDAP a retourné : %s"
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Liste des départements"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Détection de verrou multiple pour un même objet. Ceci ne devrait pas "
+"arriver. Effacement des références multiples."
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Département"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
+msgstr "Le temps d'attente du verrou à été dépassé !"
 
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Éditer malgré tout"
+
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Domaine"
@@ -1976,127 +2112,142 @@ msgstr "Domaine"
 msgid "domain"
 msgstr "domaine"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
-msgstr "Organisation"
+msgstr "Organisme"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
-msgstr "organisation"
+msgstr "organisme"
+
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Département"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Départements"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "département"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Propriétés"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Nom de %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Un nom pour ce %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Une courte description de %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Catégorie"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Catégorie de %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr "Site Web"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr "Site Web de %s"
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Responsable"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Manager de %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Lieu"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Département"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Pays"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adresse"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Adresse postale pour %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Téléphone"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Numéro de téléphone"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "Numéro de fax"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nom"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Composant de domaine"
@@ -2105,271 +2256,238 @@ msgstr "Composant de domaine"
 msgid "domain component"
 msgstr "composant de domaine"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "pays"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
-msgstr "Code du pays"
+msgstr "Code Pays"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
-msgstr "un code pays de ISO 3166 en deux caracteres"
+msgstr "Un code de pays à deux lettres de la norme ISO 3166"
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Lieu"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "lieu"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Gérer les départements"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 "Gérer les nœuds des départements, pays, composants de domaine, domaines, "
-"localités et organisations"
+"localités et organismes"
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Utilisateurs et groupes"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Tâches"
+
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
+msgstr "Fourni un mécanisme pour créer et gérer des tâches"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
+msgstr "Tableau de bord des tâches"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
+msgstr "Fourni un mécanisme de rapport pour les tâches"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Rapports"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
+msgstr "Renouveler la tâche sélectionnée"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
+msgstr "Erreur lors de la mise à jour : \"%s\" !."
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Statut"
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
+msgstr "Modèle de mail"
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
+msgstr "Gère les modèles de mails"
+
+#: plugins/admin/groups/class_groupManagement.inc:41
 #: plugins/personal/roles/class_userRoles.inc:33
 msgid "Groups and roles"
 msgstr "Groupes et rôles"
 
-#: plugins/admin/groups/class_groupManagement.inc:36
+#: plugins/admin/groups/class_groupManagement.inc:42
 msgid "Manage groups and roles"
 msgstr "Gérer les groupes et rôles"
 
-#: plugins/admin/groups/class_groupManagement.inc:37
+#: plugins/admin/groups/class_groupManagement.inc:43
 msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr "Permet de gérer des groupes d'objets, des groupes POSIX et des rôles "
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr "Action annulée"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Déclencher une action"
+
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Programmer une action"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
+#: plugins/admin/groups/class_groupManagement.inc:136
 #, php-format
 msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 "Le système %s n'a pas d'adresse mac définie, impossible de déclencher "
 "l'action"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
+#: plugins/admin/groups/class_groupManagement.inc:145
 #, php-format
 msgid "Could not find system %s, cannot trigger action"
 msgstr "Impossible de trouver le système %s, impossible d’exécuter l'action"
 
-#: plugins/admin/groups/class_groupManagement.inc:176
+#: plugins/admin/groups/class_groupManagement.inc:169
 #, php-format
-msgid "System %s is currently installing"
-msgstr "Le système %s est actuellement en cours d'installation"
+msgid "System %s is currently installing, cannot trigger action"
+msgstr ""
+"Le système %s est actuellement en cours d'installation, ne peut pas "
+"déclencher d'action"
 
 #: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr "Service d’infrastructure"
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/groups/class_groupManagement.inc:200
 msgid "Action triggered"
 msgstr "Action déclenchée"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Action called without error(results were \"%s\")"
-msgstr "Action appelée sans erreur (résultat : \"%s\")"
+msgid "Action called without error (results were \"%s\")"
+msgstr "Action appelée sans erreur (résultat : «%s»)"
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Action called without error(result was \"%s\")"
+msgid "Action called without error (result was \"%s\")"
 msgstr "Action appelée sans erreur (résultat : \"%s\")"
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Rôle"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Éditer les propriétés du rôle"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Éditer les propriétés posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Afficher les groupes utilisateurs"
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Afficher les rôles organisationels"
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Afficher les groupes d’applications"
-
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
-msgstr "Afficher les groupes de groupes"
-
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
-msgstr "Afficher des groupes non identifiés"
-
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Afficher les groupes principaux"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Afficher les groupes de courriel"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Afficher les groupes Samba"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr "Afficher les entrées DSA"
-
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Afficher les groupes de serveurs"
-
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Afficher les groupes de stations de travail"
-
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Afficher les groupes de terminaux"
-
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Afficher les groupes d’imprimantes"
-
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Afficher les groupes de téléphones"
-
-#: plugins/admin/groups/class_ogroup.inc:61
-#, php-format
-msgid "Unknown type : %s"
-msgstr "Type inconnu : %s"
-
-#: plugins/admin/groups/class_ogroup.inc:69
-#, php-format
-msgid "Non existing dn: %s"
-msgstr "DN inexistant : %s"
-
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Groupe d'objets"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Information du groupe d’objets"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Groupe"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Nom du groupe"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Description courte pour ce groupe"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Propriétaire"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Objets membres"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Objets membres de ce groupe"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Systèmes"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Mode"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Type d'autorisation pour ces hôtes"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "désactivé"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "accès complet"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "permettre l'accès a ces hôtes"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr "Autoriser seulement ce groupe à se connecter sur ces listes d'hôtes"
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 "Mettre des stations de travail et des terminaux dans le même groupe est "
 "interdit"
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Liste des groupes"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Déclencher une action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Membres"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Programmer une action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Rôle"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Information du rôle"
 
@@ -2387,8 +2505,8 @@ msgid "Description of the role"
 msgstr "Description du rôle"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Numéro de téléphone"
 
@@ -2404,184 +2522,182 @@ msgstr "Membres du rôle"
 msgid "Add users for the role"
 msgstr "Ajouter des utilisateurs dans le rôle"
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Affectation ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Affectation ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Affectation des listes de contrôle d’accès"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Affectations"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Affectations de rôles ACL pour cette base"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Affectations sur l'objet ou la branche %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ", et %d autres"
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr "Boite de dialogue d’affectation ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Boite de dialogue des affectations de rôles de contrôle d’accès"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Mode"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 "Est-ce que cela doit être appliqué à la sous-arborescence complète ou "
 "seulement la base ?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Sous-arbre"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Base seulement"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Rôle à appliquer"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Tous les utilisateurs"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Appliquer cette ACL pour tous les utilisateurs LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Membres"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr "Utilisateurs et groupes à qui appliquer cette ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
-msgstr ", et %d autres"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
+msgstr "Avancé"
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "Affectation ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr "Avertissement"
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Affectation ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
+"Ces options vous permettent de limiter les membres ou les cibles par filtre "
+"LDAP. Le filtre de membre ne peut pas utiliser de masques et il est sûr de "
+"renvoyer un nombre quelconque de résultats car il ne sera appliqué qu'à "
+"l'utilisateur connecté. Pour le filtre cible, évitez d'utiliser un filtre "
+"renvoyant trop de résultats. Si vous utilisez des masques de modèle, évitez "
+"de le faire sur des champs modifiables par l'utilisateur."
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Affectation des listes de contrôle d’accès"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr "Filtre de membre"
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Affectations"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
+"Filtre LDAP auquel un membre doit correspondre pour obtenir les droits"
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "Affectations de rôles ACL pour cette base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr "Filtre cible"
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
-msgstr "Affectations sur l'objet ou la branche %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
+msgstr ""
+"Filtre LDAP auquel un dn doit correspondre pour être réellement concerné. "
+"Peut utiliser des masques de modèles pour les champs de l'utilisateur. "
+"Exemple: (manager = %dn%)."
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr "Création d'affectation ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr "Créer une affectation d'ACL sur un dn arbitraire"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr "Dn"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr "DN pour lequel vous souhaitez ajouter des affectations"
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr "Impossible de trouver le dn demandé dans l'annuaire LDAP"
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "Affectations ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr "Gestion des affectations ACL "
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr "Gérer les affectations des rôles ACL aux utilisateurs"
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Liste des utilisateurs"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Nom de famille"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Prénom"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Utilisateur"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Verrouiller les utilisateurs"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Déverrouiller les utilisateurs"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Appliquer un modèle"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Nouvel utilisateur depuis ce modèle"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Éditer l’utilisateur"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Supprimer l'utilisateur"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Utilisateurs"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Gérer les utilisateurs"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr "Gérer les comptes utilisateurs et leurs propriétés"
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Verrouillage du compte"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
@@ -2590,207 +2706,283 @@ msgstr ""
 "La méthode de mot de passe «%s» ne permet pas le verrouillage. Le compte "
 "«%s» n'a pas été verrouillé !"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
-"Le verrouillage a échoué en utilisant la méthode de mot de passe \"%s\". Le "
-"compte \"%s\" n'a pas été verrouillé!"
-
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Déverrouiller le compte"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Verrouiller le compte"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Compte utilisateur"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Information du compte utilisateur"
+"Le verrouillage grâce a la méthode de mot de passe \"%s\" a échoué. Le "
+"compte \"%s\" n'a pas été verrouillé !"
 
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Contient les paramètres pour ces objets : %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Rôles de contrôle d'accès (ACL)"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "Rôle ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Un nom pour ce rôle"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Description courte pour ce rôle"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "ACLs"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr "ACLs qui font partie de ce groupe"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Pas d'ACL pour cette catégorie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL pour ces objets : %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Éditer les catégories ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Remettre à zéro les catégories ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Liste des catégories ACL disponibles"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Tous les objets dans le sous-arbre actuel"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr "Éditer l’ACL pour \"%s\""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "lecture"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Gestion des rôles ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "écriture"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "Gérer les rôles ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Afficher/Cacher les paramètres avancés"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr "Configuration du système de tâches de FusionDirectory"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Créer des objets"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr "Configuration des tâches"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Déplacer des objets"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr "Branche des tâches"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Supprimer des objets"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr "Branche dans laquelle les tâches seront stockés"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Sur son propre nœud seulement"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr "Configuration de l'option anti-spam"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "L'objet au complet"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr "Dernier message envoyé"
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "Gestion des rôles ACL"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr "Nombre maximum d'e-mails traités en une fois"
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
-msgstr "Gérer les rôles ACL"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr "Sélectionnez le nombre maximal d'e-mails à traiter"
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr "Intervalle de temps entre le traitement des e-mails (Minutes)"
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+"Sélectionnez l'intervalle de temps minimum entre le traitement des e-mails"
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr "Configuration des modèles de mail"
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr "Configuration du plugin modèles de mail"
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr "Branche des modèles de mail"
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr "Branche où seront stockés les modèles d'email"
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Activer les instantanés"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Cela vous permet de sauver certaines entrées et de les restaurer plus tard"
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Base des instantanés"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+"Branche LDAP à l'intérieur de laquelle les instantanés d'objets seront "
+"stockés"
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Configuration des plugins"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "Configuration des plugins FusionDirectory"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Groupes d'objets"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "Branche des groupes"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "La branche où seront stockés les groupes d'objets"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr "Forcer la demande de mot de passe"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
-"Utile si vous ajoutez un hook utilisant le mot de passe et que la méthode "
-"utilisée est SASL"
+"Utile si vous ajoutez un trigger utilisant le mot de passe et que la méthode"
+" utilisée est SASL"
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Configuration du tableau de bord"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr "Configuration du plugin Tableau de bord pour FusionDirectory"
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Tableau de bord - Schéma de nommage"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Nombre de chiffres"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "Le nombre de chiffres à utiliser après le préfixe"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Préfixes"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr "Préfixes à utiliser pour les noms de machines"
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "Tableau de bord - Utilisateurs expirés"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Nombre de jours"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
@@ -2799,6 +2991,8 @@ msgstr ""
 " dans la liste «Prochains comptes expirés» du tableau de bord"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -2806,48 +3000,50 @@ msgstr "Plugins"
 msgid "Configuration for plugins"
 msgstr "Configuration des plugins"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Récupération de mot de passe"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr "Récupération"
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Paramètres pour la fonctionnalité de récupération de mot de passe"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Paramètres de récupération de mot de passe"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Activer la récupération de mot de passe"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr "Activer ou non la fonctionnalité de récupération de mot de passe"
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Courriel émetteur"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "Adresse de courriel depuis laquelle les messages seront envoyés"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Validité du lien (minutes)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Nombre de minutes avant l'expiration du lien"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "Sel pour les jetons"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2855,54 +3051,54 @@ msgstr ""
 "Ceci est juste une mesure de sécurité, vous pouvez mettre ce que vous voulez"
 " ici, même des caractères au hasard"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Autoriser l’utilisation des adresses de courriel alternatives"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 "Les utilisateurs pourront entrer une de leurs adresses de courriel "
 "alternatives pour récupérer leur mot de passe"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Attribut de l’identifiant"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 "Habituellement «uid», mais vous pouvez utiliser quelque chose d'autre par "
 "exemple dans le cas de l’utilisation d'un SSO"
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Premier message"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Sujet"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Sujet du premier courriel"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Lien de réinitialisation du mot de passe"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 "Corps du message (le premier %s est l'identifiant, le second est le lien)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2911,7 +3107,7 @@ msgstr ""
 "Corps du premier message, envoyé lorsque l'utilisateur demande un nouveau "
 "mot de passe. Utilisez %s pour l'identifiant et le lien de récupération."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2930,24 +3126,24 @@ msgstr ""
 "\n"
 "Ce lien est seulement valide pendant 10 minutes"
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Second message"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Sujet du second courriel"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Réinitialisation du mot de passe réussie !"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Corps du message (%s est l'identifiant)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2956,7 +3152,7 @@ msgstr ""
 "Corps du second message, envoyé pour confirmer que le mot de passe a été "
 "changé. Utilisez %s pour l'indentifiant de l'utilisateur."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2969,29 +3165,86 @@ msgstr ""
 "Votre mot de passe a été changé. \n"
 "Votre identifiant de connexion est toujours %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr "Triggers"
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr "Configuration des triggers"
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr "Afficher le résultat des triggers"
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+"Si activé, après réussite du trigger, le résultat est affiché à "
+"l'utilisateur dans une boite de dialogue."
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr "trigger qui sont appelés quand des actions spécifiques sont faites"
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr "Onglet"
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr "L’onglet concerné par ce trigger"
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Quand appeler cette commande"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr "Désactivé"
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr "Utilisez-le pour désactiver temporairement un déclencheur"
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr "Commande"
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Commande qui sera appelée"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configuration"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "Configuration de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr "Écran de configuration de FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Thème et apparence"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Langue"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2999,39 +3252,39 @@ msgstr ""
 "Langue de l’application. «Automatique» utilisera la langue demandée par le "
 "navigateur. Ce paramètre peut être configuré par utilisateur."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Thème"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Thème à utiliser"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Fuseau Horaire"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Fuseau horaire à utiliser"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Paramètres du cœur"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "Limite du nombre d'objets LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr "Définit le nombre maximal d'objets LDAP recupérés par défaut."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Verrouillage de l’édition"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -3039,51 +3292,30 @@ msgstr ""
 "Vérifie si une entrée en cours d'édition a été modifiée par une application "
 "autre que FusionDirectory en même temps."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Activer la journalisation"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Activer la journalisation coté FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr "Validation des schémas"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr "Activer la validation des schémas lors de la connexion"
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Activer les instantanés"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-"Cela vous permet de sauver certaines entrées et de les restaurer plus tard"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Base des instantanés"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-"Branche LDAP à l'intérieur de laquelle les instantanés d'objets seront "
-"stockés"
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
-msgstr "Clés étrangères joker"
+msgstr "Joker sur les clés étrangères "
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 "Active les recherches de caractères génériques comme member=* lors du "
@@ -3091,50 +3323,60 @@ msgstr ""
 "existants pour s'assurer que les clés étrangères sont respectées. Lent sur "
 "les grands arbres."
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Paramètres de mots de passe"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr "Méthode de chiffrement autorisées"
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+"Méthode de chiffrement de mot de passe qui peuvent être utilisés pour les "
+"mots de passe utilisateur"
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "Méthode de hachage des mots de passe par défaut"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "Méthode de hachage à utiliser par défaut"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Forcer la méthode de hachage par défaut"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 "Forcer l'utilisation de la méthode de hachage des mots de passe par défaut "
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Taille minimum des mots de passe"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Longueur minimum des mots de passe utilisateurs"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Différence minimum des mots de passe"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 "Nombre minimum de caractères différents par rapport au précédent mot de "
 "passe"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Activer l'expiration des comptes"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
@@ -3143,31 +3385,31 @@ msgstr ""
 "FusionDirectory et renouvellement forcé des mots de passe ou blocage du "
 "compte"
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "Royaume SASL"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr "Opération Extérieur SASL"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr "Attribut à stocker dans l'attribut «userPassword»"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Connexion et session"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr "Attribut LDAP utilisé comme identifiant lors de la connexion."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Forcer les connexions chiffrées"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3175,173 +3417,185 @@ msgstr ""
 "Activer les vérifications PHP de sécurité pour forcer à utiliser HTTPS lors "
 "de l’accès à l'interface web."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Avertir si la session n’est pas chiffrée"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 "Affiche un avertissement pour indiquer l'usage du protocole HTTP au lieu de "
 "HTTPS."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Durée de vie de la session"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr "Définit la durée de vie des sessions en secondes (0 pour désactiver)."
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr "Authentification HTTP basique"
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-"Utiliser le protocole d'authentification Basic HTTP au lieu du formulaire de"
-" connexion."
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
-msgstr "Authentification  par entêtes HTTP"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
+msgstr "Méthode de connexion"
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
-"Utiliser l'authentification par entêtes HTTP au lieu du formulaire de "
-"connexion."
+"Quelle méthode de connexion doit être utilisée pour se connecter à "
+"FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr "Entête HTTP"
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr "Nom de l'entête contenant l'identification utilisateur."
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr "Clé privée"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr "Chemin vers la clé privée de FusionDirectory. Inutilisé actuellement."
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr "Certificat"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 "Chemin vers le certificat public de FusionDirectory. Inutilisé actuellement."
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr "Certificat CA"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 "Chemin d'accès au CA public. Utilisé pour valider l'hôte du serveur "
 "Argonaut."
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr "CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr "Activer CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr "CAS sera utilisé à la place de l’identification LDAP"
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr "Chemin du fichier contenant le certificat du CA public du serveur CAS"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Hôte"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr "Hôte du serveur CAS"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Port"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr "Port d’écoute du serveur CAS"
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr "Contexte CAS"
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr "Contexte CAS à utiliser"
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr "Erreur verbeuse"
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr "Activez les erreurs détaillées dans phpCAS. A éviter en production."
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr "Bibliothèque CAS 1.6 "
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr "Activer si la bibliothèque CAS >= 1.6 est utilisée."
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr "Service client"
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr "Le nom du service client"
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Stockage des utilisateurs et groupes"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Attribut pour le DN utilisateur"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr "Attribut à utiliser pour le début du DN des utilisateurs"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr "Motif CN"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr "Le motif à utiliser pour construire le champ common name"
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr "Prénom obligatoire"
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+"Indique si le prénom (givenName) doit être un champ obligatoire pour les "
+"utilisateurs"
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Règles de nommage strictes"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr "Active la vérification stricte des noms d’utilisateurs et de groupes"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr "Branche des utilisateurs"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "La branche où sont stockés les utilisateurs."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr "Branche des rôles ACL"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr "La branche où sont stockés les rôles ACL."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr "Restreindre les membres des rôles"
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
@@ -3349,22 +3603,22 @@ msgstr ""
 "Lorsqu'activé, uniquement les utilisateurs de la même branche ou les membres"
 " des groupes de la même branche peuvent être ajouté dans un rôle."
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr "Champs d'adresse séparés"
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 "Exposer les champs street, postOfficeBox et postalCode au lieu de "
 "postalAddress."
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr "Modèle d'adresse postale"
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
@@ -3372,28 +3626,40 @@ msgstr ""
 "Lorsque vous utilisez des champs d'adresse séparés, vous pouvez utiliser un "
 "motif pour remplir le champ postalAddress."
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr "Taille maximale de l'avatar"
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+"Largeur et hauteur maximales de l'image de l'utilisateur en pixels. Les "
+"images téléchargées plus grandes seront redimensionnées."
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Debogage"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Afficher les erreurs"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr "Afficher les erreurs PHP"
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 "Afficher les erreurs PHP dans la partie haute de l'écran. Cela sera à "
 "désactiver en environnement de production, car des mots de passe peuvent "
 "être affichés."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Durée maximale d'une requête LDAP"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
@@ -3401,11 +3667,11 @@ msgstr ""
 "Arrêter les opérations LDAP si aucune réponse n'est obtenue dans le délai "
 "spécifié en secondes."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Journaliser les statistiques LDAP"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3413,23 +3679,31 @@ msgstr ""
 "Stocker les statistiques LDAP via syslog. Cela aide à trouver les problèmes "
 "d'indexation et de mauvais filtres de recherche."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Niveau de débogage"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Afficher certaines informations à chargement de page."
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr "Enregistrer les messages de débogage"
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr "Envoie également la sortie de débogage à syslog"
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Divers"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Afficher les sommaires en bas des listes"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3437,11 +3711,11 @@ msgstr ""
 "Détermine si une barre d'état sera affichée en bas de la liste pour indiquer"
 " les nombres et types d'objets affichés"
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr "Afficher l’onglet ACL sur tous les objets"
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
@@ -3449,159 +3723,208 @@ msgstr ""
 "Pour des configurations ACL très spécifiques où vous avez besoin de donner "
 "des droits sur un seul objet."
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr "Catégories de département"
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 "Les catégories disponibles dans le menu déroulant pour les départements"
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 "Utilisez ceci pour cacher une entrée de menu à des groupes spécifiques "
 "d'utilisateurs"
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr "Groupe ou rôle"
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr "Plugin à mettre en liste noire"
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr "Liste noire du menu"
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr "Limite de filtre cible ACL"
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+"Définit le nombre maximal d'entrées qu'un filtre cible d'ACL est autorisé à "
+"renvoyer"
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatique"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Groupe %s"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "Hooks qui sont appelés quand des actions spécifiques sont faites"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Rôle %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
-msgstr "Onglet"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
+msgstr ""
+"Il semble que la langue sélectionnée \"%s\" ne soit pas installée sur le "
+"système. Veuillez l'installer ou en choisir un autre."
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "L’onglet concerné par ce hook"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
+msgstr "Liste des plugins"
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Quand appeler cette commande"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Version"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
-msgstr "Commande"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
+msgstr "Auteurs"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "Commande qui sera appelée"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr "Origine"
+
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
+msgstr "Fournisseur"
+
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr "URL d'assistance"
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Tableau de bord"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr "Statistiques et informations diverses"
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr "Voir le tableau de bord"
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
-msgstr "Afficher le résultat des hooks"
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Statistiques"
 
-#: plugins/config/class_configInLdap.inc:441
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
 msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
-"Si activé, après réussite du hook, le résultat est affiché à l'utilisateur "
-"dans une boite de dialogue."
-
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatique"
+"Les statistiques pour le type «%s» n'ont pas pu être calculées en raison de "
+"l'erreur suivante : %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Statistiques sur les utilisateurs"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Statistiques utilisateurs"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Statistiques des groupes"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Comptes expirés"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Identifiant"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Date d’expiration"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Courriel"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
-"Les statistiques utilisateurs n'ont pas pu être calculées en raison de "
-"l'erreur LDAP suivante : %s"
+"Les statistiques n'ont pas pu être calculées en raison de l'erreur LDAP "
+"suivante : %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
-"Les statistiques de groupes n'ont pas pu être calculé en raison de l'erreur "
-"LDAP suivante : %s"
+"Les statistiques pour les groupes n'ont pas pu être calculées en raison de "
+"l'erreur LDAP suivante : %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
-"Les statistiques sur les utilisateurs expires n'ont pas pu être calculé en "
-"raison de l'erreur LDAP suivante : %s"
+"Les informations sur l'expiration des comptes n'ont pas pu être calculées en"
+" raison de l'erreur LDAP suivante : %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
-"Les statistiques sur les utilisateurs expires n'ont pas pu être calculé en "
-"raison de l'erreur :  %s"
+"Les informations sur l'expiration des comptes n'ont pas pu être calculées en"
+" raison de l'erreur suivante : %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr "Pas trouvé (%s)"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr "Mots de passes"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr "Statistiques sur les mots de passe"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr "Statistiques de mots de passe"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
@@ -3610,113 +3933,81 @@ msgstr ""
 "Les statistiques de mots de passe n'ont pas pu être calculées en raison de "
 "l'erreur LDAP suivante : %s"
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Tableau de bord"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr "Statistiques et informations diverses"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "Rapports"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr "Voir dashboard"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Statistiques"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-"Les statistiques pour le type «%s» n'ont pas pu être calculées en raison de "
-"l'erreur suivante : %s"
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr "Abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr "Information d'abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr "Informations sur votre abonnement FusionDirectory"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr "Texte d'information pour l'abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr "Nom de l'abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "Id"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr "Identifiant d'abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "Type d'inscription"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr "Contrat"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr "Référence du contrat"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Date de début"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr "Date de début de cet abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "Date de fin"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr "Date de fin de cet abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr "Importez votre abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr "Texte d'information pour l'abonnement expiré"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr "Importer l'abonnement"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Importer"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
@@ -3726,7 +4017,7 @@ msgstr ""
 "FusionDirectory. Veuillez visiter %s pour une liste des options disponibles."
 " "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3736,36 +4027,166 @@ msgstr ""
 "Veuillez visiter %s pour le renouveler."
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr "Erreur d'importation"
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr "Pas de données. Avez-vous oublié de télécharger un fichier ?"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr "Échec de l'analyse du fichier importé"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr "Section \"%s\" manquante dans le fichier importé"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr "Attribut \"%s\" manquant dans le fichier importé"
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr "Tâches granulaires"
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr "Gestion granulaire des tâches permettant des rapports détaillés"
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr "Tâches granulaires"
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr "Nom détaillé de la tâche"
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr "Nom pour cette tâche"
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr "Adresse e-mail à laquelle les messages seront envoyés"
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr "Adresse de courriel depuis laquelle les messages seront envoyés"
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Planning"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+"Tâches Générique | L'enregistrement créera des sous-tâches non modifiables"
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr "Nom de la tâche"
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr "Création de sous-tâches - Démarrage de cette tâche"
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr "Activer les sous-tâches"
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr "Déclencher la création de cette tâche et des sous-tâches associées"
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr "Tâches Courrier"
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr "Tâches Objet de messagerie"
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr "Tâche Objet de messagerie"
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr "Sélection d'un objet de modèle de courrier"
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr "Destinataires Utilisateurs et/ou Groupes"
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr "Utilisateurs et groupes à qui assigner cette tâche"
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr "Type d'adresse e-mail souhaitée"
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr "Type de courrier - Si non trouvé, la priorité s'appliquera"
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr "Sélection d'objet de type de courrier"
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+"Erreur : \"%s\", existe déjà ! La modification des tâches existantes est "
+"interdite."
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr "Objet du mail"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr "Nom du modèle de mail"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr "Sujet du courriel"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr "Corps du modèle de courriel"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr "Texte à envoyer au destinataire"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr "Signature du courriel"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr "Pièce jointe"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr "Importer un fichier pour cet e-mail"
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr "Lire reçu"
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Éditer les groupes et rôles de l’utilisateur"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr "Appartenance aux groupes"
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3773,16 +4194,38 @@ msgstr "Appartenance aux groupes"
 msgid "Roles membership"
 msgstr "Appartenance aux rôles"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr "Impossible de supprimer l'appartenance au groupe %s:%s"
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr "Impossible de supprimer l'appartenance au rôle %s:%s"
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr "Impossible d'ajouter l'appartenance au groupe %s:%s"
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr "Impossible d'ajouter l'appartenance au rôle %s:%s"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Méthode de mot de passe"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Méthode de hashage des mots de passe à utiliser"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3790,158 +4233,213 @@ msgstr "Méthode de hashage des mots de passe à utiliser"
 msgid "Password"
 msgstr "Mot de passe"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Mot de passe (Laisser vide si vous ne voulez pas en changer)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Mot de passe (de nouveau)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Même mot de passe qu’au dessus, pour éviter les erreurs"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr "Verrouillé"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr "Est ce que les comptes créés avec ce modèle seront verrouillés"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr "Trop d'éléments dans la valeur du tableau %d au lieu de %d"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr "Pas assez d'éléments dans la valeur du tableau: %d au lieu de %d"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+"La valeur de tableau pour le champ de mot de passe doit avoir des clés "
+"numériques"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+"Type de valeur non valide pour le champ de mot de passe, doit être un "
+"tableau ou une chaîne"
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Utilisateur"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Information du compte utilisateur"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Compte utilisateur"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr "Statut de verrouillage de l'utilisateur"
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Informations personnelles"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Nom de famille"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Nom de famille de cet utilisateur"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Prénom"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Prénom de cet utilisateur"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr "Initiales"
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+"Les initiales de tout ou partie des noms de la personne, mais pas le(s) nom "
+"de famille"
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Une courte description de l'utilisateur"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Photo"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "L'avatar pour cet utilisateur"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr "Informations de contact organisationnelles"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Adresse postale professionnelle"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "No. de bureau."
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Numéro du bureau"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Numéro de téléphone professionnel"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Mobile"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Numéro de téléphone portable professionnel "
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Bip"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "Numéro de bip professionnel"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Numéro de fax professionnel"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Site web"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "Site web personnel"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "Compte utilisateur"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr "Identifiant de l'utilisateur"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Langue préférée"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Mot de passe de l'utilisateur"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Informations de contact personnelles"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Nom à afficher"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 "Nom de l'utilisateur tel qu'il devrait apparaître. Utilisé par le carnet "
 "d'adresse Exchange."
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
-msgstr "Adresse postale"
+msgstr "Adresse personnelle"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Adresse postale personnelle"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Téléphone privé"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Numéro de téléphone privé"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Informations sur l'organisation"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Titre"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
@@ -3949,80 +4447,80 @@ msgstr ""
 "Titre d'une personne dans leur contexte organisationnel. Chaque titre est "
 "une valeur de cet attribut multivalué"
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr "Unité"
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr "Unité organisationnelle à laquelle cet utilisateur appartient"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Numéro de département"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Numéro de département"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Numéro d'employé"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Numéro d'employé"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Type d'employé"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr "Rue"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr "Partie de l’adresse contenant la rue"
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr "Boîte postale"
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Code postal"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr "La ppolicy \"%s\" n’a pas été trouvée dans le LDAP !"
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr "Vous n’êtes pas autorisé à changer votre mot de passe"
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 "Vous devez attendre %d secondes avant de changer votre mot de passe à "
 "nouveau"
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "Le mot de passe est dans l'historique des mots de passe récents"
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr "Le nouveau mot de passe est le même que l’ancien"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Vous devez spécifier votre mode de passe actuel pour continuer."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
@@ -4030,43 +4528,43 @@ msgstr ""
 "Les mots de passe entrés dans les champs 'Nouveau mot de passe' et 'Répéter "
 "le nouveau mot de passe' ne correspondent pas."
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nouveau mot de passe"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Le nouveau et l'ancien mot de passe sont trop similaires."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr "Le nouveau mot de passe est trop court."
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 "Le mot de passe contient potentiellement des caractères Unicode qui sont "
 "problématique !"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Références"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Bienvenue %s !"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Terminé"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Suivant"
 
@@ -4144,10 +4642,6 @@ msgstr ""
 "Mot de passe pour le compte administrateur à utiliser pour l’identification "
 "au LDAP"
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Statut"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Statut actuel"
@@ -4174,39 +4668,39 @@ msgstr ""
 "Cette page permet la configuration de base de l'annuaire LDAP pour "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "La connexion anonyme au serveur '%s' a échoué !"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "La connexion sous l’utilisateur '%s' a échoué !"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Réessayer"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La connexion anonyme au serveur '%s' a réussi."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Rafraîchir"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Veuillez introduire un utilisateur et un mot de passe !"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "La connexion sous l'utilisateur '%s' au serveur '%s' a réussi !"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
@@ -4215,7 +4709,7 @@ msgstr ""
 "%s\n"
 "Schéma \"%s\" : %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "Vérification des extensions et modules PHP"
 
@@ -4231,32 +4725,32 @@ msgstr "Vérification de l'installation"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Vérification de base de la version de PHP et des extensions"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Vérification de la version de PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP doit être à la version %s ou supérieure."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Veuillez mettre à jour vers une version supportée."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory a besoin de ce module pour dialoguer avec votre serveur "
 "LDAP."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory a besoin de ce module pour afficher l'interface multilingue."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4264,31 +4758,14 @@ msgstr ""
 "FusionDirectory a besoin de ce module pour dialoguer avec les différents "
 "types de serveurs et de protocoles."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr "Vérification d'entiers pseudo-aléatoires sécurisés par cryptographie"
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-"Vous devez utiliser PHP> = 7 ou activer le module openssl pour que "
-"FusionDirectory puisse générer des entiers pseudo-aléatoires sécurisés par "
-"cryptographie."
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr "Veuillez passer à PHP7 ou activer le module openssl."
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 "FusionDirectory a besoin de ce module pour encoder les variables lors de "
 "l'utilisation dans du javascript."
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
@@ -4296,54 +4773,46 @@ msgstr ""
 "FusionDirectory a besoin de ce module pour filtrer les variables avec un "
 "filtre spécifique."
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory a besoin de ce module pour l’intégration Samba."
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory a besoin du module 'mhash' ou 'sha1' pour l’utilisation du "
-"chiffrement SSHA."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory a besoin de ce module pour dialoguer avec un serveur IMAP."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 "FusionDirectory a besoin de ce module pour gérer les chaînes de caractère "
 "unicode."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory a besoin de ce module pour gérer les images."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "module de compression"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory a besoin de ce module pour gérer les instantanés."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr "PHP utilise cette variable pour effacer des anciennes sessions."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4351,7 +4820,7 @@ msgstr ""
 "Mettre cette valeur à 1 jour permet d'éviter de perde les cookies et les "
 "sessions avant qu'elles ne soient réellement expirées."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4359,12 +4828,12 @@ msgstr ""
 "Cherchez 'session.gc_maxlifetime' dans votre php.ini et mettez le à 86400 ou"
 " plus."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Éteint"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4372,13 +4841,13 @@ msgstr ""
 "Pour pouvoir utiliser FusionDirectory sans problèmes, la variable "
 "session.auto_start doit être à 'Off' dans votre php.ini."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Cherchez la variable 'session.auto_start' dans votre php.ini et mettez la à "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4387,14 +4856,14 @@ msgstr ""
 "causera des erreurs imprévisibles, qui ne seront pas reproductibles ! "
 "Augmentez la mémoire pour les installations plus complexes."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Cherchez 'memory_limit' dans votre fichier php.ini votre et mettez le à "
 "'128M' ou plus."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4402,15 +4871,15 @@ msgstr ""
 "Cette option défini la gestion des sorties, mettez cette option à 'Off' pour"
 " améliorer les performances."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Cherchez 'implicit_flush' dans votre php.ini et mettez le à 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Le temps d'exécution doit être au moins de 30 secondes."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4418,7 +4887,7 @@ msgstr ""
 "Chercher l'option 'max_execution_time' dans votre php.ini et mettez la à "
 "'30' ou plus."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4426,28 +4895,28 @@ msgstr ""
 "Augmentez la sécurité de votre serveur en mettant l'option expose_php à "
 "'Off'. PHP n'enverra pas d'information à propos du serveur."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Cherchez 'expose_php' dans votre php.ini et mettez le à 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrer"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Inspection LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analyse de votre annuaire LDAP pour la compatibilité avec FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr "Donner tous les droits aux utilisateurs sur cette branche"
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4455,84 +4924,86 @@ msgstr ""
 "Permet aux utilisateurs d'éditer leurs propres informations (onglets "
 "générique et posix, à n'utiliser que sur la base)"
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Permet aux utilisateurs de changer leur mot de passe (à n’utiliser que sur "
 "la base)"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Inspection des classes d'objets de l'objet racine"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Vérification des permissions sur l'annuaire LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Recherche d’utilisateurs invisibles"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Vérification du superadministrateur"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr "Vérification des rôles ACL et groupes par défaut"
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Recherche d'utilisateurs en dehors de la branche des utilisateurs"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Recherche de groupes en dehors de la branche des groupes"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Recherche de départements invisibles"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Recherche d’UID en double"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr "Recherche de groupes posix en dehors de la branche des groupes"
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
-msgstr "Recherche de GID en double"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
+msgstr "Vérification pour les UID en double"
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Vérification pour les gid en double"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "La requête LDAP a échoué"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr "L'objet racine est peut-être manquant."
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Échec"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Object class FusionDirectory obligatoire '%s' manquante !"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Veuillez vérifier votre installation."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4541,126 +5012,193 @@ msgstr ""
 "Impossible de gérer l'objet structural de votre objet racine. Veuillez "
 "essayer d’ajouter la classe d’objet '%s' à la main."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr "L'utilisateur «%s» n'a pas un accès complet à votre annuaire LDAP."
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr "L'utilisateur «%s» n'a pas un accès complet à votre annuaire LDAP."
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+"Trouvé plus de %dutilisateur(s) qui ne seront pas visibles dans "
+"FusionDirectory ou qui sont incomplets."
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"%s utilisateur(s) trouvé(s) qui ne seront pas visibles dans FusionDirectory "
-"ou qui sont incomplet(s)."
+"Trouvé %dutilisateur(s) qui ne seront pas visibles dans FusionDirectory ou "
+"qui sont incomplets."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr "Migration des utilisateurs"
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Erreur de migration"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
-msgstr "Impossible de migrer l'entrée «%s» :"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
+"Impossible de migrer l'entrée \"%s\" :\n"
+"\n"
+"%s"
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Groupes"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Rôles"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 "Il n'y a pas d'administrateur FusionDirectory dans votre annuaire LDAP."
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr "Donne tous les droits sur tous les objets"
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr "Les rôles ACL par défaut n'ont pas été insérés"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr "Certains rôles ACL par défaut sont manquants"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr "Les rôles ACL par défaut ont été insérés"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
-msgstr "Impossible d’ajouter le rôle ACL «%s» :"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
+"Impossible d’ajouter le rôle ACL \"%s\" :\n"
+"\n"
+"%s"
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
-msgstr "%s utilsateur(s) trouvé(s) en dehors de la branche configurée «%s»."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+"Trouvé plus de %dutilisateur(s) en dehors de l'arborescence configurée "
+"\"%s\"."
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr "Trouvé %dutilisteur(s) en dehors de l'arborescence configurée \"%s\"."
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr "L'analyse du résultat LDAP a échoué"
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Déplacer les utilisateurs dans la branche configurée"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr "Impossible de déplacer les entrées vers le département spécifié !"
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
-msgstr "Les entrées seront déplacées depuis"
-
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "vers"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
+msgstr ""
+"Les entrées seront déplacées depuis:\n"
+"\t%s\n"
+"vers:\n"
+"\t%s"
 
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Les références suivantes seront mises à jour"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr "Trouvé plus de %dgroupes en dehors de l'arborescence configurée \"%s\"."
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "%s groupes trouvés en dehors de la branche configurée '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr "Trouvé %dgroupes en dehors de l'arborescence configurée \"%s\"."
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr "Déplacer les groupes dans la branche configurée"
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
+#, php-format
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+"Trouvé plus de %dgroupes posix en dehors de l'arborescence configurée "
+"\"%s\"."
+
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr "Trouvé %dgroupes posix en dehors de l'arborescence configurée \"%s\"."
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr "Déplacer les groupes posix dans la branche configurée"
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr "Taille limite atteinte"
+
+#: setup/class_setupStepMigrate.inc:1336
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Size limit of %d hit. Please check this manually"
+msgstr "Taille limite de %datteinte. Veuillez vérifier ceci manuellement"
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
-"%s département(s) trouvé(s) qui ne seront pas visible(s) dans "
+"Trouvé plus de %d département(s) qui ne seront pas visibles dans "
 "FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+"Trouvé%d département(s) qui ne seront pas visibles dans FusionDirectory."
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
 msgid "Department migration"
 msgstr "Migration des départements"
 
-#: setup/class_setupStepMigrate.inc:1334
-#, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
-msgstr "%s valeurs dupliquées trouvées pour l'attribut «uidNumber» : %s"
-
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
-msgstr "%s valeurs dupliquées trouvées pour l'attribut «gidNumber» : %s"
+msgid "Found %d duplicate values for attribute \""
+msgstr "Trouvé %d valeurs en double trouvées pour l'attribut \""
 
 #: setup/class_setupStepFinish.inc:40
 msgid "Finish"
@@ -4674,7 +5212,7 @@ msgstr "Terminé - écrire le fichier de configuration"
 msgid "Write configuration file"
 msgstr "Écrire le fichier de configuration"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4682,15 +5220,15 @@ msgstr ""
 "Votre fichier de configuration est lisible par tout le monde. Veuillez "
 "modifier les permissions !"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "Le fichier de configuration ne peut être lu ou n'existe pas."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 "Après avoir placé le fichier dans le répertoire %s, assurez vous que seul le"
@@ -4714,131 +5252,28 @@ msgstr ""
 " la langue demandée par le navigateur. Ce paramètre peut être configuré par "
 "utilisateur."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"Le répertoire '%s' spécifié comme répertoire de compilation est "
-"inaccessible !"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-"Le fichier de configuration de FusionDirectory %s/%s ne peut être lu. "
-"Abandon."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr "Attention : <a href=\"%s\">La session n’est pas chiffrée !</a>"
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Adresse de courriel"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr "Aucun compte utilisateur trouvé avec l’identifiant «%s»"
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr "Plusieurs comptes trouvés avec l’identifiant «%s»"
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr "Il n'y a pas de compte qui utilise le courriel «%s»"
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr "Il y a plusieurs comptes qui utilisent le courriel «%s»"
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-"L'utilisateur correspondant au courriel «%s» est verrouillé. Veuillez "
-"contacter votre administrateur système !"
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Contactez votre administrateur système, il y a eu un problème avec le "
-"serveur de courriel"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "Le jeton n'est pas valide"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-"Un problème est survenu avec le serveur de courriel, le courriel de "
-"confirmation n'a pas été envoyé"
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Configuration PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Erreur fatale : «Register globals» est activé. FusionDirectory ne permettra "
-"pas aux utilisateurs de se connecter tant que ceci n'est pas corrigé par un "
-"administrateur."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Changement de mot de passe"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 "Votre mot de passe va bientôt expirer, veuillez changer votre mot de passe !"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr "Votre mot de passe a expiré, veuillez changer votre mot de passe."
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Plus de mémoire disponible !"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Vérifications ACL de l'utilisateur désactivées"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Plugin"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-"Erreur fatale : Impossible de trouver une définition pour le plugin '%s' "
-"('%s' n'est pas un fichier) !"
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Erreur de configuration"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4846,112 +5281,28 @@ msgstr ""
 "Erreur fatale : toutes les variables POST n’ont pas été transférées par PHP "
 "- Veuillez avertir votre administrateur !"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Connexion"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-"Attention : La durée de validité des sessions configurée dans votre "
-"fusiondirectory.conf sera remplacée par celle définie dans votre php.ini."
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 "Le fichier de configuration de FusionDirectory %s/%s ne peut être lu. "
-"Veuillez exécuter fusiondirectory-setup --check-config."
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Erreur Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr ""
-"Le répertoire «%s» spécifié comme répertoire de compilation est "
-"inaccessible !"
+"Veuillez exécuter fusiondirectory-configuration-manager --check-config."
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Votre session FusionDirectory a expiré !"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr "Paramètre de plugin «%s» invalide !"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr "Aucune session trouvée !"
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr "La vérification des schémas LDAP a signalé des erreurs :"
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr "Erreur de schéma LDAP"
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Veuillez entrer un nom d’utilisateur valide !"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Veuillez entrer votre mot de passe !"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Veuillez vérifier le nom d'utilisateur et le mot de passe."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Compte verrouillé. Veuillez contacter votre administrateur système !"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr "Aucune valeur trouvée dans l’entête HTTP «%s»"
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-"L'utilisateur «%s» mentionné dans l’entête n'existe pas dans l'annuaire LDAP"
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr "La connexion avec l'utilisateur «%s» a provoqué l'erreur : %s"
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr "L'utilisateur CAS «%s» n'existe pas dans l'annuaire LDAP"
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Votre navigateur a les cookies désactivés. Veuillez activer les cookies et "
-"recharger cette page avant de vous connecter !"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtre"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4973,25 +5324,13 @@ msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 "Cliquez sur 'Supprimer' pour continuer ou sur 'Annuler' pour abandonner."
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Afficher les modèles"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Afficher les utilisateurs fonctionnels"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Afficher les utilisateurs POSIX"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Afficher les utilisateurs de courriel"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Afficher/Cacher les paramètres avancés"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Afficher les utilisateurs Samba"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "L'objet au complet"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -5001,7 +5340,7 @@ msgstr[1] "Il y a %1 comptes expirés"
 msgstr[2] "Il y a %1 comptes expirés"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr "Il n'y a pas de compte expiré"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -5033,7 +5372,7 @@ msgstr[2] "Il y a %1 groupes :"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:5
 msgid "There are no groups"
-msgstr "Il n'y a pas de groupe"
+msgstr "Il n’y a aucun groupes"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:8
 msgid "One of them is a %1 group"
@@ -5055,11 +5394,11 @@ msgstr[1] "Il y a %1 utilisateurs :"
 msgstr[2] "Il y a %1 utilisateurs :"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] "Un d'entre eux utilise la méthode %1"
 msgstr[1] "%2 d’entre eux utilisent la méthode %1"
-msgstr[2] "%2 d’entre eux utilisent la méthode %1"
+msgstr[2] "%2 d’entre eux utilisent la méthode %1 "
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
@@ -5069,15 +5408,15 @@ msgstr[1] "%1 d’entre eux sont verrouillés"
 msgstr[2] "%1 d’entre eux sont verrouillés"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr "Aucun d'entre eux n’est verrouillé"
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
-msgstr "Il n'y a pas d'utilisateur"
+msgstr "Il n’y a aucun utilisateurs"
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] "L'un d'entre eux a un compte %1"
 msgstr[1] "%2 d’entre eux ont un compte %1"
@@ -5128,10 +5467,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Ajouter les Object class obligatoires à la base LDAP"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Actuel"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Après migration"
 
@@ -5153,7 +5494,7 @@ msgstr "FusionDirectory fonctionnera même si vous ne corrigez pas cela."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -5202,7 +5543,7 @@ msgstr "Pour continuer :"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 "Pour des raisons de sécurité vous devez vous authentifier en créant le "
@@ -5210,7 +5551,7 @@ msgstr ""
 "réalisé en exécutant la commande suivante :"
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr "Cliquez sur 'Continuer' quand vous avez fini."
 
 #: setup/setup_migrate.tpl.c:2
@@ -5287,7 +5628,12 @@ msgstr ""
 " sélectionnées, utilisez le bouton 'Montrer les changements' pour voir le "
 "LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Sélectionner tout"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Montrer les changements"
 
@@ -5310,9 +5656,9 @@ msgid ""
 "This dialog provides a simple way to change your password.<br/> Enter the "
 "new password (twice) in the fields below and press the 'Change' button."
 msgstr ""
-"Cette fenêtre vous permet de changer votre mot de passe facilement.<br/> "
-"Entrez le nouveau mot de passe (deux fois) dans les champs ci-dessous et "
-"appuyez sur le bouton 'Changer'."
+"Cette boîte de dialogue permet de modifier facilement votre mot de passe. "
+"<br/>Entrez le nouveau mot de passe (deux fois) dans les champs ci-dessous "
+"et appuyez sur le bouton «Modifier»."
 
 #: ihtml/themes/legacy/recovery.tpl.c:14 ihtml/themes/legacy/recovery.tpl.c:17
 #: ihtml/themes/legacy/recovery.tpl.c:20 ihtml/themes/legacy/login.tpl.c:8
@@ -5409,14 +5755,28 @@ msgid "I forgot my password"
 msgstr "J'ai perdu mon mot de passe"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Votre navigateur a les cookies désactivés. Veuillez activer les cookies et "
+"recharger cette page avant de vous connecter !"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Cliquez ici pour vous connecter"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr "Authentification à deux facteurs"
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr "Attention : Vous êtes sur le point de supprimer les objets suivants"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5431,6 +5791,61 @@ msgstr ""
 "Donc - si vous êtes sûr - cliquez sur 'Supprimer' pour continuer ou sur "
 "'Annuler' pour abandonner."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr "Attention: vous êtes sur le point d'archiver les objets suivants"
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+"Donc, si vous êtes sûr, appuyez sur «Archiver» pour continuer ou sur "
+"«Annuler» pour abandonner."
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr "Archive"
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Bas"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Actions"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr "Date minimum pour %1"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr "Plus récent que"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr "Date maximum pour %1"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr "Plus vieux que"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtre"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr "Types"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Chercher dans les sous-arbres"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Appliquer le filtre"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr "Création d’un nouvel objet depuis un modèle"
@@ -5440,26 +5855,22 @@ msgstr "Création d’un nouvel objet depuis un modèle"
 msgid "Continue"
 msgstr "Continuer"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">L’équipe de "
-"FusionDirectory, %2</a>"
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Conflit de verrou détecté"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
+msgid "The following entries are locked:"
+msgstr "Les entrées suivantes sont verrouillées:"
+
+#: ihtml/themes/breezy/islocked.tpl.c:11
 msgid "\"%1\" has been locked by \"%2\" since %3"
 msgstr "\"%1\" a été verrouillé par \"%2\" depuis %3"
 
-#: ihtml/themes/breezy/islocked.tpl.c:11
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 "Si la détection de ce verrou est fausse, une autre personne a manifestement "
@@ -5467,7 +5878,7 @@ msgstr ""
 "Dans ce cas, vous pouvez supprimer le verrou en cliquant sur le bouton "
 "\"%1\"."
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Lecture seule"
 
@@ -5487,6 +5898,11 @@ msgstr ""
 "Donc - si vous êtes sûr - cliquez sur 'Continuer' pour continuer ou "
 "'Annuler' pour annuler."
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Soumettre"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Accueil"
@@ -5505,6 +5921,10 @@ msgid "Session expires in %d!"
 msgstr "La session expire dans %d !"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr "La taille limite de %1 entrées est dépassée!"
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5517,24 +5937,28 @@ msgstr ""
 "serait de limiter la recherche à une taille plus petite et d'utiliser les "
 "filtres pour trouver les entrées que vous cherchez."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Veuillez choisir la façon de réagir pour cette session"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
+msgstr "Veuillez choisir la façon de réagir pour cette session :"
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
 msgstr ""
 "ignorer cette erreur et afficher toutes les entrées retournées par le "
 "serveur LDAP"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:11
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 "ignorer cette erreur et afficher les entrées sous la limite définie et "
 "utiliser les filtres pour restreindre les données affichées"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr "Remplacez la limite de taille par:"
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Valider"
diff --git a/locale/hu_HU/fusiondirectory.po b/locale/hu_HU/fusiondirectory.po
index 51d5d64d174b82bf1592b48213f8c8776b4e2ca8..342b485b2fd5610ff7a5f0833e82aff7de01f9b2 100644
--- a/locale/hu_HU/fusiondirectory.po
+++ b/locale/hu_HU/fusiondirectory.po
@@ -4,335 +4,614 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2016
+# fusiondirectory <contact@fusiondirectory.org>, 2018
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2016\n"
-"Language-Team: Hungarian (Hungary) (https://www.transifex.com/fusiondirectory/teams/12202/hu_HU/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
+"Language-Team: Hungarian (Hungary) (https://app.transifex.com/fusiondirectory/teams/12202/hu_HU/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: hu_HU\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Leírás"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -340,1534 +619,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr ""
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
+msgstr ""
+
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
-msgid "LDAP operation failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
+msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Név"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Leírás"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1876,127 +1974,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Név"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Csoport neve"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Telefonszám"
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Felhasználók"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4659,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4686,7 +4967,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4736,8 +5017,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4748,7 +5029,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4756,7 +5037,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4802,10 +5083,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4827,7 +5110,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4871,12 +5154,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4936,7 +5219,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5045,14 +5333,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5063,6 +5363,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5072,28 +5425,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5110,6 +5461,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5128,6 +5484,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5135,20 +5495,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/id/fusiondirectory.po b/locale/id/fusiondirectory.po
index fa6be17799be1c22cac53dd5393a9f9e8dd064af..02603ebca3c19e873002e4c2c6c3a72f14a9d127 100644
--- a/locale/id/fusiondirectory.po
+++ b/locale/id/fusiondirectory.po
@@ -8,327 +8,606 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Language-Team: Indonesian (https://www.transifex.com/fusiondirectory/teams/12202/id/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Language-Team: Indonesian (https://app.transifex.com/fusiondirectory/teams/12202/id/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: id\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -336,1534 +615,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr ""
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
+
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot connect to %s database!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:245
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot select %s database!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr ""
-
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:457
-#, php-format
-msgid "'%s' are not allowed!"
-msgstr ""
-
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1872,127 +1970,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr ""
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2001,265 +2114,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2277,8 +2355,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2294,391 +2372,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2686,103 +2826,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2794,31 +2936,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2827,699 +2969,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3527,36 +3759,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3564,16 +3923,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3581,273 +3962,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3919,10 +4349,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3945,46 +4371,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4000,387 +4426,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4395,21 +4853,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4428,217 +4886,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4655,24 +4948,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4681,7 +4962,7 @@ msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4727,8 +5008,8 @@ msgid_plural "There are %1 users:"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
@@ -4737,7 +5018,7 @@ msgid_plural "%1 of them are locked"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4745,7 +5026,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 
@@ -4790,10 +5071,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4815,7 +5098,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4859,12 +5142,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4924,7 +5207,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5033,14 +5321,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5051,6 +5351,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5060,28 +5413,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5098,6 +5449,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5116,6 +5472,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5123,20 +5483,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/it_IT/fusiondirectory.po b/locale/it_IT/fusiondirectory.po
index 652310562b2fc158ed717ab051eb7ebdcbae8446..e9375f9ae775ef142ca34f80317e6bb217092c55 100644
--- a/locale/it_IT/fusiondirectory.po
+++ b/locale/it_IT/fusiondirectory.po
@@ -5,108 +5,506 @@
 # 
 # Translators:
 # Paola Penati <paola.penati@opensides.be>, 2019
-# fusiondirectory <contact@fusiondirectory.org>, 2021
 # Paola <paola.penati@fusiondirectory.org>, 2021
+# Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2023
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Paola <paola.penati@fusiondirectory.org>, 2021\n"
-"Language-Team: Italian (Italy) (https://www.transifex.com/fusiondirectory/teams/12202/it_IT/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Italian (Italy) (https://app.transifex.com/fusiondirectory/teams/12202/it_IT/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: it_IT\n"
 "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Errore"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Correggi l'errore qui sotto e ricarica la pagina."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr "Configurazione di gestione"
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr "Colonne"
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr "Colonne visualizzate per questo elenco di gestione"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tipo"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr "Tipo di colonna"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr "Attributo"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Etichetta"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr "Titolo della colonna"
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+"Questa configurazione deve essere salvata in LDAP come configurazione "
+"predefinita per questa pagina di gestione"
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr "Dimentica la mia configurazione persistente"
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+"Elimina la configurazione persistente per questa pagina di gestione in modo "
+"che venga utilizzata quella predefinita"
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr "Dimentica"
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr "Predefinito globale"
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+"Questa configurazione deve essere salvata in LDAP come configurazione "
+"predefinita per questa pagina di gestione per tutti gli utenti"
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr "Dimentica il default globale"
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+"Elimina la configurazione predefinita globale per questa pagina di gestione "
+"in modo che venga utilizzata quella predefinita"
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr "Non sei autorizzato a eseguire l'azione \"%s\" sul target \"%s\""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr "Non sono stati raggiunti abbastanza obiettivi (%d) per l'azione \"%s\""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr "Troppi target (%d) riusciti per l'azione \"%s\""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr "DN"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Data"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Descrizione"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Anno-mese-giorno, Ore:minuti:secondi"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Restaura"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr "Istantanea"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr "Gestore di istantanee"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr "Ripristina su un oggetto esistente"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr "Ripristina un oggetto eliminato"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr "Impossibile creare l'istantanea: %s"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "C'é stato un problema nella decompressione dei dati di snapshot"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr "I dati dell'istantanea non possono essere recuperati"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr "Ripristinare snapshots"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Oggetto"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr "Ripristinare snapshots"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Copie istantanee"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr "Copia istantanea esistente per questo oggetto"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr "Creare una copia instantanea degli oggetti"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Registrazione cronologica"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr "Timestamp di questa creazione di snapshot"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr "Motivo"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr "Motivo della creazione di questa copia instantanea"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr "Ricerche in %s"
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+"Impossibile cercare modelli \"%s\":\n"
+"%s"
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+"Impossibile cercare \"%s\":\n"
+"%s"
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr "Fisso"
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Seleziona le entries desiderate"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "Modello %s"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr "Schede"
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Modello"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Modello"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Crea"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Lista d'esportazione"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Modifica"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Taglia"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copia"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Incolla"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Applica il modello"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Elimina"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Crea una 'copia istantanea'"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Restaura la 'copia istantanea'"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr "Crea un oggetto da questo modello"
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr "Applicare comunque"
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr "L'applicazione di un modello a un modello non è possibile"
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+"Tutte le voci selezionate devono condividere lo stesso tipo per poter "
+"applicar loro un modello"
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr "Archivia comunque"
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr "Non è possibile archiviare un modello"
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr "Archiviazione riuscita"
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr "Le voci %d sono state archiviate correttamente"
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr "Elimina comunque"
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Non sei autorizzato a creare una 'copia instantanea' di %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Non sei autorizzato a restaurare una 'copia instantanea' di %s."
 
-#: include/class_config.inc:151
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr "Non sei autorizzato a eliminare un'istantanea per %s."
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+"Il numero di voci elencate %d() è maggiore o troppo vicino all'impostazione "
+"PHP ini max_input_vars configurata (%d). Modificare l'impostazione "
+"max_input_vars ini su un valore più alto. "
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Vai al dipartimento base"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Root"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Sali di un dipartimento"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Sopra"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Vai al dipartimento dell'utente"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Home"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Ricarica la lista"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr "Ricaricare"
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr "Configura questo elenco di gestione"
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Configura"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Errore XML nel file fusiondirectory.conf: %s alla linea %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Errore di configurazione"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
-"Sembra che si stia tentando di decodificare qualcosa che non è codificato : \n"
-"%s <br/> Si prega di controllare non si stia utilizzando un file fusiondirectory.secrets mentre le password non sono crittografate."
-
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Errore LDAP"
+"Sembra che tu stia cercando di decodificare qualcosa che non è codificato : %s\n"
+"Controlla di non utilizzare un file fusiondirectory.secrets mentre le tue password non sono crittografate."
 
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 "Errore di connessione al server LDAP. Contatta l'amministratore del sistema."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr "Location \" %s\" non è stata trovata nel file di configurazione"
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
@@ -115,7 +513,7 @@ msgstr ""
 "La funzionalità snapshot è attivata, ma la variabile \"%s\" richiesta non è "
 "impostata."
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
@@ -124,36 +522,65 @@ msgstr ""
 "La funzionalità snapshot è abilitata, ma manca il modulo di compressione "
 "richiesto. Si prega di installare \"%s\"."
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Tutte le categorie"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Identità personale"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr "Tipo \"%s\" inesistente! "
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr "Ramo \"%s\" inesistente!"
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr "Dn \"%s\" inesistente! "
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr "Il filtro è vuoto "
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr "Classe \"%s\" sconosciuta ! "
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Pagina"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 "L'esportazione PDF non è possibile: non ci sono librerie PDF installate."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "Creato da"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "File"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Linea"
 
@@ -177,218 +604,238 @@ msgstr "statico"
 msgid "method"
 msgstr "metodo"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Traccia"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tipo"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argomenti"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "La creazione di questa pagina, secondo l'interprete PHP, ha generato degli "
 "errori ! "
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 "Invia i tuoi commenti a proposito di un bug al Team di FusionDirectory"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Invia un rapporto di bug"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr "Icona dell'e-mail"
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Mostra/Nascondi l'informazione"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Sopra"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Sotto"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr "Non caturato %s: %s"
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Ordina in modo crescente"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr ""
+"L'impostazione  \"%s\" del fuso orario nella vostra configurazione non é "
+"valida."
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Ordina in modo decrescente"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
+msgstr ""
+"Modello di oggetti, utilizzato per creare diversi oggetti con valori simili"
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Seleziona tutto"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Nome del modello"
 
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "Creato da"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Registrazione nel giornale di sistema non riuscita : %s"
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Vai al dipartimento base"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr "Opzione '%s' non valida!"
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Root"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "Il tipo d'oggetto specificato è vuoto oppure non è valido !"
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Sali di un dipartimento"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr "Impossibile registrare l'evento (%s - %s): %s"
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr "Vai al dipartimento dell'utente"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "CAS"
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Home"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Ricarica la lista"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr "L'accesso con utente \"%s\" ha innescato l'errore: %s"
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Azioni"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr "Modulo HTML"
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Copia"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Accedi"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Taglia"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr "Attenzione : la sessione %s non è crittografata!%s"
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Incolla"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+"Attenzione: la durata della sessione configurata nel fusiondirectory.conf "
+"verrà sostituita dalle impostazioni di php.ini."
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Taglia questa voce"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr "Secondo fattore"
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Copia questa voce"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr "Lo schema LDAP verifica gli errori riportati:"
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Restaura le 'copie istantanee'"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
+msgstr ""
+"Errore dello schema LDAP:\n"
+"%s"
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Lista d'esportazione"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Prego specifica un nome utente valido !"
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Restaura la 'copia istantanea'"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Prego specifica la tua password !"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Crea una 'copia istantanea'"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Conto bloccato. Contatta l'amministratore del sistema!"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Crea una nuova 'copia istantanea a partire da questi oggetti"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Errore LDAP"
 
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
-"L'impostazione  \"%s\" del fuso orario nella vostra configurazione non é "
-"valida."
+"Si è verificato un errore irreversibile. Si prega di contattare "
+"l'amministratore."
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
-msgstr "Snapshot"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr "Errore fatale!"
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
-msgstr "Gestore di snapshot"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr "Intestazione HTTP"
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
-msgstr "Ripristina su un oggetto esistente"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
+msgstr "Nessun valore trovato nell'header HTTP \"%s\""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
-msgstr "Ripristina un oggetto eliminato"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
-msgstr "C'é stato un problema nella decompressione dei dati di snapshot"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr "HTTP Basic Auth"
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr "I dati dello snapshot non possono essere recuperati"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Indirizzo di posta elettronica"
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Modello"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Recupero della password"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
-msgstr ""
-"Modello di oggetti, utilizzato per creare diversi oggetti con valori simili"
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "Alcun account trovato con login \"%s\" "
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Nome del modello"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Trovati più accounts con login \"%s\""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Errore interno"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr "Non c'è nessun account che usa l'indirizzo mail %s"
 
-#: include/class_logging.inc:81
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Logging failed: %s"
-msgstr "Registrazione nel giornale di sistema non riuscita : %s"
+msgid "There are several accounts using email \"%s\""
+msgstr "Ci sono più account che usano l'indirizzo mail %s"
 
-#: include/class_logging.inc:103
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "Invalid option \"%s\" specified!"
-msgstr "Opzione '%s' non valida!"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
+msgstr ""
+"L'utente che usa la mail \"%s\" é bloccato. Si prega di contattare "
+"l'amministratore di sistema."
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "Il tipo d'oggetto specificato è vuoto oppure non è valido !"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "Questo token non è valido"
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
 msgstr "Impossibile modificare la password, utente \"%s\" sconosciuto "
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
@@ -396,57 +843,43 @@ msgstr ""
 "é necessario compilare saslRealm o saslExop nello schermo di configurazione "
 "per usare SASL"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Invia"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Applica filtro"
-
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Cerca nella sottostruttura"
-
-#: include/class_filter.inc:404
-#, php-format
-msgid "Searches in %s"
-msgstr "Ricerche in 1%s"
-
-#: include/class_ldapSizeLimit.inc:114
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Il valore limite dell'entries %d è stato superato !"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr ""
+"Il file di configurazione %s/%s non è leggibile. Operazione Annullata."
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
-"Impostare il nuovo valore limite a %s et mostrare questo messaggio se lo "
-"stesso valore è superato"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Configura"
+"Il directory \"%s\" specificato come directory di compilazione non é "
+"accessibile!"
 
-#: include/class_ldapSizeLimit.inc:136
+#: include/class_ldapSizeLimit.inc:135
 msgid "incomplete"
 msgstr "incompleto"
 
-#: include/functions.inc:97
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
+msgid ""
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
+msgstr ""
+"Il limite %d è maggiore o troppo vicino all'impostazione PHP ini "
+"max_input_vars configurata di %d . Si prega di modificare l'impostazione "
+"max_input_vars ini su un valore più alto se si desidera impostare il limite "
+"più alto. "
+
+#: include/functions.inc:55
 #, php-format
 msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 "Errore fatale: non è stato definito nessuno spazio per le classi - esegui "
 "'%s' per porre rimedio al problema"
 
-#: include/functions.inc:116
+#: include/functions.inc:78
 #, php-format
 msgid ""
 "Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
@@ -454,199 +887,120 @@ msgstr ""
 "Errore fatale: impossibile inizializzare la classe '%s' - esegui '%s' per "
 "porre rimedio al problema"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Errore fatale"
-
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr ""
-"Fatale: Errore durante la connessione al server LDAP. Il server dice: '%s'"
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
-msgstr ""
-"Il login (uid) non é unico all'interno della struttura LDAP. Per favore "
-"contattare il vostro amministratore di sistema."
-
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Errore di autentificazione"
-
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
-"Sembrerebbe che la password sia scaduta. Per favore utilizzare <a "
-"href=\"recovery.php\"> recupero password </a> per cambiarla"
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr "Errore all'aggiunta di un bloccaggio. Contatta i programmatori !"
-
-#: include/functions.inc:594
-#, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
-msgstr ""
-"Impossibile creare i dati per il bloccaggio nell'annuario LDAP. Contatta "
-"l'amministratore del sistema !"
-
-#: include/functions.inc:594
+#: include/functions.inc:151
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "Il server LDAP ha risposto: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Avvertimento"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
+msgstr "%s 2002-%d %s Il team FusionDirectory, %s%s"
 
 #: include/functions.inc:783
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
-msgstr ""
-"Sono stati trovati molteplici bloccaggi per lo stesso oggetto da bloccare. "
-"Questo non dovrebbe mai succedere. Ripulire le referenze multiple."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Prosegui comunque"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Modifica malgrado l'avvertimento"
-
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Sei sul punto di modificare la/le voce/voci %s"
-
-#: include/functions.inc:1505
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
-"Il file '%s' non puó essere rimosso. Prova ad usare fusiondirectory-setup "
-"--check-directories per correggerne i privilegi di accesso."
 
-#: include/functions.inc:1722
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
+msgstr "Impossibile scrivere nel file di revisione :"
+
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Impossibile scrivere il file di revisione !"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
-msgstr "Impossibile leggere il file di revisione!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
+msgstr "Impossibile leggere il file di revisione:"
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Avvertimento LDAP"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Impossibile trovare informazioni sugli schemi a partire dal server. Nessuna "
 "verifica degli schemi è stata effettuata !"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr "Schema principale di FusionDirectory"
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 "Schema utilizzato per memorizzare la configurazione di FusionDirectory"
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 "Utilizzato per memorizzare le informazioni in modalità fiducia in utenti o "
 "gruppi."
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr "Usato per memorizzare i modelli."
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr "Usato per memorizzare le informazioni POSIX."
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr "Manca la classe di oggetti necessaria \"%s\"!"
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr "Manca classe di oggetti optional \"%s\"!"
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Classe(i) disponibile(i)"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
@@ -654,13 +1008,13 @@ msgstr ""
 "Avete installato il plugin di gruppi misti, ma la configurazione dello "
 "schema non supporta questo."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr "Per usare gruppi misti l'objetClass \"posixGroup\" deve essere AUSILIARIO"
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
@@ -668,377 +1022,235 @@ msgstr ""
 "Il vostro schema é configurato per supportare gruppi misti, ma manca il "
 "plugin."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr "L'objectClass \"posixGroup\" deve essere STRUTTURALE"
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Impossibile trovare il file '%s' - esegui '%s' per porre rimedio al problema"
+"Impossibile individuare il file \"%s\" - esegui \"%s\" per risolvere il "
+"problema"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Tutti gli oggetti in questa categoria"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Nome utente"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
+"Errore irreversibile: impossibile trovare alcuna definizione di plug-in per "
+"il plug-in \"%s\" (\"%s\" non è un file)!"
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Autorizzazioni"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Annulla tutto"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Impossibile incollare"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Seleziona per avere la lista di oggetti del tipo '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Seleziona per avere la lista degli oggetti che contengono '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Seleziona per avere la lista degli oggetti che hanno '%s' attivato"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Seleziona per ricercare nella sottostruttura"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Questo oggetto sarà cancellato !"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "L'oggetto '%s' sarà cancellato !"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Questo oggetto sarà cancellato: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "L'oggetto '%s' sarà cancellato: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Questo oggetto sarà cancellato:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "L'oggetto '%s' sarà cancellato:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Questi oggetti saranno cancellati: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Gli oggetti '%s' saranno cancellati: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Non hai il permesso di cancellare questo oggetto !"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Non hai il permesso di cancellare l'oggetto:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Non hai il permesso di cancellare questi oggetti:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Non hai il permesso di creare questo oggetto !"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Non hai il permesso di creare l'oggetto:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Non hai il permesso di creare lquesti oggetti:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Non hai il permesso di modificare questo oggetto !"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr "Non hai il permesso di modificare i campi \"%s\" di oggetto \"%s\""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
-msgstr "Non ha il permesso di modificare l'oggetto:<br/>%s"
+msgid "You have no permission to modify the object:%s"
+msgstr "Non hai l'autorizzazione per modificare l'oggetto:%s"
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
-msgstr "Non hai il permesso di modificare questi oggetti:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
+msgstr "Non hai l'autorizzazione per modificare questi oggetti:%s"
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Non hai il permesso di visualizzare questo oggetto !"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Non hai il permesso di visualizzare l'oggetto:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Non hai il permesso di visualizzare questi oggetti:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Non hai il permesso di spostare questo oggetto !"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Non hai il permesso di spostare l'oggetto:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Non hai il permesso di spostare questi oggetti:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Informazioni per la connessione"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Impossibile connettersi al database %s !"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Impossibile selezionare la base dati %s !"
-
-#: include/class_msgPool.inc:255
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "No %s server defined!"
-msgstr "Nessun server %s definito !"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr "Il campo \"%s\" contiene una parola chiave riservata!"
 
-#: include/class_msgPool.inc:275
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot query %s database!"
-msgstr "Impossibile interrogare il database %s !"
+msgid "Cannot execute \"%s\" command!"
+msgstr "Impossibile eseguire il comando \"%s\"!"
 
-#: include/class_msgPool.inc:285
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "Il campo '%s' contiene una parola chiave riservata !"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr "Impossibile eseguire il comando \"%s\" per il plugin %s!"
 
-#: include/class_msgPool.inc:297
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-"Il comando '%s', specificato come connessione dell'estensione '%s' non "
-"esiste !"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr "Impossibile eseguire il comando \"%s\" (%s)!"
 
-#: include/class_msgPool.inc:313
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "'%s' command is invalid!"
-msgstr "Il comando '%s' non è valido."
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr "Impossibile eseguire il comando \"%s\" (%s) per il plugin %s!"
 
-#: include/class_msgPool.inc:315
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "L'opzione '%s' del comando per l'estensione %s non è valida !"
+msgid "Value for \"%s\" is too large!"
+msgstr "Il valore per \"%s\" è troppo grande!"
 
-#: include/class_msgPool.inc:319
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "L'opzione '%s' del comando (%s) non è valida !"
+msgid "\"%s\" must be smaller than %s!"
+msgstr "\"%s\" deve essere più piccolo di %s!"
 
-#: include/class_msgPool.inc:321
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "L'opzione '%s' del comando (%s) per l'estensione %s non è valida !"
+msgid "Value for \"%s\" is too small!"
+msgstr "Il valore per \"%s\" è troppo piccolo!"
 
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Impossibile eseguire il comando '%s' !"
+msgid "\"%s\" must be %d or above!"
+msgstr "\"%s\" deve essere %d o superiore!"
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Impossibile eseguire l'opzione '%s' del comando per l'estensione %s !"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr "\"%s\" dipende da \"%s\" - si prega di fornire entrambi i valori!"
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "Impossibile eseguire l'opzione '%s' del comando (%s) !"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
+msgstr "C'è già una voce con questo attributo \"%s\" nel sistema!"
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
-"Impossibile eseguire l'opzione '%s' del comando (%s) per l'estensione %s !"
-
-#: include/class_msgPool.inc:362
-#, php-format
-msgid "Value for '%s' is too large!"
-msgstr "Il valore specificato per '%s' è troppo grande !"
-
-#: include/class_msgPool.inc:364
-#, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "'%s' deve essere più piccolo di %s !"
-
-#: include/class_msgPool.inc:378
-#, php-format
-msgid "Value for '%s' is too small!"
-msgstr "Il valore specificato per '%s' è troppo piccolo !"
-
-#: include/class_msgPool.inc:380
-#, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s' deve essere %d o un valore più grande !"
-
-#: include/class_msgPool.inc:393
-#, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s' dipende da '%s' - indica entrambi i valori !"
-
-#: include/class_msgPool.inc:405
-#, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "C'è un'altra entry con l'attributo '%s' nel sistema !"
-
-#: include/class_msgPool.inc:407
-#, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
-msgstr "La entry '%s' usa già l'attributo '%s'!"
-
-#: include/class_msgPool.inc:418
-#, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Il campo necessario '%s' è vuoto !"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "Esempio:"
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
-msgstr "Il campo '%s' contiene caratteri sbagliati"
+msgid "The required field \"%s\" is empty!"
+msgstr "Il campo richiesto \"%s\" è vuoto!"
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' non è permesso:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr "Il campo \"%s\" contiene un valore non valido."
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s' non è permesso !"
+msgid "Example: %s"
+msgstr "Esempio: %s"
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "Estensione PHP %s  mancante !"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Annulla"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Applica"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Registra"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Aggiungi"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Aggiungi %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Elimina"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Rimuovi %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Modifica..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Modifica %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Indietro"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Questa identità non possiede valide estensioni %s !"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1047,7 +1259,7 @@ msgstr ""
 "Questa identità ha i parametri %s attivati. Puoi disattivarli cliccando sul "
 "bottone qui sotto."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1056,7 +1268,7 @@ msgstr ""
 "Questa identità ha i parametri %s attivati. Per disattivarla hai bisogno di "
 "rimuovere prima di tutto i parametri %s !"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1065,7 +1277,7 @@ msgstr ""
 "Questa identità ha i parametri %s disattivati. Puoi attivarli cliccando sul "
 "bottone qui sotto."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1074,7 +1286,7 @@ msgstr ""
 "Questa identità ha i parametri %s disattivati. Per attivarli devi prima di "
 "tutto impostare i parametri %s !"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
@@ -1083,17 +1295,17 @@ msgstr ""
 "Questo account ha disattivato le impostazioni %s. Per abilitarle, devi prima"
 " disabilitare le impostazioni %s!"
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Imposta i parametri %s"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Rimuovi i parametri %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
@@ -1101,225 +1313,177 @@ msgstr ""
 "Clicka su \"Modifica\" nell'angolo in basso a destra della pagina per "
 "modificare i campi"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Gennaio"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Febbraio"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Marzo"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Aprile"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Maggio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Giugno"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Luglio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Agosto"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Settembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Ottobre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Novembre"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Dicembre"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Domenica"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Lunedi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Martedi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Mercoledi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Giovedi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Venerdi"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Sabato"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "operazione di lettura"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "operazione di aggiunta"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "operazione di modifica"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "operazione di rimozione"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "operazione di ricerca"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "autentificazione"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "La richiesta inoltrata all'annuario LDAP %s è fallita!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "La richiesta inoltrata all'annuario LDAP è fallita!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Oggetto"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "L'invio è fallito !"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Invio fallito: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Errore di comunicazione con il servizio d'infrastruttura !"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Errore di comunicazione con il servizio d'infrastruttura: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "Questo '%s' è attualmente utilizzato da questo oggetto: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "Questo '%s' è attualmente in uso."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "Questo '%s' è attualmente utilizzato da questi oggetti: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Il file '%s' non esiste !"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Il file '%s' non puó essere aperto in lettura !"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Il file '%s' non puó essere aperto in scrittura !"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"Il valore di '%s' nno è ancora stato configurato oppure non è valido, "
-"verifica il file di configurazione !"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Il file '%s' non puó essere cancellato !"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "La cartella '%s' non puó essere creata  !"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "La cartella '%s' non puó essere cancellata !"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Verificazione del supporto per %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Istalla e attiva il modulo PHP %s."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Installa e attiva il modulo Pear %s."
-
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
-msgstr ""
-"Impossibile inizializzare la classe '%s' ! Forse manca un'estensione "
-"nell'installazione di FusionDirectory ?"
-
-#: include/class_msgPool.inc:856
+#: include/class_msgPool.inc:600
 msgid ""
 "The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 "La base qui fornita non è valida ed è stata reimpostata al suo valore "
 "originario !"
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:149
+#, php-format
+msgid "\"%s\" was not found in attributes"
+msgstr "\"%s\" non è stato trovato negli attributi"
+
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+"Modalità non valida per il modificatore \"a\", le modalità supportate sono "
+"\"uid\" e \"ascii\" "
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr "Parametro id mancante per il modificatore incrementale"
+
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
@@ -1328,147 +1492,159 @@ msgstr ""
 "La dipendenza riccorsiva nei campi di modello: \"%1$s\" non puo' dipendere "
 "da \"%2$s\" dato che \"%2$s\" dipende già da \"%1$s\""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Seleziona le entries desiderate"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nome"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Descrizione"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr "Ottieni lo stato del servizio"
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
-msgstr "Avvia il servizio"
+msgstr "Inizia il servizio"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Ferma il servizio"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Riavvia il servizio"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
-msgstr "Base dell'oggetto"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
+msgstr "Base dell'oggetto"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
+msgstr "Il valore del campo base dovrebbe sempre essere una stringa"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr "sì"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr "no"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr "L'attributo %s è disabilitato, il suo valore non può essere impostato"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr "\"%s\" non è un valore valido, dovrebbe essere \"%s\" o \"%s\""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Tipo sconosciuto : %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "Non esiste il dn: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Nessuno"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr "Aggiungi  (dialog)"
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr "%s (dalla lista)"
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr "%s é più vecchio di %s"
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
-msgstr "Il valore del campo base dovrebbe sempre essere una stringa"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr "%s è più recente di %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
-msgstr "Errore, la data non é corretta: %s"
+msgid "Incorrect date: %s"
+msgstr "Data errata: %s"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Ore"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Minuti"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "Secondi"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Data"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Tempo"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Impossibile leggere il file importato : %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "il file è vuoto"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "Il file non è stato trovato"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "Il file non puó essere letto"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr "%s (%d bytes)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr "L'attributo %s è disabilitato, il suo valore non può essere impostato"
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
-msgstr "Dati base64 non validi per l'attributo %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
+msgstr "Dati base64 non validi"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Caricare"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Scarica"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr "Impossibile impostare il valore \"%s\", contiene dati non validi : %s"
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
@@ -1476,178 +1652,159 @@ msgstr ""
 "Impossibile salvare la foto dell'utente, Fusiondirectory necessita che il "
 "modulo PHP \"imagick\" sia installato "
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr "Dati non validi, errore Imagick: \"%s\""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Elimina"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr "Numero"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Modifica"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Un numero intero compreso tra %d e %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Un numero intero più grande di %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Un numero intero più piccolo di %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr "\"%s\" non é un numero"
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr "%s é più piccolo di %s"
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr "%s è maggiore di %s"
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Un numero con la virgola compreso tra %f e %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Un numero con la virgola più grande di %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Un numero con la virgola più piccolo di %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
-msgstr "Il valore del campo \"%s\" multivalutato non é un array"
+msgid "Invalid: %s"
+msgstr "Invalido: %s"
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr "Il valore non è un array"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (necessario)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
-msgstr "SetAttribute \"1%s\" è stato impostato su un valore non compatibile"
+msgstr "SetAttribute \"%s\" è stato impostato su un valore non compatibile"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Valore non valido per %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Ordina in modo crescente"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Nessuno"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Ordina in modo decrescente"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
-msgstr ""
-"Il valore \"%s\" per il campo \"%s\" non si trova nella lista delle scelte "
-"possibili"
+msgid "\"%s\" is not in the list of possible choices"
+msgstr "\"%s\" non è nell'elenco delle scelte possibili"
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
-msgstr "SetAttribute%ssè stato impostato su un valore non compatibile"
+msgstr "StringAttribute \"%s\" è stato impostato su un valore non compatibile"
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "Impostazioni del template"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Questo è il nome del template"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr "Solo la scheda principale puo' calcolare il dn"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr "Non puo' calcolare il dn: nessuna scheda di classe parente per \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
-"Impossibile calcolare il dn: impossibile trovare le informazioni di "
-"objectType in questa  classe scheda \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "C'é già un'altra entry con il medesimo dn: %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr "Esiste già una voce con lo stesso dn: %s"
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "La voce %s non esiste"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
-"L'oggetto é cambiato dopo l'apertura in FusionDurectory. Tutte le modifiche "
-"che possono essere state fatte da altri andranno perse se si salva questa "
-"voce !"
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr "Servizio \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Tab \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr "Impossibile creare un DN univoco"
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr "Campo \"%s\" sconosciuto"
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr "L'ora in cui è stata aggiunta la voce"
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr "L'ora dell'ultima modifica della voce"
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
@@ -1656,195 +1813,173 @@ msgstr ""
 "Nessuna definizione di plugin trovato per inizializzare \"%s\", si prega di "
 "consultare il file di configurazione."
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
-msgstr "Impossibile calcolare DN per oggetto:%s"
+msgstr "Impossibile calcolare DN per oggetto: %s"
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
-msgstr "Spostamento da \"1%s\" a \"1%s\" non riuscito: 1%s"
-
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr "Invalido: %s"
+msgstr "Spostamento da \"%s\" a \"%s\" non riuscito: %s"
 
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "secondi"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "minuti"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "ore"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "giorni"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr "Gruppo POSIX %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Gestire le liste di controllo degli accessi"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Ruolo %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Ruoli ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr "Raggruppa %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Gruppo di utenti"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Sconosciuto"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "Modello"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Voce '%s' sconosciuta !"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "Modello %s"
+msgid "All users"
+msgstr "Tutti gli utenti"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Mostra %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
+"Un'assegnazione ACL per l'utente connesso corrispondeva a un valore "
+"superiore al limite %d degli oggetti. Questo utente non avrà i diritti ACL "
+"che dovrebbe."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Errore di filtro"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"Il login (uid) non é unico all'interno della struttura LDAP. Per favore "
+"contattare il vostro amministratore di sistema."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Il filtro non è completo!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Avvertimento"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Errore d'autorizzazione"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr "Oggetto :"
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Non sei autorizzato a creare una 'copia instantanea' di %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr "Errore :"
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Non sei autorizzato a restaurare una 'copia instantanea' di %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr "Il trigger ha restituito un errore!"
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr "Non sei autorizzato a eliminare uno snapshot per 1%s."
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "Nessuna etichetta"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Crea"
+msgid "Exit code: %d"
+msgstr "Codice di uscita: %d"
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr "Valore non valido :"
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Gestire le liste di controllo degli accessi"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr "Errore irreversibile di FusionDirectory"
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Ruoli ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr "Errore Irreversibile"
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
-"Tipo '%s'! ACL sconosciuto! Potrebbe seere necessario eseguire "
-"\"fusiondirectory-impostazione --migrare-acls\" per migrare gli ACL verso un"
-" nuovo formato."
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Voce '%s' sconosciuta !"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
+"Sembrerebbe che la password sia scaduta. Per favore utilizzare <a "
+"href=\"recovery.php\"> recupero password </a> per cambiarla"
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Tutti gli utenti"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr "Errore ppolicy imprevisto \"%s\", contattare l'amministratore"
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Avvertimento sul rendimento"
-
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 "Il rendimento del tuo annuario LDAP è scarso: l'ultima richiesta è durata "
 "%.2fs !"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
-msgstr ""
-"Impossibile creare automaticamente delle sottostrutture con RDN \"%s\": non "
-"supportato"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr "Analisi del risultato LDAP non riuscita"
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr "Nessun risultato LDAP da analizzare"
+
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
@@ -1852,116 +1987,98 @@ msgstr ""
 "Impossibile creare automaticamente delle sottostrutture con RDN \"%s\": "
 "alcun class object trovato!"
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+"Impossibile creare automaticamente delle sottostrutture con RDN \"%s\": non "
+"supportato"
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "durante l'operazione su '%s' usando il server LDAP '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr "%s (%s, mentre si sta operando su \"%s\" usando il server LDAP \"%s\")"
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "durante l'operazione sul server LDAP %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr "%s (durante il funzionamento sul server LDAP \"%s\")"
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr "proc_open non é riuscito ad eseguire la ricerca LDAP"
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 "Errore alla Linea %s, la prima riga di una voce non puo'iniziare con uno "
 "spazio "
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 "Errore alla linea %s, i riferimenti ad un file esterno non sono supportati"
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr "Errore alla linea %s, l'attribution \"%s\" non ha alcun valore"
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr "Errore alla linea %s, un blocco d'ingresso puo'avere solo un dn"
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 "Errore alla linea %s, un blocco d'ingresso dovrebbe iniziare con il dn"
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 "Errore durante l'importazione del dn: \"%s\", verifica il tuo file LDIF a "
 "partire dalla linea %s"
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr "Creare una copia instantanea degli oggetti"
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr "Ripristinare snapshots"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Registrazione cronologica"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr "Timestamp di questa creazione di snapshot"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr "Motivo"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr "Motivo della creazione di questa copia instantanea"
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Anno-mese-giorno, Ore:minuti:secondi"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr "DN"
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Restaura"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Errore all'aggiunta di un bloccaggio. Contatta i programmatori !"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr "Ripristinare snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Impossibile creare i dati per il bloccaggio nell'annuario LDAP. Contatta "
+"l'amministratore del sistema !"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Copie istantanee"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "Il server LDAP ha risposto: %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
-msgstr "Copia istantanea esistente per questo oggetto"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Sono stati trovati molteplici bloccaggi per lo stesso oggetto da bloccare. "
+"Questo non dovrebbe mai succedere. Ripulire le referenze multiple."
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Elenco dei dipartimenti"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
+msgstr "Timeout in attesa del blocco!"
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Dipartimento"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Modifica malgrado l'avvertimento"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Dominio"
@@ -1970,127 +2087,142 @@ msgstr "Dominio"
 msgid "domain"
 msgstr "Dominio"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organizzazione"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "Organizzazione"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Dipartimento"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Dipartimenti"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "dipartimento"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Proprietà"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Nome dell' %s "
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Nome unico per questo  %s "
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Breve descrizione di questo  %s "
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Categoria"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Categoria di questo  %s "
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr "Sito Web"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr "Sito Web di questo %s"
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Manager"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Responsabile di questo %s "
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Località"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Regione"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Stato"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Indirizzo"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Indirizzo postale di questo %s "
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telefono"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Numero di telefono"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "Facsimile di numero di telefono"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nome"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Oggetto di Dominio"
@@ -2099,33 +2231,33 @@ msgstr "Oggetto di Dominio"
 msgid "domain component"
 msgstr "Oggetto di dominio"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "Paese"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr "Prefisso internazionale"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
-msgstr "Un prefisso internazionale di due lettere da ISO 3166"
+msgstr "Prefisso internazionale a due lettere da ISO 3166"
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Nome della località"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "Località"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Gestisci i dipartimenti"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
@@ -2133,235 +2265,202 @@ msgstr ""
 "Gestire i reparti, i paesi, i componenti di dominio, i domini, le località e"
 " le note di organizzazione,"
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Utenti e gruppi"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr "Gruppi e ruoli"
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr "Gestione dei gruppi e dei ruoli"
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr "Vi permette di gestire gruppi di oggetti, gruppi e ruoli POSIX"
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr "Azione annullata"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Compiti"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
-"Il sistema %s non ha un indirizzo MAC definito, impossibile innescare "
-"l'azione"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr "Impossibile trovare il sistema %s, non si può attivare l'azione"
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
-msgstr "Il sistema %s é in corso d'installazione"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr "Servizio d'infrastruttura"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr "Azione innescata"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Reporting"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Ruolo"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Modifica le proprietà del ruolo"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Modifica le proprietà posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Mostra i gruppi di utenti"
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Mostra i ruoli organizzativi"
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Mostra i gruppi di applicazioni"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Stato"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
-msgstr "Mostra gruppi di gruppi"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
-msgstr "Mostra gruppi non identificati"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Mostra i gruppi principali"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Gruppi e ruoli"
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Mostra i gruppi di posta elettronica"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Gestione dei gruppi e dei ruoli"
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Mostra i gruppi samba"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr "Vi permette di gestire gruppi di oggetti, gruppi e ruoli POSIX"
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr "Mostra voci DSA"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Innesco azione"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Mostra i gruppi di servers"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Pianifica un'azione"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Mostra i gruppi di workstations"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
+msgstr ""
+"Il sistema %s non ha un indirizzo MAC definito, impossibile innescare "
+"l'azione"
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Mostra i gruppi di terminali"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
+msgstr "Impossibile trovare il sistema %s, non si può attivare l'azione"
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Mostra i gruppi di stampanti"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
+msgstr ""
+"Il sistema %s è attualmente in fase di installazione, non può attivare "
+"l'azione"
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Mostra i gruppi di telefoni"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
+msgstr "Azione innescata"
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "Tipo sconosciuto : %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr "Azione chiamata senza errori (i risultati erano \"%s\")"
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
-msgstr "Non esiste il dn: %s"
+msgid "Action called without error (result was \"%s\")"
+msgstr "Azione chiamata senza errori (il risultato è stato \"%s\")"
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Gruppo di oggetti"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Informazioni gruppo di oggetti"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Gruppo"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Nome del gruppo"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Breve descrizione del gruppo"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Propietario"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Oggetti membri"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Oggetti membro di questo gruppo"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Sistema di fiducia"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Modalità di fiducia"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Tipo di autorizzazione per questi host"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "disattivato"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "accesso completo"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "autorizza l'accesso a questi host"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr "Consenti all'utente di connettersi solo a questo elenco di host "
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr "Non é consentito mettre workstations e terminali nello stesso gruppo"
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Elenco dei gruppi"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Innesco azione"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Membri"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Pianifica un'azione"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Ruolo"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Informazioni sul ruolo"
 
@@ -2379,8 +2478,8 @@ msgid "Description of the role"
 msgstr "Descrizione del ruolo"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Numero di telefono"
 
@@ -2396,182 +2495,181 @@ msgstr "Membri del ruolo"
 msgid "Add users for the role"
 msgstr "Aggiungi degli utenti per il ruolo"
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Assegnazioni ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Gestione delle ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Gestione della lista di controllo degli accessi"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Assegnazioni"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Assegnazioni ACL per questa base"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Assegnazioni su un ogetto o sottostruttura %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ", e %d altri"
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr "Assegnazione Dialog ACL"
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Gestione della lista di controllo degli accessi"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Modalità"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr "Si applica ad una sottostruttura completa oppure soltanto alla base?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Sottostruttura"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Base"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Ruolo da applicare"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Per tutti gli utenti"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Applica questo ACL a tutti gli utenti LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Membri"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr "Utenti o gruppi a cui assegnare questo ruolo"
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
-msgstr ", e %d altri"
-
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "Assegnazioni ACL"
-
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Gestione delle ACL"
-
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Gestione della lista di controllo degli accessi"
-
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Assegnazioni"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
+msgstr "Avanzato"
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "Assegnazioni ACL per questa base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr "Messaggio di avviso"
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
-msgstr "Assegnazioni su un ogetto o sottostruttura %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
+"Queste opzioni consentono di limitare membri o target tramite il filtro "
+"LDAP. Il filtro membro non può utilizzare le maschere ed è sicuro di "
+"restituire un numero qualsiasi di risultati poiché verrà applicato solo "
+"all'utente che ha effettuato l'accesso. Per il filtro target, evitare di "
+"utilizzare un filtro che restituisca troppi risultati e, se si utilizzano "
+"maschere modello, evitare di farlo su campi modificabili dall'utente."
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr "Filtro membro"
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
+"Filtro LDAP a cui un membro deve corrispondere per ottenere effettivamente i"
+" diritti"
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr "Filtro target"
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
+msgstr ""
+"Filtro LDAP a cui un dn deve corrispondere per essere effettivamente "
+"interessato. Può utilizzare maschere modello per i campi utente. Esempio: "
+"(manager = %dn%)."
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr "Creazione assegnazione ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr "Crea assegnazione ACL su un dn arbitrario"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr "Dn"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr "DN per il quale si desiderano aggiungere assegnazioni"
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
-msgstr "Impossibile trovare il dn che avete inserito nell'LDAP"
+msgid "The dn you entered could not be found in LDAP"
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "Assegnazioni ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr "Gestione delle assagnazioni ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr "Gestione delle assegnazioni dei ruoli ACL per gli utenti"
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Elenco degli utenti"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Cognome"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Nome"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Utente"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Blocca gli utenti"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Sblocca gli utenti"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Applica il modello"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Nuovo utente a partire dal modello"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Modifica utente"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Elimina utente"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Utenti"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Gestisci gli utenti"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr "Gestire gli account utente e le loro proprietà"
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Blocco dell'account"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
@@ -2580,7 +2678,7 @@ msgstr ""
 "La metodologia password \"%s\"  non sopporta il blocco. L'account \"%s\" non"
 " é stato bloccato!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
@@ -2589,198 +2687,270 @@ msgstr ""
 "Blocco non riuscito utilizzando il metodo password \"%s\". L'account \"%s\" "
 "non è stato bloccato!"
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Sblocca l'account"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Blocca l'account"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Account utente"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Informazioni account utente"
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Contiene i parametri per questi oggetti: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Ruoli di controllo d'accesso"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "Ruolo ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Nome unico per questo ruolo"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Breve descrizione di questo ruolo"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr "ACL appartenenti a questo gruppo"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Nessuna ACL per questa categoria"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL per questi oggetti: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Modifica la categoria di ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Resetta la categoria di ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Elenco delle categorie di ACL disponibili"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Tutti gli oggetti nell'attuale sottostruttura"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr "Modifica ACL per \"%s\""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "lettura"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Gestione dei ruoli ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "scrittura"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "Gestire i ruoli ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Mostra/Nascondi le opzioni avanzate"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Creare degli oggetti"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Sposta degli oggetti"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Elimina degli oggetti"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Concedere l'autorizzazione al proprietario"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "L'oggetto al completo"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "Gestione dei ruoli ACL"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
-msgstr "Gestire i ruoli ACL"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Attiva le copie istantanee"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Questo abilita la possibilità di salvare alcuni stati delle entrate per "
+"poterle in seguito restaurare"
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Base per le copie istantanee"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Configurazione plugins"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "Configurazione dei plugins di FusionDirectory"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Gruppi di oggetti"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "RDN gruppi"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Ramo nel quale i gruppi di oggetti saranno salvati"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
-msgstr "Obbligare a chiedere la password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
-msgstr ""
-"Utile se si aggiunge un gancio con valore di password quando le password "
-"degli utenti SASL vengono modificate"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
+msgstr "Visualizza l'uscita trigger"
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Configurazione dashboard"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr "Configurazione del plugin dashbord di FusionDirectory"
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Schema nome dashbord"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Numero di cifre"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "NUmero di cifre da usare dopo il prefisso"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Prefissi"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr "Prefissi da usare per gli Id del computer"
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "Utenti dashbord scaduti"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Numero di giorni"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
@@ -2789,6 +2959,8 @@ msgstr ""
 "nel dashboard la prossima scadenza degli account"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -2796,48 +2968,50 @@ msgstr "Plugins"
 msgid "Configuration for plugins"
 msgstr "Configurazione dei plugins"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Recupero della password"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr "Recupero"
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Gestione delle impostazioni per il recupero della password"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Impostazioni per il recupero della password"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Attivare il recupero della password"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
-msgstr "Sia che si attivi o no la funzione di recupero password"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Indirizzo email del mittente"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "Indirizzo e-mail da cui la mail sarà inviata"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Durata del link (minuti)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Numero di minuti prima che il link di recupero scada"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "Stringa aleatoria per il tokens"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2845,53 +3019,51 @@ msgstr ""
 "Solo una misura di sicurezza, potete mettere qualsiasi cosa dentro, anche "
 "dei caratteri casuali"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Consentire l'uso di indirizzi alternativi"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Gli utenti possono usare uno dei loro indirizzi email alternativi per il "
-"recupero della loro password"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Attributo di connessione"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 "Di solito UID, ma è possibile utilizzare qualcos'altro per esempio in caso "
 "di SSO"
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Prima email"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Oggetto"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Soggetto della prima email"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] link verso il recupero della password"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Corpo del messaggio (il primo %s è il login, il secondo è il link)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2900,7 +3072,7 @@ msgstr ""
 "Corpo del messaggio della prima email, inviata quando l'utente chiede una "
 "nuova password. %s è usato per il login utente e il link di recupero."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2921,25 +3093,25 @@ msgstr ""
 "\n"
 "Questo link é valido solo per 10 minuti."
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Seconda email"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Soggetto della seconda email"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 "[FusionDirectory] Il recupero della password è stato eseguito con successo"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Corpo del messaggio (%s è il login utente)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2948,7 +3120,7 @@ msgstr ""
 "Corpo del messaggio della seconda email, inviata per confermare la modifica "
 "della password. %s è usato per il login dell'utente."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2961,29 +3133,86 @@ msgstr ""
 "La tua password è stata modificata.\n"
 "Il tuo login è sempre %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr "Trigger"
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr "Configurazione dei trigger"
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr "Visualizza l'uscita trigger"
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+"Se abilitato, l'uscita di esecuzione del trigger viene visualizzata "
+"all'utente mediante una finestra di dialogo."
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr "Trigger che vengono chiamati quando si verificano azioni specifich"
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr "Tab"
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr "Il tab che riguarda questo trigger"
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Quando chiamare questo comando"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr "Disattivato"
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr "Usalo per disattivare temporaneamente un trigger"
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr "Comando"
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Il comando che sarà chiamato"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configurazione"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "Configurazione di FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr "Schermo di configirazione di FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Temi e apparenze"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Lingua"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2992,41 +3221,41 @@ msgstr ""
 "usato quello richiesto dal browser. Questa impostazione puó essere "
 "ridefinita per utente."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Tema"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Tema da usare"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Fuso orario"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Fuso orario da usare"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Impostazioni di base"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "Dimensione massima dell'annuario LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 "Definisce il numero di voci ottenibili da LDAP come impostazione "
 "predefinita."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Blocco modifica"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -3034,98 +3263,87 @@ msgstr ""
 "Controlla se una voce attualmente in fase di modifica è stata modificata al "
 "di fuori di FusionDirectory nel frattempo."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Attiva il debugging"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Log degli eventi dal lato di FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr "Convalida dello schema"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr "Attivare la validazione degli schemi alla connessione"
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Attiva le copie istantanee"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-"Questo abilita la possibilità di salvare alcuni stati delle entrate per "
-"poterle in seguito restaurare"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Base per le copie istantanee"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "La base dove gli snapshot saranno immagazzinati nell'annuario LDAP."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
-msgstr "Chiavi esterne con caratteri wildcard"
+msgstr "Chiavi esterne con caratteri jolly"
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
-"Abilita le ricerche con caratteri jolly come member = * quando si sposta un "
-"intero reparto. Ciò aprirà tutti i gruppi e i ruoli esistenti per "
-"assicurarsi che le chiavi straniere siano rispettate. Lento su grandi "
-"alberi."
+"Abilita ricerche con caratteri jolly come member = * quando si sposta un "
+"intero dipartimento. Ciò aprirà tutti i gruppi e i ruoli esistenti per "
+"garantire il rispetto delle chiavi esterne. Lento su grandi alberi."
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Impostazioni per la password"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr "Hash password consentiti"
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+"Hash delle password che possono essere utilizzati per le password "
+"dell'utente"
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "Algoritmo di memorizzazione delle password"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "Algoritmo di default da usare"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Forza l'algoritmo di default"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr "Forza l'uso dell'algoritmo di default per le password"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Lunghezza minima per le password"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Lunghezza minima per le password utente"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Differenze minime della password"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr "Numero minimo di caratteri diversi rispetto alla  vecchia password"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Utilizza una scadenza per l'account"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
@@ -3133,33 +3351,33 @@ msgstr ""
 "Attiva gli attributi di test della password durante la connessione a "
 "FusionDirectory e forza il rinnovo della password oppure blocca l'account"
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "SASL Realm"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr "Attributo da salvare nell'attributo userPassword"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Connessione e sessione"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 "Quale attributo LDAP deve essere utilizzato come nome di login durante il "
 "login."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Forza le connessioni criptate"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3167,171 +3385,184 @@ msgstr ""
 "Abilita i controlli di sicurezza PHP per forzare l'accesso cifrato (https) "
 "verso l'interfaccia web."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Mostra un avvertimento quando la sessione non è criptata"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 "verrà visualizzato un avvertimento all'utente quando si utilizza http invece"
 " di https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Durata di vita della sessione"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr "Definisce, in secondi, quando una sessione scade (0 per disabilitare)"
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr "Autentificazione HTTP Basic"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
+msgstr "Metodo di accesso"
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
-"Usa protocollo di autenticazione HTTP Basic anziché il modulo di login."
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
-msgstr "Autenticazione HTTP Header"
+"Quale metodo di login dovrebbe essere usato per connettersi a "
+"FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr "Utilizzare l'autenticazione HTTP Header anziché il modulo di login."
-
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr "Nome intestazione"
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr "Nome dell'header contenente identificativo utente."
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr "Percorso della chiave"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr "Percorso a chiave privata FusionDirectory . Inutilizzato per ora."
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr "Percorso del Certificato"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr "Percorso al certificato di FusionDirectory;  Inutilizzato per ora."
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr "Percorso del certificato CA"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 "Percorso al certificato CA. Usato per convalidare l'host del Server "
 "Argonaut."
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr "CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr "Abilita CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr "IL Login CAS verrà usato al posto del bind LDAP"
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr "Percorso del file contenente il certificato CA sul server CAS"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Host"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr "Host del server CAS"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Porta"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr "Porta sulla quale il server CAS è all'ascolto"
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr "Contesto CAS"
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr "Contesto CAS da utilizzare"
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr "Errore dettagliato "
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr "Attiva errori dettagliati in phpCAS. Evita in produzione. "
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 "Ramo dell'annuario dove sono immagazzinate le informazioni sugli utenti e i "
 "gruppi"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Tipo di attributo DN degli utenti"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
-msgstr "Attributo da usare all'inizio del dn degli utenti"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr "Modello CN"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr "Modello da usare per costruire il nome comune del campo"
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Regola di denominazione rigorosa"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr "Consente il controllo rigoroso di nomi utente e di gruppo"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
-msgstr "RDN utenti"
+msgstr "Utenti RDNi"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "Ramo nel quale gli utenti sono immagazzinati"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr "Ruolo ACL RDN"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr "Ramo nel quale i ruoli ACL sono immagazzinati"
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr "Limitare i membri del ruolo"
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
@@ -3339,22 +3570,22 @@ msgstr ""
 "Quando è abilitato solo gli utenti dello stesso ramo o membri di gruppi "
 "dello stesso ramo possono essere aggiunti ad un ruolo."
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr "Campi indirizzi separati"
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 "Esporre la via, la casella postale e i campi del codice postale anziché "
 "l'indirizzo postale."
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr "Modello indirizzo postale"
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
@@ -3362,28 +3593,37 @@ msgstr ""
 "Quando si utilizzano campi di indirizzi separati, è possibile utilizzare un "
 "modello per riempire il campo postalAddress."
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr "Dimensione massima avatar"
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+"Larghezza e altezza massime dell'immagine dell'utente in pixel. Le immagini "
+"caricate più grandi verranno ridimensionate."
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Debugging"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Mostra gli errori"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
-"Mosta gli errori PHP nella parte alta della schermata. Questo dovrebbe "
-"essere disabilitato nelle installazioni di produzione, a causa di possibili "
-"password che potrebbero passare in chiaro."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Durata massima di una richiesta LDAP"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
@@ -3391,11 +3631,11 @@ msgstr ""
 "Interrompi le azioni LDAP se non ci sono risposte nel tempo limite impartito"
 " in secondi."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Inserisci le statistiche dell'annuario LDAP nel giornale di sistema"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3403,23 +3643,31 @@ msgstr ""
 "Invia le statistiche di timing LDAP al syslog. Questo può aiutare a trovare "
 "i problemi di indicizzazione o i filtri di ricerca erronei."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Livello per il debug"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Mostra alcune informazioni su ogni caricamento della pagina."
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr "Registra i messaggi di debug"
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr "Invia anche l'output di debug a syslog"
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Altro"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Mostra il riepilogo negli elenchi"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3428,11 +3676,11 @@ msgstr ""
 "delle liste, visualizzando una breve sintesi del tipo e del numero di "
 "elementi nella lista."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr "Mostra tab ACL su tutti gli oggetti"
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
@@ -3440,123 +3688,171 @@ msgstr ""
 "Per l'impostazione di diritti ACL molto specifici potreste aver bisogno di "
 "dare accesso ad un singolo oggetto."
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr "Categorie di reparto disponibili"
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr "Categorie disponibili nel menu a discesa"
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 "Utilizza questa funzione per nascondere alcune voci di menu a determinati "
 "gruppi di utenti"
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr "Gruppo o ruolo"
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr "PLugin per la lista nera"
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr "Lista nera del menu Plugin"
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr "Limite filtro target ACL"
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+"Definisce il numero massimo di voci che un filtro target ACL può restituire"
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Connessioni"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatico"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Raggruppa %s"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "Hooks che sarà chiamato quando un'azione specificasi verifica"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Ruolo %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
-msgstr "Tab"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
+msgstr ""
+"Sembra che la lingua selezionata \"%s\" non sia installata sul sistema. Si "
+"prega di installarla o selezionarne un'altra."
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "Il tab concernente questo hook"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Quando chiamare questo comando"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Versione"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
-msgstr "Comando"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "Il comando che sarà chiamato"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr "Origine"
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
-msgstr "Mostra hook di uscita"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
-"Quando l'esecuzione dell'hook é abilitata con successo il risultato é "
-"mostrato all'utente tramite una finestra di dialogo."
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatico"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Dashboard"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr "Statistiche e informazioni varie"
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr "Vedi dashboard"
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Statistiche"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+"Le statistiche per il tipo \"%s\" non possono essere calcolate a causa del "
+"seguente errore: %s"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Statistiche sugli utenti"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Statistiche utenti"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Gruppi di statistiche"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Account scaduti"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Nome utente"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Data di scadenza"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Indirizzo di posta elettronica"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
-"Le statistiche dell'utente non possono essere calcolate a causa del seguente"
-" errore LDAP: %s"
+"Le statistiche utente non possono essere calcolate a causa del seguente "
+"errore LDAP: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
-"Le statistiche di gruppo non possono essere calcolate a causa del seguente "
+"Le statistiche del gruppo non possono essere calcolate a causa del seguente "
 "errore LDAP: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
@@ -3565,33 +3861,33 @@ msgstr ""
 "Le informazioni sugli utenti scaduti non possono essere calcolate a causa "
 "del seguente errore LDAP: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
-"Le informazioni sugli utenti scaduti non possono essere calcolate a causa "
-"del seguente errore: %s"
+"Le informazioni utente scadute non possono essere calcolate a causa del "
+"seguente errore: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr "Non trovato (%s)"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr "Passwords"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr "Statistiche sulle passwords"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr "Statistiche passwords"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
@@ -3600,113 +3896,81 @@ msgstr ""
 "Le statistiche delle password non possono essere calcolate a causa del "
 "seguente errore LDAP: %s"
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Dashboard"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr "Statistiche e informazioni varie"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "Reporting"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr "Vedi dashboard"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Statistiche"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-"Le statistiche per il tipo \"%s\" non possono essere calcolate a causa del "
-"seguente errore: %s"
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr "Abbonamento"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr "Informazioni sull'abbonamento"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr "Informazioni sul tuo abbonamento FusionDirectory "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr "Testo informativo per l'abbonamento"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr "Nome dell'abbonamento"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "Id"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr "ID abbonamento "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "Tipo di sottoscrizione"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr "Contratto"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr "Riferimento del contratto "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Data d'inizio"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr "Data di inizio di questo abbonamento"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "Data di fine"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr "Data di fine di questo abbonamento "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr "Importa il tuo abbonamento "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr "Testo informativo per abbonamento scaduto "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr "Importa abbonamento "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Importa"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
@@ -3715,7 +3979,7 @@ msgstr ""
 "Non disponi di un abbonamento valido per questa istanza di FusionDirectory. "
 "Visitare %s per un elenco delle opzioni disponibili. "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3725,53 +3989,202 @@ msgstr ""
 "visitare %s per rinnovarlo. "
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr "Nessun dato. Hai dimenticato di caricare un file? "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr "Impossibile analizzare il file importato "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr "Manca la sezione \"%s\" nel file importato "
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr "Attributo \"%s\"mancante nel file importato "
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Pianifica"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Modifica gruppi e ruoli degli utenti"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
-msgstr "Gruppi di appartenenza"
+msgid "Group memberships"
+msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
 msgstr "Ruoli di appartenenza"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr "Impossibile rimuovere l'appartenenza al gruppo %s:%s"
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr "Impossibile rimuovere l'appartenenza al ruolo %s:%s"
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr "Impossibile aggiungere l'appartenenza al gruppo %s:%s"
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr "Impossibile aggiungere l'appartenenza al ruolo %s:%s"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Algoritmo di memorizzazione delle password"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Algoritmo da usare per la password"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3779,156 +4192,210 @@ msgstr "Algoritmo da usare per la password"
 msgid "Password"
 msgstr "Password"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Password (lasciare vuoto se non si desidera cambiarla)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Ripeti password"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Stessa password come sopra, per evitare errori"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr "Bloccato"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr "Se gli account creati con questo modello saranno bloccati"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr "Troppi elementi nel valore dell'array: %d invece di %d"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr "Elementi insufficienti nel valore dell'array: %d invece di %d"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+"Il valore della matrice per il campo della password deve contenere chiavi "
+"numeriche"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+"Tipo di valore non valido per il campo della password, deve essere array o "
+"stringa"
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Utente"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Informazioni account utente"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Account utente"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr "Stato di blocco utente"
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Informazioni personali"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Cognome"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Cognome utente"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Nome"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Nme utente"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr "Iniziali"
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+"Le iniziali di alcuni o di tutti i nomi dell'individuo, ma non il cognome(i)"
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Breve descrizione dell'utente"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Foto"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "Avatar di questo utente"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr "Informazioni di contatto organizzativo"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Indirizzo postale ufficio"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Stanza No."
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Numero dell'ufficio"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Telefono ufficio"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Cellulare"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Telefono cellulare professionale"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Cercapersone"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "Numero pager ufficio"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Numero fax ufficio"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Home Page"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "Pagina Web personale"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
-msgstr "Informazioni account utente"
+msgstr "Informazioni account"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr "Login utente"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Lingua preferita"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Password dell'utente"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Informazioni personali utente"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Mostra il nome"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr "Nome col quale questo utente dovrebbe apparire. Usato da Exchange."
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr "Indirizzo di casa"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Indirizzo postale di casa"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Numero di telefono privato"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Numero di telefono di casa"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Informazioni organizzazione"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Titolo"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
@@ -3936,78 +4403,78 @@ msgstr ""
 "Titolo di una persona nel proprio contesto organizzativo. Ogni titolo è una "
 "valore di questo attributo multivalore"
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr "Unità"
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr "Unità organizzativa a cui appartiene questo utente"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Dipartimento No."
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Numero del dipartimento"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Matricola No."
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Matricola dell'impiegato"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Qualifica"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr "Via"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr "Parte dell'indirizzo Via"
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr "Casella postale"
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "CAP"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
-msgstr "Impossibile trovare %s nell'annuario LDAP"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
+msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr "Non le é permesso cambiare la propria password"
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr "Devi attendere %d secondi prima di cambiare di nuovo la password"
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "La password si trova nella cronologia delle vecchie password"
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr "La password non è stata cambiata dal valore esistente"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Devi specificare la tua 'Password attuale' per procedere."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
@@ -4015,43 +4482,43 @@ msgstr ""
 "Le password che hai inserito come \" Nuova password \" e \"Ripeti nuova "
 "password\" non corrispondono."
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Imposta la nuova password"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 "La password che hai definito come 'Nuova password' è troppo simile a quella "
 "attuale."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr "La password utilizzata come nuova è troppo breve."
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "La password contiene caratteri Unicode eventualmente problematici!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Riferimenti"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Benvenuto %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Completato"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Successivo"
 
@@ -4128,10 +4595,6 @@ msgstr ""
 "Password dell'account amministratore da utilizzare per il legame alla LDAP ."
 " "
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Stato"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Stato attuale"
@@ -4158,39 +4621,39 @@ msgstr ""
 "Questa finestra permette di indicare la configurazione di base di LDAP per "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "La connessione anonima sul server '%s' è fallita !"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "La connessione dell'utente '%s' è fallita !"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Riprova"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "La connessione anonima al server '%s' è riuscita."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Aggiorna"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Specifica il nome utente e la password !"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "La connessione dell'utente '%s' al server '%s' è riuscita !"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
@@ -4199,7 +4662,7 @@ msgstr ""
 "%s\n"
 "Schema \"%s\": %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "Verifica del modulo PHP e delle sue estensioni"
 
@@ -4216,32 +4679,32 @@ msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 "Verifiche di base della compatibilità PHP e delle estensioni necessarie"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Controllo della versione di PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP deve essere nella versione %s o superiore."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Aggiorna ad una versione supportata."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory ha bisogno di questo modulo per poter comunicare con il "
 "server LDAP."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory ha bisogno di questo modulo per l'interfaccia multilingue."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4249,31 +4712,14 @@ msgstr ""
 "FusionDirectory ha bisogno di questo modulo per comunicare con differenti "
 "tipi di server e protocolli."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr "Controllo di interi pseudo casuali crittograficamente sicuri"
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-"Devi usare PHP> = 7 o avere il modulo openssl attivato in modo che "
-"FusionDirectory possa generare interi pseudo-casuali crittograficamente "
-"sicuri."
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr "Effettua l'aggiornamento a PHP7 o attiva il modulo openssl."
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 "FusionDirectory ha bisogno di questo modulo per codificare le variabili per "
 "l'uso di JavaScript."
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
@@ -4281,58 +4727,50 @@ msgstr ""
 "FusionDirectory richiede questo modulo per filtrare una variabile con un "
 "filtro specificato."
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 "FusionDirectory ha bisogno di questo modulo per l'integrazione di Samba"
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory richiede il modulo 'mhash' oppure 'sha1' per poter "
-"utilizzare l'algoritmo di criptaggio SSHA."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory ha bisogno di questo modulo per comunicare con il server "
 "IMAP."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 "FusionDirectory ha bisogno di questo modulo per gestire i caratteri Unicode."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 "FusionDirectory ha bisogno di questa estensione per gestire le immagini."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "modulo di compressione"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 "FusionDirectory ha bisogno di questa estensione per gestire gli snapshot (le"
 " copie istantanee)."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr "PHP utilizza questa variabile per cancellare delle vecchie sessioni."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4340,7 +4778,7 @@ msgstr ""
 "Impostare questa variabile a \"1 giorno\" eviterà di perdere i coockies e le"
 " sessioni prima che siano realmente scadute."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4348,12 +4786,12 @@ msgstr ""
 "Cerca la variabile 'session.gc_maxlifetime' nel tuo file php.ini e impostala"
 " a 86400 o un valore più grande."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Off"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4361,13 +4799,13 @@ msgstr ""
 "Per non avere problemi nell'uso di FusionDirectory, è necessario impostare "
 "l'opzione 'session.auto_start' su 'Off' nel file php.ini."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Cerca la variabile 'session.auto_start' nel file php.ini e impostala su "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4376,14 +4814,14 @@ msgstr ""
 "memoria causeranno degli errori imprevisti che non saranno riproducibili ! "
 "Aumenta la memoria per delle installazioni più complesse."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Cerca la variabile 'memory_limit' nel file php.ini e impostala su '128MB' o "
 "un valore più grande."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4391,16 +4829,16 @@ msgstr ""
 "Questa opzione influenza la gestione delle uscite. Per aumentare le "
 "prestazioni, impostala su 'Off'."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Cerca la variabile 'implicit_flush' nel file php.ini e impostala su 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Il tempo di esecuzione deve essere di almeno 30 secondi."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4408,7 +4846,7 @@ msgstr ""
 "Cerca la variabile 'max_execution_time' nel file php.ini e impostala su '30'"
 " o un valore più grande."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4417,28 +4855,28 @@ msgstr ""
 "'Off'. PHP non trasmetterà alcuna informazione a proposito del server che "
 "stai configurando."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Cerca la variabile 'expose_php' nel file php.ini e impostala su 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migra"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Ispezione dell'annuario LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analisi dell'annuario LDAP per la compatibilità con FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr "Dare tutti i diritti sugli utenti nel ramo dato"
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4446,83 +4884,85 @@ msgstr ""
 "Permette agli utenti di modificare le proprie informazioni (uso di scheda e "
 "posix principale solo sulla base)"
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Permette agli utenti di modificare la loro password (usare solo su base)"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Ispezione delle classi di oggetti nell'oggetto radice"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Verifica del permesso di accesso al database LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Verifica degli utenti nascosti"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Verifica del super amministratore"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr "Controllo per i ruoli ed i gruppi ACL predefiniti"
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Verifica degli utenti al di fuori del ramo \"people\""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Verifica dei gruppi al di fuori del ramo \"groups\""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Verifica dei dipartimenti nascosti"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Verifica dei possibili doppioni UID"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr "Verifica dei gruppi POSIX all'esterno dell'albero dei gruppi"
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
-msgstr "Verifica dei possibili doppioni GID"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "La richiesta al database LDAP è fallita!"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr "Forse l'\"oggetto radice\" é mancante"
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Fallito"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "L'oggetto di classe '%s' richiesto per FusionDirectory è mancante !"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Verifica la tua installazione."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4531,126 +4971,187 @@ msgstr ""
 "Impossibile gestire il tipo di oggetto strutturale del tuo oggetto radice. "
 "Prova ad aggiungere manualmente la classe d'oggetto '%s'. "
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr "L'utente \"%s\" non ha accesso completo al vostro database LDAP."
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr "L'utente \"%s\" non ha pieno accesso al database LDAP."
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+"Trovato più di %dutente(i) che non saranno visibili in FusionDirectory o che"
+" sono incompleti."
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"Ho trovato %s utenti(e) che non saranno visibili in FusionDirectory che sono"
-" incompleti."
+"Sono stati trovati %d utenti che non saranno visibili in FusionDirectory o "
+"che sono incompleti."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr "Migrazione utente"
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Errore durante la migrazione"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
-msgstr "Impossibile eseguire la migrazione di voce \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
+"Impossibile migrare la voce \"%s\":\n"
+"\n"
+"%s"
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Gruppi"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Ruoli"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
-"Non ho trovato alcun amministratore di FusionDirectory nel tuo annuario "
-"LDAP."
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr "Dà tutti i diritti su ogni oggetto"
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr "I ruoli ACL di default non sono stati inseriti"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr "Mancano alcuni ruoli ACL di default"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr "Ruoli ACL di default sono stati inseriti"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
-msgstr "Impossibile aggiungere ruolo \"%s\" ACL "
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
+"Impossibile aggiungere il ruolo ACL \"%s\":\n"
+"\n"
+"%s"
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
-msgstr "Ho trovato %s utente(i) al di fuori del ramo \"%s\" configurato."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr "Trovato(i) più di %d utente(i)i fuori dall'albero configurato \"%s\"."
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr "%d utente(i) trovato(i) al di fuori dell'albero \"%s\" configurato."
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr "Analisi del risultato LDAP non riuscita "
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Sposta gli utenti nel ramo utenti configurato nell'annuario"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr "Impossibile spostare le entrate nel dipartimento richiesto!"
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
-msgstr "L'entrata verrà spostata"
-
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "verso"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
+msgstr ""
+"La voce verrà spostata da:\n"
+"\t%s\n"
+"a\n"
+"\t%s"
 
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Le seguenti reference saranno aggiornate"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr "Trovato più di %d gruppi all'esterno dell'albero \"%s\" configurato."
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Ho trovato %s gruppi al di fuori del ramo '%s' configurato."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr "Trovati %d gruppi all'esterno dell'albero \"%s\" configurato."
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr "Sposta i gruppi nel ramo di gruppi configurato"
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Ho trovato %s departimenti(o) che non saranno visibili in FusionDirectory."
+"Trovati più di %d gruppi POSIX all'esterno dell'albero \"%s\" configurato."
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
-msgstr "Migrazione Dipartilento"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr "Trovati %d gruppi POSIX all'esterno dell'albero \"%s\" configurato."
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr "Spostare i gruppi POSIX nella struttura dei gruppi configurati"
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+"Trovato più di %d dipartimento(i) che non sarà visibile in FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
-msgstr "Trovati %s valori duplicati per l'attributo \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr "Trovati %d dipartimenti che non saranno visibili in FusionDirectory."
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr "Migrazione Dipartilento"
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
-msgstr "Trovati %s valori duplicati per l'attributo \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
+msgstr "Trovato %dvalori duplicati per l'attributo \""
 
 #: setup/class_setupStepFinish.inc:40
 msgid "Finish"
@@ -4664,7 +5165,7 @@ msgstr "Finito - Scrivi il file di configurazione"
 msgid "Write configuration file"
 msgstr "Scrivi il file di configurazione"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4672,21 +5173,18 @@ msgstr ""
 "Il file di configurazione è attualmente accessibile in lettura a tutti. "
 "Aggiorna i permessi di accesso sul file !"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 "Il file di configurazione attualmente non è leggibile oppure non esiste."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Dopo aver scaricato e messo il file nella cartella %s, assicurati che sia "
-"solo l'account abilitato al server Web a poter leggere %s, mentre gli altri "
-"account non dovrebbero."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4706,127 +5204,27 @@ msgstr ""
 "sito . Scegliendo \" automatico\" utilizzerà la lingua richiesta dal "
 "browser. Questa impostazione può essere sovrascritto per utente ."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"La cartella '%s' dichiarata come cartella di compilazione è inaccessibile !"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-"Il file di configurazione %s/%s non è leggibile. Operazione Annullata."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr "Attenzione: la sessione  <a href=\"%s\"> non é crittografata!</a>"
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Indirizzo di posta elettronica"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr "Alcun account trovato con login \"%s\" "
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr "Trovati più accounts con login \"%s\""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr "Non c'è nessun account che usa l'indirizzo mail %s"
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr "Ci sono più account che usano l'indirizzo mail %s"
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-"L'utente che usa la mail \"%s\" é bloccato. Si prega di contattare "
-"l'amministratore di sistema."
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Contattare l'amministratore, c'è stato un problema con il server di posta "
-"elettronica"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "Questo token non è valido"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-"Si è verificato un problema con il server mail, la email di conferma non è "
-"stata inviata"
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Configurazione PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Errore fatale: Register globals è attivato. FusionDirectory rifiuterà ogni "
-"accesso utente finchè questo errore non sarà corretto da un amministratore."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Modifica della password"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr "La tua password sta per scadere, per favore cambiala !"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr "La tua password é scaduta, per favore impostarne una nuova."
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Fine della memoria disponibile !"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Le verifiche ACL dell'utente sono state disattivate"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Estensione"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-"Errore fatale: Impossibile trovare alcuna definizione per il plugin '%s' "
-"('%s' non è un file)!"
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Errore di configurazione"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4834,111 +5232,26 @@ msgstr ""
 "Errore fatale: non tutte le variabili POST sono state trasferite da PHP - "
 "per favore informane l'amministratore!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Entra"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-"Attenzione: la durata della sessione configurata nel fusiondirectory.conf "
-"verrà sostituita dalle impostazioni di php.ini."
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-"La configurazione %s/%s di FusionDirectory non è leggibile. Esegui "
-"fusiondirectory-setup --check-config per risolvere questo problema."
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Errore Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
-"Il directory \"%s\" specificato come directory di compilazione non é "
-"accessibile!"
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "La tua sessione in FusionDirectory è scaduta!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr "Parametro \"%s\" di plugin invalido"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr "Nessuna sessione trovata!"
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr "Lo schema LDAP verifica gli errori riportati:"
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr "Errore di schema LDAP"
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Prego specifica un nome utente valido !"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Prego specifica la tua password !"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Verifica il nome utente e la password."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Conto bloccato. Contatta l'amministratore del sistema!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr "Nessun valore trovato nell'header HTTP \"%s\""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr "L'utente header \"%s\"  non è stato trovato nel LDAP"
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr "L'accesso con utente \"%s\" ha innescato l'errore: %s"
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr "Impossibile trovare l'utente \"%s\" CAS nell'annuario LDAP"
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Il tuo navigatore web ha i cookies disattivati. Attiva i cookies e ricarica "
-"la pagina prima di connetterti !"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtro"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4959,25 +5272,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr "Premi \"Rimuovi\" per continuare oppure \"Annulla\" per interrompere"
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Mostra i modelli"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Mostra gli utenti funzionali"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Mostra gli utenti POSIX"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Mostra gli utenti di posta elettronica"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Mostra/Nascondi le opzioni avanzate"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Mostra gli utenti di Samba"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "L'oggetto al completo"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4987,8 +5288,8 @@ msgstr[1] "Ci sono %1 account scaduti"
 msgstr[2] "Ci sono %1 account scaduti"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
-msgstr "Non ci sono account scaduti"
+msgid "There are no expired accounts"
+msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
@@ -5041,11 +5342,11 @@ msgstr[1] "Ci sono %1 utenti:"
 msgstr[2] "Ci sono %1 utenti:"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
-msgstr[0] "Uno di essi usa %1  metodo"
-msgstr[1] "%2 di essi usano %1 metodo"
-msgstr[2] "%2 di essi usano %1 metodo"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
@@ -5055,19 +5356,19 @@ msgstr[1] "%1 di essi sono bloccati"
 msgstr[2] "%1 di essi sono bloccati"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
-msgstr "Nessuno di loro è bloccato"
+msgid "None of them are locked"
+msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
-msgstr "Non vi sono utenti"
+msgstr "Non ci sono utenti"
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
-msgstr[0] "Uno di essi ha %1 account"
-msgstr[1] "%2 di essi hanno un %1 account"
-msgstr[2] "%2 di essi hanno un %1 account"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -5114,10 +5415,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Aggiungi la classe di oggetto richiesta alla base LDAP"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Attuale"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Dopo la migrazione"
 
@@ -5139,13 +5442,10 @@ msgstr "Fusiondirectory funzionerà anche senza aver corretto questo."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Sembra che sia la prima volta che avvii FusionDirectory - per il momento non"
-" trovo nessun file di configurazione. Questo assistente ti potrà aiutare "
-"durante la fase di configurazione."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -5187,16 +5487,13 @@ msgstr "Per continuare:"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
-"Per motivi di sicurezza é necessario autenticarsi per l' installazione "
-"creando il file ' % 1 ', contenente l'ID di sessione corrente sui server "
-"filesystem locale. Questo può essere fatto eseguendo il comando seguente :"
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Premi il bottone 'Continua' quando avrai finito."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -5271,7 +5568,12 @@ msgstr ""
 "Se vuoi sapere cosa sarà fatto quando migrerai le \"entries\" selezionate, "
 "usa il bottone \"Mostra i cambiamenti\" qui sotto, per vedere il file LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Seleziona tutto"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Mostra le modifiche"
 
@@ -5296,7 +5598,7 @@ msgid ""
 msgstr ""
 "Questa finestra di dialogo fornisce un modo semplice per cambiare la "
 "password. <br/>Immettere la nuova password (due volte) nei campi sottostanti"
-" e premere il pulsante \"Cambia\". "
+" e premere il pulsante \"Cambia\"."
 
 #: ihtml/themes/legacy/recovery.tpl.c:14 ihtml/themes/legacy/recovery.tpl.c:17
 #: ihtml/themes/legacy/recovery.tpl.c:20 ihtml/themes/legacy/login.tpl.c:8
@@ -5393,14 +5695,28 @@ msgid "I forgot my password"
 msgstr "Ho dimenticato la mia password"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Il tuo navigatore web ha i cookies disattivati. Attiva i cookies e ricarica "
+"la pagina prima di connetterti !"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Clicca qui per connetterti"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr "Autenticazione a due fattori"
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr "Attenzione! Stai per cancellare i seguenti oggetti"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5415,6 +5731,61 @@ msgstr ""
 "Quindi - se sei sicuro - premi 'Rimuovi' per continuare oppure 'Annulla' per"
 " interrompere."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr "Attenzione: stai per archiviare i seguenti oggetti"
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+"Quindi, se sei sicuro, premi \"Archivia\" per continuare o \"Annulla\" per "
+"interrompere."
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr "Archivio"
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Sotto"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Azioni"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr "Data minima per % 1"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr "Più nuovo di"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr "Data massima per % 1"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr "Più vecchio di"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtro"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr "Tipi"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Cerca nella sottostruttura"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Applica filtro"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr "Crea un nuovo oggetto usando i modelli"
@@ -5424,33 +5795,26 @@ msgstr "Crea un nuovo oggetto usando i modelli"
 msgid "Continue"
 msgstr "Continua"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\"> Il Team "
-"FusionDirectory, %2 </a>"
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Rilevato un conflitto di chiusura"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
+msgid "The following entries are locked:"
+msgstr "Le voci seguenti sono bloccate:"
+
+#: ihtml/themes/breezy/islocked.tpl.c:11
 msgid "\"%1\" has been locked by \"%2\" since %3"
 msgstr "\"%1\" é stato bloccato da \"%2\" dalle %3"
 
-#: ihtml/themes/breezy/islocked.tpl.c:11
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
-"Se questo conflitto di chiusura è falso, un'altra persona potrebbe aver "
-"chiuso il navigatore web durante un'operazione di inserimento dati. In "
-"questo caso puoi togliere il blocco premendo il tasto \"%1\"."
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Solo lettura"
 
@@ -5470,6 +5834,11 @@ msgstr ""
 "Quindi - se sei sicuro - premi 'Continua' per continuare oppure 'Annulla' "
 "per interrompere."
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Invia"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Principale"
@@ -5488,6 +5857,10 @@ msgid "Session expires in %d!"
 msgstr "La sessione termina a %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr "Il limite di dimensione di% 1 voci è stato superato! "
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5500,24 +5873,27 @@ msgstr ""
 "quella di limitare la ricerca a dei piccoli valori e di utilizzare i filtri "
 "per ottenere i valori ricercati."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Scegli il modo di reagire per questa sessione"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
-msgstr ""
-"ignora questo errore e mostra tutte le voci restituite dal server LDAP"
+msgid "Please choose the way to react for this session:"
+msgstr "Scegli la modalità di reazione per questa sessione:"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+"Ignora questo errore e mostra tutte le voci restituite dal server LDAP "
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"ignora questo errore e mostra tutte le voci che rientrano nel sizelimit "
-"definito e lasciami invece utilizzare i filtri per limitare i dati da "
-"visualizzare "
+"Ignora questo errore e mostra tutte le voci che rientrano nel limite di "
+"dimensione definito e lasciami utilizzare i filtri "
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr "Modifica il limite di dimensione in: "
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Attiva"
diff --git a/locale/ja/fusiondirectory.po b/locale/ja/fusiondirectory.po
index 9b8164ce175412223dc3a405bb972c6a961d6b19..c1c123c77e5dd6606b4f57d25b2a6c848703b1c2 100644
--- a/locale/ja/fusiondirectory.po
+++ b/locale/ja/fusiondirectory.po
@@ -8,327 +8,606 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Language-Team: Japanese (https://www.transifex.com/fusiondirectory/teams/12202/ja/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Language-Team: Japanese (https://app.transifex.com/fusiondirectory/teams/12202/ja/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ja\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -336,1534 +615,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr ""
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
+
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot connect to %s database!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:245
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot select %s database!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr ""
-
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:457
-#, php-format
-msgid "'%s' are not allowed!"
-msgstr ""
-
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1872,127 +1970,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr ""
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2001,265 +2114,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2277,8 +2355,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2294,391 +2372,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2686,103 +2826,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2794,31 +2936,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2827,699 +2969,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3527,36 +3759,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3564,16 +3923,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3581,273 +3962,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3919,10 +4349,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3945,46 +4371,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4000,387 +4426,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4395,21 +4853,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4428,217 +4886,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4655,24 +4948,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4681,7 +4962,7 @@ msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4727,8 +5008,8 @@ msgid_plural "There are %1 users:"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
@@ -4737,7 +5018,7 @@ msgid_plural "%1 of them are locked"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4745,7 +5026,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 
@@ -4790,10 +5071,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4815,7 +5098,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4859,12 +5142,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4924,7 +5207,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5033,14 +5321,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5051,6 +5351,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5060,28 +5413,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5098,6 +5449,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5116,6 +5472,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5123,20 +5483,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/ko/fusiondirectory.po b/locale/ko/fusiondirectory.po
index 2f2c70d18462201596d6ed864db8310a7f2e93f5..3c926762ade0d207f2ce89daad6a2c4f250bba27 100644
--- a/locale/ko/fusiondirectory.po
+++ b/locale/ko/fusiondirectory.po
@@ -4,148 +4,560 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# Choi Chris <chulwon.choi@gmail.com>, 2021
+# fusiondirectory <contact@fusiondirectory.org>, 2018
+# Choi Chris <chulwon.choi@gmail.com>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: Choi Chris <chulwon.choi@gmail.com>, 2021\n"
-"Language-Team: Korean (https://www.transifex.com/fusiondirectory/teams/12202/ko/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: Choi Chris <chulwon.choi@gmail.com>, 2023\n"
+"Language-Team: Korean (https://app.transifex.com/fusiondirectory/teams/12202/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ko\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "오류"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "위의 오류를 수정하고 페이지를 다시 로드하십시오."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr "관리 구성"
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr "컬럼"
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr "이 관리 목록에 대해 표시되는 컬럼"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "타입"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr "컬럼의 유형"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr "속성"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "라"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr "열 제목"
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr "이 구성을 이 관리 페이지의 기본 구성으로 LDAP에 저장해야 합니다."
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr "내 영구 구성을 잊어 버림"
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr "기본 구성이 사용되도록 이 관리 페이지에 대한 영구 구성을 삭제합니다."
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr "잊어 버림"
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr "전역 기본값"
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr "이 구성을 모든 사용자에 대한이 관리 페이지의 기본 구성으로 LDAP에 저장해야 합니다."
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr "전역 기본값을 잊어 버림"
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr "기본 구성이 사용되도록이 관리 페이지에 대한 전역 기본 구성을 삭제합니다."
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr "DN"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "일자"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "설명"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "복원"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr "스냅샷"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr "스냅샷 핸들러"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr "기존 객체를 통해 복원"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr "삭제된 객체 복원"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr "스냅샷 생성 실패 : %s"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "스냅샷 데이터를 압축 해제하는 중에 문제가 발생했습니다"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr "스냅샷 데이터를 가져올 수 없습니다"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr "스냅샷 복원"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "오브젝트"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr "스냅샷을 생성할 개체의 DN"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "스냅샷"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr "이 객체의 기존 스냅샷"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr "개체 스냅샷 만들기"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "타임스탬프"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr "이 스냅샷 생성의 타임스탬프"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr "사유"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr "이 스냅샷을 만든 이유"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr "%s에서 검색"
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+"\"%s\" 템플릿을 검색할 수 없습니다.\n"
+"%s"
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+"\"%s\"를 검색 할 수 없습니다:\n"
+"%s"
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr "수정됨"
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "원하는 항목을 선택하십시오."
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "%s 템플릿"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr "탭"
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "템플릿"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "템플릿에서"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "생성"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "목록 내보내기"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "편집"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "잘라내기"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "복사"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "붙여넣기"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "템플릿 적용"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "제거"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "스냅샷 생성"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "스냅샷 복구"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr "이 템플릿에서 개체 만들기"
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr "무조건 적용"
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr "템플릿에 템플릿을 적용 할 수 없습니다."
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr "템플릿을 적용하려면 선택한 모든 항목이 동일한 유형을 공유해야 합니다"
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr "무조건 보관"
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr "템플릿을 보관할 수 없습니다."
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr "보관 성공"
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr "%d 항목이 성공적으로 보관되었습니다."
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr "무조건 삭제"
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "%s에 대한 스냅샷을 생성 할 수 없습니다."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "%s에 대한 스냅샷을 복원 할 수 없습니다."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr "%s에 대한 스냅 샷을 삭제할 수 없습니다."
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "root 부서로 이동"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Root"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "한 부서 위로 올라가"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "위"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "사용자 부서로 이동"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "홈"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "목록 새로 고침"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr "새로 고침"
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr "이 관리 목록 구성"
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "구성"
 
-#: include/class_config.inc:151
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "fusiondirectory.conf의 XML 오류 : %d 줄에 %s"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "설정 에러"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
-"인코딩되지 않은 것을 디코딩하려고하는 것 같습니다 : %s 1\n"
-"비밀번호가 암호화되지 않은 상태에서 fusiondirectory.secrets 파일을 사용하고 있지 않은지 확인하십시오."
-
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAP 오류"
 
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr "LDAP에 바인딩 할 수 없습니다. 시스템 관리자에게 문의하십시오."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
-msgstr "구성 파일에서 \"%s\" 위치를 찾을 수 없습니다"
+msgstr "구성 파일에서 \"%s\"위치를 찾을 수 없습니다"
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr "스냅 샷 기능이 사용 가능하지만 필수 변수 \"%s\"가 설정되지 않았습니다."
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr "스냅 샷 기능이 활성화되었지만 필요한 압축 모듈이 없습니다. \"%s\"를 설치하십시오."
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "모든 카테고리"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "내 계정"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "페이지"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr "PDF로 내보낼 수 없음 : FPDF 라이브러리가 설치되어 있지 않습니다."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "만든 사람"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "파일"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "라인"
 
@@ -169,1711 +581,1398 @@ msgstr "정적"
 msgid "method"
 msgstr "메소드"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Trace"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "타입"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "인수"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "이 페이지를 생성하면 PHP 인터프리터에서 오류가 발생됩니다!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "FusionDirectory 팀에 버그 보고서 보내기"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "버그 리포트 보내기"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr "메일 아이콘"
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "정보 토글"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "위"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr "잡히지 않음 %s: %s"
 
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "아래"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "구성에서 \"%s\"시간대 설정이 유효하지 않습니다."
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "오름차순"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
+msgstr "비슷한 값을 가진 여러 개체를 만드는 데 사용되는 개체 템플릿"
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "차순"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "템플릿"
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "전체선택"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "로깅 실패: %s"
 
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "만든 사람"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr "\"%s\" 옵션이 잘못되었습니다!"
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "root 부서로 이동"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "지정된 objectType이 비어 있거나 유효하지 않습니다!"
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Root"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr "이벤트를 기록하지 못했습니다 (%s - %s) : %s"
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "한 부서 위로 올라가"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "CAS"
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr "사용자 부서로 이동"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "홈"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr "사용자 \"%s\"로 로그인 시 오류가 발생했습니다: %s"
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "목록 새로 고침"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr "HTML 양식"
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "작업"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "로그인"
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "복사"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "잘라내기"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "붙여넣기"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr "두번째 요소"
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "항목 잘라내기"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr "LDAP 스키마 검사에서 보고된 오류 :"
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "항목 복사하기"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
+msgstr ""
+"LDAP 스키마 오류 :\n"
+"%s"
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "스냅샷 복구"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "유효한 사용자이름을 지정하십시오!"
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "목록 내보내기"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "암호를 지정하십시오!"
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "스냅샷 복구"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "계정이 잠겼습니다. 시스템 관리자에게 문의하십시오!"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "스냅샷 생성"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "lDAP 오류"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "이 객체에서 새 스냅샷 생성"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr "복구 할 수 없는 오류가 발생했습니다. 관리자에게 문의하십시오."
 
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
-msgstr "구성에서 \"%s\"시간대 설정이 유효하지 않습니다."
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr "치명적 오류!"
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
-msgstr "스냅샷"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr "HTTP 헤더"
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
-msgstr "스냅샷 핸들러"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
+msgstr "HTTP 헤더 \"%s\"에 값이 없습니다."
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
-msgstr "기존 객체를 통해 복원"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
-msgstr "삭제된 객체 복원"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr "HTTP 기본 인증"
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
-msgstr "스냅샷 데이터를 압축 해제하는 중에 문제가 발생했습니다"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "메일 주소"
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr "스냅샷 데이터를 가져올 수 없습니다"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "비밀번호 복구"
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "템플릿"
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "로그인 계정 \"%s\"을 찾을 수 없습니다."
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
-msgstr "비슷한 값을 가진 여러 개체를 만드는 데 사용되는 개체 템플릿"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "로그인 계정 \"%s\"이 여러 개 있습니다."
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "템플릿"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr "\"%s\" 이메일을 사용하는 계정이 없습니다."
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "내부 오"
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
+msgstr "\"%s\" 이메일을 사용하는 계정이 여러 개 있습니다."
 
-#: include/class_logging.inc:81
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "Logging failed: %s"
-msgstr "로깅 실패: %s"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
+msgstr "이메일 \"%s\"을 사용하는 사용자가 잠겨 있습니다. 관리자에게 문의하십시오."
 
-#: include/class_logging.inc:103
-#, php-format
-msgid "Invalid option \"%s\" specified!"
-msgstr "\"%s\" 옵션이 잘못되었습니다!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "지정된 objectType이 비어 있거나 유효하지 않습니다!"
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "토큰이 유효하지 않습니다."
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
 msgstr "패스워드를 변경할 수 없습니다, 사용자를 알 수 없습니다. \"%s\""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
 msgstr "SASL을 사용하려면 구성 화면에서 saslRealm 또는 saslExop를 채워야 합니다."
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "제출"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "필터 적"
-
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "하위 트리에서 검색"
-
-#: include/class_filter.inc:404
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "Searches in %s"
-msgstr "%s에서 검색"
-
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "%d 항목의 크기 제한이 초과되었습니다!"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "FustionDirection 설정 %s/%s 을 읽을 수 없습니다. 중단됨."
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
-msgstr "새 크기 제한을 %s 으로 설정하고 제한이 여전히 초과하면 이 메시지를 표시하십시오"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "구성"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr "컴파일 디렉토리로 지정된 \"%s\" 디렉토리에 액세스 할 수 없습니다!"
 
-#: include/class_ldapSizeLimit.inc:136
+#: include/class_ldapSizeLimit.inc:135
 msgid "incomplete"
 msgstr "불완전한"
 
-#: include/functions.inc:97
-#, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
-msgstr "치명적인 오류 : 클래스 위치가 정의되지 않았습니다.이 문제를 해결하려면 '1%s'을 (를) 실행하십시오."
-
-#: include/functions.inc:116
+#: include/class_ldapSizeLimit.inc:152
 #, php-format
 msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
-msgstr "치명적인 오류 : 클래스 '1%s'을 (를) 인스턴스화 할 수 없습니다. '1%s'을(를) 실행하여이 문제를 해결하십시오."
-
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "치명적 오류"
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
+msgstr ""
 
-#: include/functions.inc:412
+#: include/functions.inc:55
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr "치명적 : LDAP 연결시 오류가 발생했습니다. 서버 오류 '%s'."
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
-msgstr "로그인 (uid)은 LDAP 트리 내에서 고유하지 않습니다. 관리자에게 문의하십시오."
-
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "인증 오류"
-
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr "사용자 비밀번호가 만료 된 것 같습니다. <a href=\"recovery.php\">비밀번호 복구</a>를 사용하여 변경하십시오."
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr "잠금을 추가하는 중 오류가 발생했습니다. 개발자에게 문의하십시오!"
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr "치명적인 오류 : 클래스 위치가 정의되지 않았습니다.이 문제를 해결하려면 '%s'를 실행하십시오."
 
-#: include/functions.inc:594
+#: include/functions.inc:78
 #, php-format
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
-msgstr "LDAP 트리에서 잠금 정보를 작성할 수 없습니다. 관리자에게 문의하십시오!"
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr "치명적인 오류 : 클래스 '%s'를 인스턴스화 할 수 없습니다. '%s'를 실행하여이 문제를 해결하십시오."
 
-#: include/functions.inc:594
+#: include/functions.inc:151
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "LDAP 서버에서 반환 : %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "ã…—"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
+msgstr "%s 2002-%d %s FusionDirectory  팀, %s %s"
 
 #: include/functions.inc:783
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
-msgstr "오브젝트를 잠글 여러 잠금을 찾았습니다. 여러 참조를 정리하지 마십시오."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "어쨌든 계속"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "어쨌든 편집"
-
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "LDAP 항목 %s을 편집하려고 합니다."
-
-#: include/functions.inc:1505
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
-"'%s' 파일을 삭제할 수 없습니다. fusiondirectory-setup --check-directories를 사용하여 권한을 "
-"수정하십시오."
 
-#: include/functions.inc:1722
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
+msgstr "개정 파일에 쓸 수 없습니다 :"
+
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "수정본 파일에 쓸 수 없습니다!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
-msgstr "개정판 파일을 읽을 수 없습니다!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
+msgstr "개정 파일을 읽을 수 없습니다 :"
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "LDAP 경고"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr "서버에서 스키마 정보를 가져올 수 없습니다. 스키마 검사가 불가능합니다!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr "기본 FusionDirectory 스키마"
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr "FusionDirectory 구성을 저장하는 데 사용되는 스키마"
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr "트러스트 모드 정보를 사용자 또는 그룹에 저장하는데 사용됩니다."
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr "템플릿을 저장하는데 사용됩니다."
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr "POSIX 정보를 저장하는데 사용됩니다."
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr "필수 개체 클래스 \"%s\"가 없습니다!"
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr "선택적 객체 클래스 \"%s\"가 없습니다!"
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "이용 가능한 클래스(들)"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr "혼합 그룹 플러그인을 설치했지만 스키마 구성에서 이를 지원하지 않습니다."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr "혼합 그룹을 사용하려면 objectClass \"posixGroup\"이 AUXILIARY여야 합니다."
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr "스키마가 혼합 그룹을 지원하도록 구성되었지만 이 플러그인이 없습니다."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr "objectClass \"posixGroup\"은 STRUCTURAL이어야 합니다."
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
-msgstr "'%s' 파일을 사용할 수 없습니다.  '%s' 를 실행해 주세요."
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
+msgstr "\"%s\" 파일을 찾을 수 없습니다.이 문제를 해결하려면 \"%s\"을 실행하십시오."
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "이 카테고리의 모든 객체"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "로그인"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr "치명적인 오류 : 플러그인 \"%s\"( \"%s\"은 파일이 아님)에 대한 플러그인 정의를 찾을 수 없습니다!"
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "허가"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "모두 취소"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "붙여 넣을 수 없습니다"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "'%s' 유형의 객체를 나열하려면 선택하십시오."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "'%s'가 포함 된 객체를 나열하려면 선택하십시오."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "'%s'가 활성화 된 개체를 나열하려면 선택하십시오"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "하위 트리 내에서 검색하려면 선택"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "이 객체가 삭제됩니다!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "이 '%s' 객체가 삭제됩니다!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "이 객체는 삭제됩니다: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "이 '%s' 객체가 삭제됩니다: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "이 객체는 삭제됩니다:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "이 '%s' 객체가 삭제됩니다:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "이 객체들은 삭제됩니다: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "이 '%s'  객체들이 삭제됩니다: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "이 객체를 삭제할 권한이 없습니다!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
-msgstr "객체를 삭제할 권한이 없습니다:"
+msgstr "객체를 삭제할 권한이 없습니다 :"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "다음 객체들을 삭제할 권한이 없습니다."
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "이 개체를 만들 권한이 없습니다!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
-msgstr "객체를 생성할 권한이 없습니다 :"
+msgstr "객체를 생성 할 권한이 없습니다 :"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "이러한 객체를 생성할 권한이 없습니다 :"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "이 개체를 수정할 권한이 없습니다!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr "\"%s\"개체의 \"%s\" 필드를 수정할 권한이 없습니다."
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
-msgstr "개체를 수정할 권한이 없습니다 : <br/>%s"
+msgid "You have no permission to modify the object:%s"
+msgstr "개체를 수정할 권한이 없습니다 : %s"
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
-msgstr "이러한 개체를 수정할 권한이 없습니다 : <br/>%s"
+msgid "You have no permission to modify these objects:%s"
+msgstr "다음 개체들을 수정할 권한이 없습니다 : %s"
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "이 개체를 볼 권한이 없습니다!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "객체를 볼 권한이 없습니다 :"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "다음 개체를 볼 수있는 권한이 없습니다 :"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "이 개체를 이동할 권한이 없습니다!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "개체를 이동할 권한이 없습니다."
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "이러한 개체를 이동할 권한이 없습니다:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "ì—°ê²° ì •ë³´"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "%s 데이터베이스에 연결할 수 없습니다!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "%s 데이터베이스를 선택할 수 없습니다!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "%s 서버가 정의되지 않았습니다!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "%s 데이터베이스를 쿼리 할 수 ​​없습니다!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "'%s' 입력란에 예약 키워드가 있습니다!"
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "플러그인 '%s'에 대한 후크로 지정된 명령 %s이 없습니다!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "'%s' 명령이 유효하지 않습니다!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "%s 플러그인에 대한 '%s' 명령이 잘못되었습니다!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "'%s' 명령(%s)이 유효하지 않습니다!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "'%s'  플러그인에 대한 '%s' 명령(%s)이 유효하지 않습니다!"
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "'%s' 명령을 실행할 수 없습니다!"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr "\"%s\" 필드에 예약된 키워드가 있습니다!"
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr " %s 플러그인에 대해 '%s' 명령을 실행할 수 없습니다!"
+msgid "Cannot execute \"%s\" command!"
+msgstr "\"%s\" 명령을 실행할 수 없습니다!"
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "'%s' 명령(%s)을 실행할 수 없습니다!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr " %s 플러그인에 대해 '%s'명령 (%s)을 실행할 수 없습니다!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "'%s'의 값이 너무 큽니다!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "'%s'는 %s보다 작아야합니다!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "'%s'의 값이 너무 작습니다!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s'는 %d 이상이어야 합니다!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s'는 '%s'에 의존합니다 - 두 값을 모두 입력하십시오!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "시스템에 이미 '%s' 속성을 가진 항목이 이미 있습니다!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
-msgstr "'%s' 항목은 이미 이 '%s' 속성을 사용합니다!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
+msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "필수 입력란 '%s'이 비어 있습니다!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "예:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
+msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
-msgstr "'%s' 필드에 잘못된 문자가 포함되어 있습니다"
+msgid "The required field \"%s\" is empty!"
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s'는 허용되지 않습니다 :"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s'는 허용되지 않습니다 :"
+msgid "Example: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "%s PHP 확장이 없습니다!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "취소"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "확인"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "적용"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "저장"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "추가"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "%s 추가"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "삭제"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "%s를 삭"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "편집..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "%s 편집..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "뒤로"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "이 계정에는 유효한 %s 확장이 없습니다!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr "이 계정에는 %s 설정이 활성화되어 있습니다. 아래를 클릭하여 비활성화 할 수 있습니다."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
-msgstr "이 계정에는 %s 설정이 활성화되어 있습니다. 비활성화하려면 먼저 %s 설정을 제거해야 합니다!"
+msgstr "이 계정에는 %s 설정이 활성화되어 있습니다. 비활성화하려면 먼저 %s 설정을 제거해야합니다!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr "이 계정은 %s 설정이 비활성화되어 있습니다. 아래를 클릭하여 활성화 할 수 있습니다."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
-msgstr "이 계정은 %s 설정이 비활성화되어 있습니다. 이를 활성화하려면 먼저 %s 설정을 추가해야 합니다!"
+msgstr "이 계정은 %s 설정이 비활성화되어 있습니다. 이를 활성화하려면 먼저 %s 설정을 추가해야합니다!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr "이 계정은 %s 설정이 비활성화되어 있습니다. 이를 활성화하려면 먼저 %s 설정을 비활성화해야 합니다!"
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "%s 설정 추가"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "%s 설정 제거"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "1ì›”"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "2ì›”"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "3ì›”"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "4"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "5ì›”"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "6ì›”"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "7ì›”"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "8ì›”"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "9ì›”"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "10"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "11ì›”"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "12ì›”"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "일요일"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "월요일"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
-msgstr "수요일"
+msgstr "k요일"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "수요일"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "목요일"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "금요일"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "토요일"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "읽기 조작"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "작업 추가"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "작업 수정"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "작업 삭제"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "작업  검색"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "인증"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "LDAP %s가 실패했습니다!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "LDAP 작업이 실패했습니다!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "오브젝트"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
-msgstr "업로드하지 못했습니다!"
+msgstr "업로드 실패"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "업로드 실패 : %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "인프라 서비스와의 통신 실패!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "인프라 서비스와의 통신 실패 : %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr ""
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr ""
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr ""
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
-msgstr ""
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr ""
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr ""
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "%s 지원 확인"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "%s PHP 모듈을 설치하고 활성화합니다."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr ""
-
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
-msgstr ""
-
-#: include/class_msgPool.inc:856
+#: include/class_msgPool.inc:600
 msgid ""
 "The supplied base is not valid and has been reset to the previous value!"
 msgstr "제공된 베이스가 유효하지 않으며 이전 값으로 재설정되었습니다!"
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:149
+#, php-format
+msgid "\"%s\" was not found in attributes"
+msgstr "속성에서 \"%s\"을 찾을 수 없습니다."
+
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr "\"a\" 수정자에 대한 유효하지 않은 모드. 지원되는 모드는 \"uid\" 및 \"ascii\"입니다."
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr "증분 수정자에 대한 ID 매개변수 누락"
+
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr "템플릿 필드의 순환적 종속성 : \"%1$s\"는 \"%1$s\"에 이미 종속되어 있으므로 \"%2$s\"은 \"%2$s\"에 종속 될 수 없습니다."
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "원하는 항목을 선택하십시오."
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "명칭"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "설명"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr "서비스 상태 확인"
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "서비스 시작"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "서비스 중지"
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
-msgstr "서비스 재시작"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
+msgstr "서비스 재시작"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
+msgstr "Base"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
+msgstr "객체 기반"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
+msgstr "기본 필드 값은 항상 문자열이어야합니다"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr "예"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr "아니오"
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr "%s 속성이 비활성화되어 해당 값을 설정할 수 없습니다."
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr "\"%s\"은 유효한 값이 아닙니다. \"%s\"또는 \"%s\"이어야합니다."
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "알 수없는 유형 : %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "존재하지 않는 DN : %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "없음"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "알 수 없음"
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
-msgstr "Base"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr "추가(대화창)"
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
-msgstr "객체 기반"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
-msgstr "기본 필드 값은 항상 문자열이어야 합니다"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
-msgstr "오류, 잘못된 날짜: %s"
+msgid "Incorrect date: %s"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
-msgstr "ì‹ "
+msgstr "시간"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "ë¶„"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "ì´ˆ"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "일자"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "시간"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "업로드 한 파일을 읽을 수 없습니다 : %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "파일이 비어있음"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "파일을 찾을 수 없습니다"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "읽을 수 없는 파일"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr " %s (%d bytes)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr "%s 속성이 비활성화되어 해당 값을 설정할 수 없습니다."
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
-msgstr ""
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
+msgstr "잘못된 base64 데이터"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "업로"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "다운로드"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "제거"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr "번호"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "편집"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
-msgstr "다중화된 필드 \"%s\"의 값은 배열이 아닙니다."
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr ""
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "오름차순"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "없음"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "차순"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
-msgstr ""
+msgid "\"%s\" is not in the list of possible choices"
+msgstr "\"%s\"은 가능한 선택 목록에 없습니다."
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr "StringAttribute \"%s\"이 호환되지 않는 값으로 설정되었습니다."
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "템플릿 설정"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "이것은 템플릿의 이름입니다"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr "기본 탭만 DN을 계산할 수 있습니다"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "%s 항목이 없습니다."
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
-"FusionDirectory에서 열린 이후 개체가 변경되었습니다. 이 항목을 저장하면 다른 사용자가 수행 할 수 있는 모든 변경 사항이 "
-"손실됩니다!"
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr "서비스 \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "탭 \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr "고유한 DN을 만들지 못했습니다."
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr "잘못된 필드 \"%s\""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "ì´ˆ"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "ë¶„"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "시"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "일"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
+
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr "POSIX 그룹 %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "ACL ì—­í• "
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
+#: include/class_acl.inc:105
 #, php-format
-msgid "Role %s"
-msgstr "ì—­í•  %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:161
 #, php-format
-msgid "Group %s"
-msgstr "그룹 %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "사용자 그룹"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "알 수 없음"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "템플릿에서"
+msgid "Unknown entry '%s'!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "%s 템플릿"
+msgid "All users"
+msgstr "모든 사용자들"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "보기 %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "필터 오류"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr "로그인 (uid)은 LDAP 트리 내에서 고유하지 않습니다. 관리자에게 문의하십시오."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "필터가 불완전합니다!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "ã…—"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "권한 오류"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "%s에 대한 스냅샷을 생성 할 수 없습니다."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "%s에 대한 스냅샷을 복원 할 수 없습니다."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr "%s에 대한 스냅 샷을 삭제할 수 없습니다."
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "라벨 없음"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "생성"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
+msgid "Exit code: %d"
+msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "ACL ì—­í• "
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:137
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:173
-#, php-format
-msgid "All users"
-msgstr "모든 사용자들"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr "사용자 비밀번호가 만료 된 것 같습니다. <a href=\"recovery.php\">비밀번호 복구</a>를 사용하여 변경하십시오."
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "성능 경고"
+#: include/class_ldap.inc:233
+#, php-format
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr ""
+
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr "개체 스냅샷 만들기"
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr "스냅샷을 생성할 개체의 DN"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "타임스탬프"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr "이 스냅샷 생성의 타임스탬프"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr "사유"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr "이 스냅샷을 만든 이유"
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr "DN"
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "복원"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "잠금을 추가하는 중 오류가 발생했습니다. 개발자에게 문의하십시오!"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr "스냅샷 복원"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr "LDAP 트리에서 잠금 정보를 작성할 수 없습니다. 관리자에게 문의하십시오!"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "스냅샷"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP 서버에서 반환 : %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
-msgstr "이 객체의 기존 스냅샷"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr "오브젝트를 잠글 여러 잠금을 찾았습니다. 여러 참조를 정리하지 마십시오."
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "부서리스트"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
+msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "부서"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "어쨌든 편집"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "도메인"
@@ -1882,127 +1981,142 @@ msgstr "도메인"
 msgid "domain"
 msgstr "도메인"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "조직"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "조직"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "부서"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "부서"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "부서"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "설정"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "%s의 이름"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "이 %s의 이름"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "이 %s에 대한 간단한 설명"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
-msgstr "카테고리"
+msgstr "범주"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "이 %s의 카테고리"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr "웹사이트"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr "이 %s의 웹 사이트"
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "관리자"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "이 %s의 관리자"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "위치"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
-msgstr "wn"
+msgstr "주"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "지역"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "주소"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "이 %s의 우편 주소"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "전화번호"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "전화번호"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "팩스"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "팩시밀리 전화번호"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "명칭"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "도메인 구성 요소"
@@ -2011,265 +2125,230 @@ msgstr "도메인 구성 요소"
 msgid "domain component"
 msgstr "도메인 구성 요소"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "êµ­ê°€"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr "국가 코드"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr "ISO 3166의 2자리 국가 코드"
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "소재지"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "소재지"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "부서 관리"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "사용자와 그룹"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr "객체 그룹, POSIX 그룹 및 역할을 관리할 수 ​​있습니다"
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr "작업이 취소되었습니다."
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr "시스템 %s에 MAC 주소가 정의되지 않아 작업을 실행할 수 없습니다."
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
-msgstr "시스템 %s이(가) 현재 설치 중입니다."
-
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr "인프라 서비스"
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr "실행 된 작업"
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "ì—­í• "
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "ë³´ê³ "
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "조직 역할 표시"
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "상태"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr "객체 그룹, POSIX 그룹 및 역할을 관리할 수 ​​있습니다"
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "트리거 동작"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "게획된 동작"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
+msgstr "시스템 %s에 MAC 주소가 정의되지 않아 작업을 실행할 수 없습니다."
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
+msgstr "실행 된 작업"
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "알 수없는 유형 : %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr "오류없이 호출된 작업 (결과는 \"%s\")"
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
-msgstr "존재하지 않는 DN : %s"
+msgid "Action called without error (result was \"%s\")"
+msgstr "오류없이 호출된 작업 (결과는 \"%s\")"
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "객체 그룹"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "그룹"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "그룹 명칭"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "그룹 요약"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "시스템 신뢰"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "트러스트 노드"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "호스트에 대한 인증 타입"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "미사용"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "ì „ì²´ ì ‘ê·¼"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "호스트에 접근 허용"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr "호스트 리스트에 접근 가능 그룹"
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "트리거 동작"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "멤"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "게획된 동작"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "ì—­í• "
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2287,8 +2366,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "전화 번호"
 
@@ -2304,391 +2383,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "ACL 할당"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "액세스 제어 역할 할당"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "서브 트리"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "멤"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
-msgstr ""
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
+msgstr "자세히"
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "ACL 할당"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "액세스 제어 역할 할당"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr "ACL 할당 생성"
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "사용자"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "템플릿 적용"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "사용자"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "사용자 계정"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "ACLs"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "ACL 역할 관리"
+
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
-msgstr "ACL 역할 관리"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "스냅샷 베이스"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "FusionDirectory 플러그인 구성"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
-msgstr "SASL 사용자 비밀번호를 편집할 때 비밀번호 값을 사용하여 hook을 추가하는 경우 유용"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
+msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "대시보드 설정"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "대시보드 만료된 사용자"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2696,103 +2837,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "비밀번호 복구"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "비밀번호 복구 활성화"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "발송자 메일주소"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "메일이 발송될 이메일 주소"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "제목"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2804,31 +2947,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2837,699 +2980,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "테마"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr "스키마 검증"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "스냅샷 베이스"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "SASL 영역"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr "CA 인증서 경로"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr "CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr "CAS 활성화"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr "CAS 서버의 CA 인증서 경로"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "호스트"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "포트"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr "공통 이름 필드를 빌드하는 데 사용할 패턴"
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "사용자가 저장된 브랜치."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "기타"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr "특정 사용자 그룹에게 일부 메뉴 항목을 숨기려면이 옵션을 사용하십시오."
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Hooks"
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "특정 액션이 발생할 때 호출되는 후크"
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:405
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "이 훅에 관한 탭"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "그룹 %s"
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "ì—­í•  %s"
+
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr ""
+
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
-msgstr "Hook 출력 표"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr "출발지"
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "대시보"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr "통계 및 각종 정보"
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "통계"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr "다음 오류로 인해 유형 \"%s\"의 통계를 계산할 수 없습니다 : %s"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "만료된 계정"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "로그인"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "만료일자"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "이메일"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr "비밀번호"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "대시보"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr "통계 및 각종 정보"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "ë³´ê³ "
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "통"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr "다음 오류로 인해 유형 \"%s\"의 통계를 계산할 수 없습니다 : %s"
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "아이디"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "가입 유형"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "시작일자"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "종료일자"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "가져오기"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3537,36 +3770,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "스케"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3574,16 +3934,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr "역할 멤버십"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "비밀번호 방법"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3591,273 +3973,322 @@ msgstr ""
 msgid "Password"
 msgstr "패스워드"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "비밀번호 (변경하지 않으려면 비워 두십시오)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "사용자"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "사용자 계정"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "개인 정보"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "성"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
-msgstr "성"
+msgstr "이름"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "이 사용자의 이름"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "사용자에 대한 간단한 설명"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "호출기"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "사업자 호출기 번호"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "개인 홈페이지"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "계정 정보"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "표시 이름"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "제목"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "완료"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3929,10 +4360,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "상태"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3955,46 +4382,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "재시도"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "리프레시"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4010,387 +4437,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "PHP 버전 확인"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "끄"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "실패"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "설치를 확인하십시오."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "그룹"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "ì—­í• "
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4405,21 +4864,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4438,217 +4897,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr "FustionDirection 설정 %s/%s 을 읽을 수 없습니다. 중단됨."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "메일 주소"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr "로그인 계정 \"%s\"을 찾을 수 없습니다."
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr "로그인 계정 \"%s\"이 여러 개 있습니다."
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr "\"%s\" 이메일을 사용하는 계정이 없습니다."
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr "\"%s\" 이메일을 사용하는 계정이 여러 개 있습니다."
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr "이메일 \"%s\"을 사용하는 사용자가 잠겨 있습니다. 관리자에게 문의하십시오."
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr "메일 서버에 문제가 발생핬습니다. 관리자에게 문의바랍니다."
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "토큰이 유효하지 않습니다."
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr "메일 서버에 문제가 있습니다. 확인 이메일이 전송되지 않았습니다."
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "비빌번호 변경"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr "비밀번호가 만료되었습니다. 새 비밀번호를 설정하십시오."
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "사용자 ACL 검사 비활성화"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "플러그인"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "설정 오류"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "로그인"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr "컴파일 디렉토리로 지정된 \"%s\" 디렉토리에 액세스 할 수 없습니다!"
-
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr "잘못된 플러그인 매개 변수 \"%s\"!"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr "세션이 없습니다!"
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr "LDAP 스키마 검사에서 보고된 오류 :"
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "유효한 사용자이름을 지정하십시오!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "암호를 지정하십시오!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "계정이 잠겼습니다. 시스템 관리자에게 문의하십시오!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr "HTTP 헤더 \"%s\"에 값이 없습니다."
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr "헤더 사용자 \"%s\"를 LDAP에서 찾을 수 없습니다."
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr "사용자 \"%s\"로 로그인 시 오류가 발생했습니다: %s"
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr "LDAP에서 CAS 사용자 \"%s\"를 찾을 수 없습니다."
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "í•„í„°"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4665,24 +4959,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4691,7 +4973,7 @@ msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4737,8 +5019,8 @@ msgid_plural "There are %1 users:"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
@@ -4747,7 +5029,7 @@ msgid_plural "%1 of them are locked"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4755,7 +5037,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 
@@ -4800,10 +5082,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4825,7 +5109,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4869,12 +5153,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4939,9 +5223,14 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr "선택한 항목을 마이그레이션 할 때 수행 할 작업을 알려면 '변경사항 표시' 버튼을 사용하여 LDIF를 확인하십시오."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "전체선택"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
-msgstr "변경사항 표시"
+msgstr "변경 사항 표시"
 
 #: ihtml/themes/legacy/recovery.tpl.c:2 ihtml/themes/breezy/recovery.tpl.c:2
 msgid "Lost password"
@@ -5030,7 +5319,7 @@ msgstr "아래 필드에 현재 이메일 주소를 입력하고 '변경' 버튼
 msgid ""
 "=> Use your e-mail in the long format, e.g : John Doe => "
 "john.doe@example.com"
-msgstr "=> 긴 형식으로 이메일을 사용하십시오, 예 : John Doe => john.doe@example.com"
+msgstr "=> 긴 형식으로 이메일을 사용하십시오, 예 : John Doe => john.doe@example.com."
 
 #: ihtml/themes/legacy/recovery.tpl.c:104
 #: ihtml/themes/breezy/recovery.tpl.c:104
@@ -5050,14 +5339,26 @@ msgid "I forgot my password"
 msgstr "비밀번호를 잊었습니다"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "로그인하려면 여기를 클릭하십시오"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr "경고 : 다음 객체를 삭제하려고합니다."
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5069,6 +5370,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr "따라서 확실하다면 '삭제'를 눌러 계속하거나 '취소'를 눌러 중단하십시오."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr "아카이브"
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "아래"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "작업"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr "최신의"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr "이전의"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "í•„í„°"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "하위 트리에서 검색"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "필터 적"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr "템플릿을 사용하여 새 객체 만들기"
@@ -5078,28 +5432,26 @@ msgstr "템플릿을 사용하여 새 객체 만들기"
 msgid "Continue"
 msgstr "계속"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "잠금 충돌 감지"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "읽기 전용"
 
@@ -5116,6 +5468,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr "따라서 확실하다면 '계속'을 눌러 계속하거나 '취소'를 눌러 중단하십시오."
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "제출"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "메인"
@@ -5134,6 +5491,10 @@ msgid "Session expires in %d!"
 msgstr "%d에서 세션이 만료됩니다!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5141,20 +5502,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "이 세션에 대응할 방법을 선택하십시오"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
-msgstr "이 오류를 무시하고 LDAP 서버가 리턴하는 모든 항목을 표시하십시오."
+msgid "Please choose the way to react for this session:"
+msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
-msgstr "이 오류를 무시하고 정의 된 크기 제한에 맞는 모든 항목을 표시하고 대신 필터를 사용하겠습니다"
+msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "설정"
diff --git a/locale/lv/fusiondirectory.po b/locale/lv/fusiondirectory.po
index dbc5edf16d607f69bcf8ca1252dc4f6a5f697501..b9bdae8c7d21566bcf8f528f33d1cdbb6524e492 100644
--- a/locale/lv/fusiondirectory.po
+++ b/locale/lv/fusiondirectory.po
@@ -11,291 +11,602 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
-"Language-Team: Latvian (https://www.transifex.com/fusiondirectory/teams/12202/lv/)\n"
+"Language-Team: Latvian (https://app.transifex.com/fusiondirectory/teams/12202/lv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: lv\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Kļūda"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Veids"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAP kļūda"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Apraksts"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Izveidot"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Labot"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Noņemt"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Veids"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Darbības"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr ""
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgstr ""
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
+msgstr ""
+
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
+msgstr ""
+
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
+msgstr ""
+
+#: include/class_config.inc:994
+msgid "All categories"
+msgstr ""
+
+#: include/class_config.inc:1158
+msgid "My account"
+msgstr ""
+
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
+#: include/exporter/class_PDF.php:61
+msgid "Page"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/php_setup.inc:154
+msgid "Arguments"
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/php_setup.inc:249
+msgid "Mail icon"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/php_setup.inc:249
+msgid "Send bug report"
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/php_setup.inc:254
+msgid "Toggle information"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
 #: include/class_timezone.inc:52
@@ -303,1013 +614,818 @@ msgstr ""
 msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Iekšējā kļūda"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_logging.inc:81
-#, php-format
-msgid "Logging failed: %s"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
-#, php-format
-msgid "Cannot change password, unknown user \"%s\""
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/login/class_LoginMethod.inc:56
+#, php-format
 msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAP kļūda"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_filter.inc:404
-#, php-format
-msgid "Searches in %s"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "The size limit of %d entries is exceed!"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "E-pasta adrese"
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Brīdinājums"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Atļauja"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr ""
-
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr ""
-
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
-msgid "authentication"
-msgstr ""
-
-#: include/class_msgPool.inc:678
-#, php-format
-msgid "LDAP %s failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:680
-msgid "LDAP operation failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
-msgid "Upload failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:704
-#, php-format
-msgid "Upload failed: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:715
-msgid "Communication failure with the infrastructure service!"
-msgstr ""
-
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr ""
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
+msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:758
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
-msgid "Cannot open file '%s' for reading!"
+msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
+msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:778
-#, php-format
-msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+#: include/class_msgPool.inc:556
+msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:788
+#: include/class_msgPool.inc:559
 #, php-format
-msgid "Cannot delete file '%s'!"
+msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/class_msgPool.inc:570
+msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:808
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Cannot delete folder '%s'!"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr ""
+
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr ""
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Vārds "
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Apraksts"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1321,553 +1437,535 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Noņemt"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Labot"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Brīdinājums"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Izveidot"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Nodaļa"
-
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1876,127 +1974,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organizācija"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Nodaļa"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Atrašanās vieta"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Valsts"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Valsts"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adrese"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Tālrunis"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Tālruņa numurs"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fakss"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Vārds "
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Biedri"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Biedri"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Uzvārds"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Vārds"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Lietotāji"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Derīguma termiņš"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "E-pasts"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Uzvārds"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Vārds"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Mobilais"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Peidžeris"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Mājas pasta adrese"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Mājas tālruņa numurs"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Nosaukums"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Pasta indekss"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "E-pasta adrese"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtrs"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4659,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4687,7 +4968,7 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4741,8 +5022,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4755,7 +5036,7 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4763,7 +5044,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4810,10 +5091,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4835,7 +5118,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4879,12 +5162,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4944,7 +5227,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5053,14 +5341,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5073,6 +5373,59 @@ msgstr ""
 "Ja esat pārliecināts, spiediet \"izdzēst\", lai turpinātu, vai \"Atcelt\", "
 "lai pārtrauktu. "
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Darbības"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtrs"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5082,28 +5435,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5120,6 +5471,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5138,6 +5494,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5145,20 +5505,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/nb/fusiondirectory.po b/locale/nb/fusiondirectory.po
index 1125cc7720efbc769bc24862174ae6b23c0186cd..012f29be4a9882e345a67c69738651e7379ee0e8 100644
--- a/locale/nb/fusiondirectory.po
+++ b/locale/nb/fusiondirectory.po
@@ -11,1305 +11,1421 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
-"Language-Team: Norwegian Bokmål (https://www.transifex.com/fusiondirectory/teams/12202/nb/)\n"
+"Language-Team: Norwegian Bokmål (https://app.transifex.com/fusiondirectory/teams/12202/nb/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: nb\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Feil"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAP-feil"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Beskrivelse"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Opprett"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Endre"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Fjern"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr ""
+
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr ""
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgstr ""
+
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
+msgstr ""
+
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
+msgstr ""
+
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
+msgstr ""
+
+#: include/class_config.inc:994
+msgid "All categories"
+msgstr ""
+
+#: include/class_config.inc:1158
+msgid "My account"
+msgstr ""
+
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
+#: include/exporter/class_PDF.php:61
+msgid "Page"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/php_setup.inc:249
+msgid "Mail icon"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/php_setup.inc:249
+msgid "Send bug report"
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/php_setup.inc:254
+msgid "Toggle information"
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_logging.inc:165
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/class_logging.inc:81
-#, php-format
-msgid "Logging failed: %s"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/login/class_LoginMethod.inc:56
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid ""
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
-#, php-format
-msgid "Cannot change password, unknown user \"%s\""
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr ""
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAP-feil"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Searches in %s"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid "The size limit of %d entries is exceed!"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
-#, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
-msgid "authentication"
-msgstr ""
-
-#: include/class_msgPool.inc:678
-#, php-format
-msgid "LDAP %s failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:680
-msgid "LDAP operation failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
-msgid "Upload failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:704
-#, php-format
-msgid "Upload failed: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:715
-msgid "Communication failure with the infrastructure service!"
-msgstr ""
-
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr ""
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
+msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:758
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
-msgid "Cannot open file '%s' for reading!"
+msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
+msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:778
-#, php-format
-msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+#: include/class_msgPool.inc:556
+msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:788
+#: include/class_msgPool.inc:559
 #, php-format
-msgid "Cannot delete file '%s'!"
+msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/class_msgPool.inc:570
+msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:808
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Cannot delete folder '%s'!"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr ""
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Navn"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Beskrivelse"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1321,553 +1437,535 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Fjern"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Endre"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Opprett"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1876,127 +1974,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Egenskaper"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Navn"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
-msgid "Locality"
-msgstr ""
-
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/departments/class_locality.inc:35
+msgid "Locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Etternavn"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Bruker"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Vert"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Bruker"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Feil"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filter"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4659,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4686,7 +4967,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4736,8 +5017,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4748,7 +5029,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4756,7 +5037,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4802,10 +5083,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4827,7 +5110,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4871,12 +5154,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4936,7 +5219,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5045,14 +5333,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5063,6 +5363,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filter"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5072,28 +5425,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5110,6 +5461,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5128,6 +5484,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5135,20 +5495,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/nl/fusiondirectory.po b/locale/nl/fusiondirectory.po
index 700d0604a2470c87f6bea20f47678a24012572e0..27c4d49abcbeb8055f3b6aaa1a6e61c7260fd813 100644
--- a/locale/nl/fusiondirectory.po
+++ b/locale/nl/fusiondirectory.po
@@ -4,108 +4,487 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2018
-# Lucien Antonissen <lucien.antonissen@digipolis.be>, 2018
-# fusiondirectory <contact@fusiondirectory.org>, 2021
+# Benoit Mortier <benoit.mortier@fusiondirectory.org>, 2019
+# Lucien Antonissen <lucien.antonissen@digipolis.be>, 2019
+# Rombout de Neef <rombout.deneef@digipolis.be>, 2019
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Dutch (https://www.transifex.com/fusiondirectory/teams/12202/nl/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Dutch (https://app.transifex.com/fusiondirectory/teams/12202/nl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: nl\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Fout"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Los a.u.b. de bovenstaande error op en herlaad de pagina."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr "Kolommen"
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr "Kolommen weergegeven voor deze beheerslijst"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Type"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr "Kolomtype"
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Label"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr "Kolomtitel"
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr "DN"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Datum"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Omschrijving"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d,H-i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Herstel"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr "Snapshot"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr "Snapshot behandelaar"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr "Herstel over een bestaand object"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr "Zet een verwijderd object terug"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Er was een probleem om snapshotdata te decomprimeren"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr "Snapshotdata kon niet opgehaald worden"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr "Herstellen snapshots"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Object"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr "DN van het object waarvan je een snapshot aan het maken bent"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Snapshots"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr "Bestaande snapshots voor dit object"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr "Maak een object snapshot aan"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Timestempel"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr "Tijdstempel van het aanmaken van deze snapshot"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr "Reden"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr "Reden van aanmaken van deze snapshot"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr "Zoekt in %s"
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr "Vast"
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Gelieve de items te selecteren"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "%s sjabloon"
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Sjabloon"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Van sjabloon"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Aanmaken"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Export lijst"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Bewerken"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Knippen"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Kopiëren"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Plakken"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Sjabloon toepassen"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Verwijderen"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Maak snapshot"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Herstel snapshot"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "U heeft geen toestemming om een snapshot te maken voor %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "U heeft geen toestemming om een snapshot te herstellen voor %s."
 
-#: include/class_config.inc:151
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr "U heeft geen toestemming om een snapshot te verwijderen voor %s."
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Ga naar basisafdeling"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Basis"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Ga één afdeling omhoog"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Omhoog"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Ga naar de gebruikersafdeling"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Home"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Lijst opnieuw laden"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr "Opnieuw laden"
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr "Configureer deze beheerslijst"
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Instellen"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "XML fout in fusiondirectory.conf: %s op regel %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Configuratiefout"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
-"Het lijkt erop dat je iets probeert te decoderen wat niet gecodeerd is: %s<br/>\n"
-"a.u.b. kijk na dat je geen gebruik maakt van een fusiondirectory.secrets file terwijl je paswoorden niet geëncrypteerd zijn."
-
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAPfout"
 
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr "Kan niet binden met LDAP, a.u.b. contacteer de systeembeheerder."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr "Plaats \"%s\" kon niet gevonden worden in het configuratiebestand"
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
@@ -114,7 +493,7 @@ msgstr ""
 "De snapshot functionaliteit staat aan, maar de vereiste variabele \"%s\" is "
 "niet ingevuld."
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
@@ -123,227 +502,126 @@ msgstr ""
 "The snapshot-functionaliteit staat aan, maar de vereiste compressie module "
 "ontbreekt, a.u.b. installeer \"%s\"."
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Alle categorieën"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Mijn account"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Pagina"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
-msgstr "Geen PDF export mogelijk: Er is geen FPDF bibliotheek geïnstalleerd."
+msgstr "Geen PDF-export mogelijk: er is geen FPDF-bibliotheek geïnstalleerd."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "aangemaakt door"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Bestand"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Regel"
 
-#: include/php_setup.inc:69
-msgid "PHP error"
-msgstr "PHP fout"
-
-#: include/php_setup.inc:78
-msgid "class"
-msgstr "klasse"
-
-#: include/php_setup.inc:86
-msgid "function"
-msgstr "functie"
-
-#: include/php_setup.inc:92
-msgid "static"
-msgstr "statisch"
-
-#: include/php_setup.inc:96
-msgid "method"
-msgstr "methode"
-
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
-msgstr "Trace"
-
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Type"
-
-#: include/php_setup.inc:149
-msgid "Arguments"
-msgstr "Argumenten"
-
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
-msgstr ""
-"Er is minimaal één PHP fout opgetreden bij het genereren van deze pagina!"
-
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
-msgstr "Stuur probleemrapport naar het FusionDirectory Team"
-
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Stuur probleemrapport"
-
-#: include/php_setup.inc:258
-msgid "Toggle information"
-msgstr "Informatie weergeven/verbergen"
-
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Omhoog"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Omlaag"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Sorteer opwaarts"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Sorteer neerwaarts"
-
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Selecteer alles"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "aangemaakt door"
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Ga naar basisafdeling"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Basis"
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Ga een afdeling omhoog"
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr "Ga naar de gebruikersafdeling"
-
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Home"
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr "PHP-fout"
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Lijst herladen"
+#: include/php_setup.inc:78
+msgid "class"
+msgstr "klasse"
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Acties"
+#: include/php_setup.inc:86
+msgid "function"
+msgstr "functie"
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Kopieer"
+#: include/php_setup.inc:92
+msgid "static"
+msgstr "statisch"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Knip"
+#: include/php_setup.inc:96
+msgid "method"
+msgstr "methode"
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Plakken"
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr "Trace"
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Deze invoer knippen"
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr "Argumenten"
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Deze invoer kopieren"
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+"Er is minimaal één PHP fout opgetreden bij het genereren van deze pagina!"
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Restaureer snapshots"
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr "Stuur probleemrapport naar het FusionDirectory Team"
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Export lijst"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Herstel snapshot"
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Maak snapshot"
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr "Informatie weergeven/verbergen"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Maak een nieuw snapshot van dit object"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
 
 #: include/class_timezone.inc:52
 #, php-format
 msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr "De tijdzone-instelling \"%s\" in je configuratie is ongeldig."
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
-msgstr "Snapshot"
-
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
-msgstr "Snapshot behandelaar"
-
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
-msgstr "Herstel over een bestaand object"
-
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
-msgstr "Herstel een verwijderd object"
-
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
-msgstr "Er was een probleem om snapshotdata te decomprimeren"
-
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr "Snapshotdata kon niet opgehaald worden"
-
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Sjabloon"
-
 #: include/class_template.inc:44
 msgid "Object template, used to create several objects with similar values"
 msgstr ""
@@ -351,298 +629,341 @@ msgstr ""
 " te creëren"
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr "Sjabloon naam"
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Interne fout"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr "Logging mislukt: %s"
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr "Ongeldige optie \"%s\" gebruikt!"
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr "Gebruikte objectType is leeg of ongeldig!"
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
-msgstr "Kan paswoord niet veranderen, onbekende gebruiker \"%s\""
-
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
-"Je moet saslRealm of saslExop invullen in het configuratiescherm als je SASL"
-" wil gebruiken"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Indienen"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "CAS"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Filter toepassen"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr "Login met gebruiker \"%s\" geactiveerde fout: %s"
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Zoek in substructuur"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr "HTML-formulier"
 
-#: include/class_filter.inc:404
-#, php-format
-msgid "Searches in %s"
-msgstr "Zoekt in %s"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Inloggen"
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "De hoeveelheidslimiet van %d invoeren is overschreden!"
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
-#, php-format
+#: include/login/class_LoginPost.inc:132
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
-"Stel de nieuwe hoeveelheidslimiet in op %s en toon me dit bericht indien de "
-"limiet nog steeds overschreden wordt."
+"Waarschuwing: De sessielevensduur geconfigureerd in je fusiondirectory.conf "
+"zal overschreven worden door php.ini instellingen."
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Instellen"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "onvolledig"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr "LDAP schemacontrole gerapporteerde fouten:"
 
-#: include/functions.inc:97
+#: include/login/class_LoginMethod.inc:56
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid ""
+"LDAP schema error:\n"
+"%s"
 msgstr ""
-"Fatale fout: geen klasse-locaties gedefinieerd - a.u.b. voer '%s' uit om dit"
-" op te lossen"
 
-#: include/functions.inc:116
-#, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Geef a.u.b. een geldige gebruikersnaam op!"
+
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Geef a.u.b. uw paswoord op!"
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Accound geblokkeerd. Contacteer a.u.b. je systeembeheerder!"
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAPfout"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
-"Fatale error: kan klasse '%s' niet instantiëren - probeer '%s' te draaien om"
-" dit op te lossen"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Fatale fout."
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
 
-#: include/functions.inc:412
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr "HTTP-Header"
+
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
+msgstr "Geen waarde gevonden in HTTP header \"%s\""
+
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
-"FATAAL: Fout bij het verbinden van de LDAP server. De server meldt: '%s'."
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
-"Login (uid) is niet uniek binnen de LDAP boom. a.u.b. contacteer je "
-"administrator."
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Authenticatiefout"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "E-mail adres"
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Paswoord herstel"
+
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "Kan geen account vinden met login \"%s\""
+
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Er zijn meerdere accounts gevonden met login \"%s\""
+
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr "Er is geen account dat e-mail gebruikt \"%s\""
+
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
+msgstr "Er zijn verscheidene accounts die e-mail gebruiken \"%s\" "
+
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
-"Het lijkt erop dat je gebruikerspaswoord vervallen is. a.u.b. gebruik <a "
-"href=\"recovery.php\"> paswoord herstel </a> om het te veranderen."
+"De gebruiker die e-mail \"%s\" gebruikt is vergrendeld, a.u.b. contacteer je"
+" systeembeheerder."
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
-"Fout tijdens het toevoegen van een vergrendeling. Contacteer de "
-"programmeurs!"
 
-#: include/functions.inc:594
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr "Deze token is ongeldig"
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr "Kan paswoord niet veranderen, onbekende gebruiker \"%s\""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
-"Kan de vergrendelingsinformatie voor de LDAP-boom niet aanmaken. Gelieve je "
-"systeembeheerder te contacteren!"
+"Je moet saslRealm of saslExop invullen in het configuratiescherm als je SASL"
+" wil gebruiken"
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "LDAP server weergegeven: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "FusionDirectory configuratie %s/%s is niet leesbaar. Geannuleerd."
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Waarschuwing"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr "Directory \"%s\" aangeduid als compileer directory is niet toegankelijk!"
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "onvolledig"
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
-"Verschillende vergrendelingen zijn teruggevonden voor het object dat je in "
-"vergrendeling wil plaatsen. Dit zou niet mogen gebeuren - opschonen van "
-"meerdere referenties."
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Toch doorgaan"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
+"Fatale fout: geen klasse-locaties gedefinieerd - a.u.b. voer '%s' uit om dit"
+" op te lossen"
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Alsnog bewerken"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
+"Fatale error: kan klasse '%s' niet instantiëren - probeer '%s' te draaien om"
+" dit op te lossen"
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Je staat op het punt de LDAP inzending/inzendingen te wijzigen %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
+msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
-"Bestand '%s' kon niet verwijderd worden. Probeer fusiondirectory-setup "
-"--check-directories om de rechten correct te plaatsen."
 
-#: include/functions.inc:1722
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
+msgstr ""
+
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Kan niet wegschrijven naar revisie bestand!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
-msgstr "Kan revisie bestand niet lezen!"
-
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "LDAP waarschuwing"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
+msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Kan geen schema-informatie krijgen van de server. Geen schemaverificatie "
 "mogelijk!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr "HoofdFusionDirectoryschema"
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr "Schema gebruikt om FusionDirectory configuratie op te slaan"
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 "Gebruikt om trust-modus informatie op te slaan in gebruikers of groepen"
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr "Gebruikt om sjabloons op te slaan."
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr "Gebruikt om POSIX informatie op te slaan."
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr "Ontbrekende vereiste objectklasse \" %s\"!"
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr "Ontbrekende optionele objectklasse \" %s\"!"
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Klasse(n) beschikbaar"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
@@ -650,7 +971,7 @@ msgstr ""
 "Je hebt de gemengde groep plugin geïnstalleerd, maar je schemaconfiguratie "
 "ondersteund dit niet."
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
@@ -658,7 +979,7 @@ msgstr ""
 "Om gemengde groep te gebruiken moet de objectKlasse \"posixGroup\" AUXILIARY"
 " zijn"
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
@@ -666,374 +987,231 @@ msgstr ""
 "Je schema is geconfigureerd om gemengde groepen te ondersteunen, maar deze "
 "plugin is niet aanwezig."
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr "De objectKlasse \"posixGroup\" moet STRUCTURAL zijn"
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Kan bestand '%s' niet vinden - gebruik a.u.b. '%s' om dit op te lossen"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Alle objecten in deze categorie"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Login"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Rechten"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Annuleer alles"
 
-#: include/class_CopyPasteHandler.inc:332
-msgid "Cannot paste"
-msgstr "Kan niet plakken"
-
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Selecteer om objecten van type '%s' te tonen."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Selecteer om objecten die '%s' bevatten te tonen."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Selecteer om objecten te tonen die '%s' actief hebben"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Selecteer om binnen substructuren te zoeken"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Dit object zal verwijderd worden!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Dit '%s' obkect zal verwijderd worden!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Dit object zal verwijder worden: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Dit '%s' object zal verwijderd worden: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Dit object zal verwijderd worden:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Dit '%s' object zal verwijderd worden:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Deze objecten zullen verwijderd worden: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Deze '%s' objecten zullen verwijderd worden: %s"
+#: include/class_CopyPasteHandler.inc:333
+msgid "Cannot paste"
+msgstr "Kan niet plakken"
 
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Je hebt geen rechten om dit object te verwijderen!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Je hebt geen rechten om dit object te verwijderen:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Je hebt geen rechten om deze objecten te verwijderen:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Je hebt geen rechten om dit object aan te maken!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Je hebt geen rechten om dit object aan te maken:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Je hebt geen rechten om deze objecten aan te maken:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Je hebt geen rechten om dit object te wijzigen!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr "Je hebt geen toestemming om het veld \"%s\" of object \"%s\" te veranderen"
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
-msgstr "Je hebt geen toestemming om het object  <br/> %s te veranderen"
+msgid "You have no permission to modify the object:%s"
+msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
-msgstr "Je hebt geen toestemming om deze objecten  <br/> %s te veranderen"
+msgid "You have no permission to modify these objects:%s"
+msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Je hebt geen rechten om dit object te bekijken!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Je hebt geen rechten om dit object te bekijken:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Je hebt geen rechten om deze objecten te bekijken:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Je hebt geen rechten om dit object te verplaatsen!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Je hebt geen rechten om dit object te verplaatsen:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Je hebt geen rechten om deze objecten te verplaatsen:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Verbindingsinformatie"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Kan niet verbinden met %s databank!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Kan %s databank niet selecteren!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "Geen %s server gedefinieerd!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Kan geen query maken naar %s databank!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "Het veld '%s' bevat een gereserveerd keyword!"
-
-#: include/class_msgPool.inc:297
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "Commando gespecifieerd als %s hook voor plugin '%s' bestaat niet!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "'%s' commando is niet geldig!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "'%s' commando voor plugin %s is niet geldig!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "'%s' commando (%s) is niet geldig!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "'%s' commando (%s) voor plugin %s is niet geldig!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Kan '%s' commando niet uitvoeren!"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Kan '%s' commando voor plugin %s niet uitvoeren!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "Kan '%s' commando (%s) niet uitvoeren!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Kan '%s' commando (%s) voor plugin %s niet uitvoeren!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "Waarde voor '%s' is te groot!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "'%s' moet kleiner zijn dan %s!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "Waarde voor '%s' is te klein!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s' moet %d zijn of hoger!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s' hangt af van '%s' - geef a.u.b. beide waarden in!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "Er is al een inzending met dit '%s' attribuut in het systeem!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
-msgstr "De invoer '%s' gebruikt dit '%s' attribuut al!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
+msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Het vereiste veld '%s' is leeg!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "Voorbeeld:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
+msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
-msgstr "Het veld '%s' bevat ongeldige karakters"
+msgid "The required field \"%s\" is empty!"
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' is niet toegelaten:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s' zijn niet toegelaten!"
+msgid "Example: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "%s PHP extensie ontbreekt!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Annuleren"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Toepassen"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Opslaan"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Toevoegen"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Voeg %s toe"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Verwijderen"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Verwijder %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Wijzig..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Wijzig %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Terug"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "De account heeft geen geldige %s extensies!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1042,7 +1220,7 @@ msgstr ""
 "Deze account heeft %s opties actief. Je kan deze desactiveren door op ze te "
 "klikken hieronder."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1051,7 +1229,7 @@ msgstr ""
 "Deze account heeft %s opties actief. Om ze te desactiveren, zal je de %s "
 "opties eerst moeten verwijderen!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1060,7 +1238,7 @@ msgstr ""
 "Deze account heeft %s opties op non-actief. Om ze te activeren kan je "
 "hieronder op ze klikken."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1069,7 +1247,7 @@ msgstr ""
 "Deze account heeft %s instellingen op non-actief. Om ze te activeren moet je"
 " de %s instellingen eerst toevoegen!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
@@ -1078,240 +1256,190 @@ msgstr ""
 "Deze account heeft %s instellingen op non-actief. Om ze te activeren moet je"
 " de %s opties eerst afzetten!"
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Voeg %s opties toe"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Verwijder %s opties"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Januari"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Februari"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Maart"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "April"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Mei"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Juni"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Juli"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Augustus"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "September"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Oktober"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "November"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "December"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Zondag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Maandag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Dinsdag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Woensdag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Donderdag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Vrijdag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Zaterdag"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "leesbewerking"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "voeg bewerking toe"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "wijzig bewerking"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "verwijder bewerking"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "zoek bewerking"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "authenticatie"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "LDAP %s mislukt!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "LDAP bewerking mislukt!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Object"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Upload faalde!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Upload faalde: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Communicatie met de infrastructuur dienst faalde!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Communicatie met de infrastructuur dienst faalde: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "De '%s' is nog steeds in gebruik door dit object: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "De '%s' is nog steeds in gebruik."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "De '%s' is nog steeds in gebruik door deze objecten: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Bestand '%s' bestaat niet!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Kan bestand '%s' niet openen om te lezen!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Kan bestand '%s' niet openen om te schrijven!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"De waarde voor '%s' is momenteel niet geconfigureerd of niet geldig, "
-"verifieer a.u.b. je configuratie bestand!"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Kan bestand '%s' niet verwijderen!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Kan folder '%s' niet maken!"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Kan folder '%s' niet verwijderen!"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Verificatie voor %s support"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Installeer en activeer de %s PHP module."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Installeer en activeer de %s Pear module."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+"De opgegeven base is niet geldig en is veranderd naar de vorige waarde!"
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
-"Kan class '%s' niet initializeren! Misschien ontbreekt er een plugin in je "
-"FusionDirectory setup?"
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
-"De opgegeven base is niet geldig en is veranderd naar de vorige waarde!"
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
@@ -1321,56 +1449,26 @@ msgstr ""
 "afhankelijk zijn van \"%2$s\" omdat \"%2$s\" reeds afhankelijk is van "
 "\"%1$s\""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Gelieve de items te selecteren"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Naam"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Omschrijving"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr "Ontvang service status"
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Start service"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Stop service"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Herstart service"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Basis"
 
@@ -1382,86 +1480,128 @@ msgstr "Objectbasis"
 msgid "Base field value should always be a string"
 msgstr "La valeur de la base doit toujours être une chaîne"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Onbekend type: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "Onbestaand dn: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Geen"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Onbekend"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr "Toevoegen (dialoog)"
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
 #, php-format
-msgid "Error, incorrect date: %s"
-msgstr "Fout, niet correcte datum: %s"
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Uren"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Minuten"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "Seconden"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Datum"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Tijd"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Kan geupload bestand niet lezen: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "bestand is leeg"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "bestand niet gevonden"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "bestand onleesbaar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr "%s (%d bytes)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Upload"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Download"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
@@ -1469,175 +1609,159 @@ msgstr ""
 "Kan gebruiker foto niet opslaan, FusionDirectory heeft de installatie van de"
 " PHP module \"imagick\" nodig!"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Verwijderen"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr "Nummer"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Bewerken"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Een integer tussen %d en %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Een integer groter dan %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Een integer kleiner dan %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Een float tussen %f en %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Een float groter dan %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Een float kleiner dan %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
-msgstr "De waarde voor multi-waardevelden \"%s\" is geen array"
+msgid "Invalid: %s"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (verplicht)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr "SetAttribute \"%s\" a été fixé à une valeur non compatible"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Ongeldige waarde voor %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Sorteer opwaarts"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Geen"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Sorteer neerwaarts"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
-msgstr "De waarde \"%s\" voor veld \"%s\" staat niet in de lijst van mogelijke keuzes"
+msgid "\"%s\" is not in the list of possible choices"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr "StringAttribute \"%s\" a été fixé à une valeur non compatible"
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr "Sjabloon instellingen"
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Dit is de naam van het sjabloon"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr "Alleen hoofdtab kan dn verwerken"
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr "Kan dn niet verwerken: geen parent tabklasse voor \"%s\""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
-"Kan dn niet verwerken: kan objectType infos niet vinden van tabklasse \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Er is al een invoer met dezelfde dn: %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "De invoer %s bestaat niet"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
-"Het object is veranderd sinds de opening in Fusiondirectory. Alle "
-"ondertussen door anderen aangebrachte veranderingen zullen verloren gaan als"
-" je deze invoer bewaart."
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr "Service \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Tab \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr "Impossible de créer un DN unique"
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr "Onbekend veld \"%s\""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
@@ -1646,142 +1770,51 @@ msgstr ""
 "Geen plugin definities gevonden om te initialiseren \"%s\", a.u.b. check je "
 "configuratie file."
 
-#: include/simpleplugin/class_simpleTabs.inc:396
-#, php-format
-msgid "Failed to compute DN for object: %s"
-msgstr "Impossible de calculer le DN pour l'objet : %s"
-
-#: include/simpleplugin/class_simpleTabs.inc:413
-#, php-format
-msgid "Move from \"%s\" to \"%s\" failed: %s"
-msgstr "Verplaats van \"%s\" naar \"%s\" niet geslaagd: %s"
-
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
-msgid "B"
-msgstr "B"
-
-#: include/simpleplugin/class_helpersAttribute.inc:269
-msgid "KiB"
-msgstr "KiB"
-
-#: include/simpleplugin/class_helpersAttribute.inc:270
-msgid "MiB"
-msgstr "MiB"
-
-#: include/simpleplugin/class_helpersAttribute.inc:271
-msgid "GiB"
-msgstr "GiB"
-
-#: include/simpleplugin/class_helpersAttribute.inc:272
-msgid "TiB"
-msgstr "TiB"
-
-#: include/simpleplugin/class_helpersAttribute.inc:286
-msgid "seconds"
-msgstr "seconden"
-
-#: include/simpleplugin/class_helpersAttribute.inc:287
-msgid "minutes"
-msgstr "minuten"
-
-#: include/simpleplugin/class_helpersAttribute.inc:288
-msgid "hours"
-msgstr "uren"
-
-#: include/simpleplugin/class_helpersAttribute.inc:289
-msgid "days"
-msgstr "dagen"
-
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr "POSIX groep %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Rol %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
-#, php-format
-msgid "Group %s"
-msgstr "Groep %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Gebruikersgroep"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Onbekend"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "Van sjabloon"
-
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
-msgid "%s template"
-msgstr "%s sjabloon"
+msgid "Failed to compute DN for object: %s"
+msgstr "Impossible de calculer le DN pour l'objet : %s"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
-msgid "Show %s"
-msgstr "Toon %s"
+msgid "Move from \"%s\" to \"%s\" failed: %s"
+msgstr "Verplaats van \"%s\" naar \"%s\" niet geslaagd: %s"
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Filterfout"
+#: include/simpleplugin/class_helpersAttribute.inc:261
+msgid "B"
+msgstr "B"
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Deze filter is niet compleet!"
+#: include/simpleplugin/class_helpersAttribute.inc:262
+msgid "KiB"
+msgstr "KiB"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Toestemmingsfout"
+#: include/simpleplugin/class_helpersAttribute.inc:263
+msgid "MiB"
+msgstr "MiB"
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "U heeft geen toestemming om een snapshot te maken voor %s."
+#: include/simpleplugin/class_helpersAttribute.inc:264
+msgid "GiB"
+msgstr "GiB"
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "U heeft geen toestemming om een snapshot te herstellen voor %s."
+#: include/simpleplugin/class_helpersAttribute.inc:265
+msgid "TiB"
+msgstr "TiB"
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr "Je hebt geen toelating om een snapshot te verwijderen voor %s.  "
+#: include/simpleplugin/class_helpersAttribute.inc:279
+msgid "seconds"
+msgstr "seconden"
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "Geen label"
+#: include/simpleplugin/class_helpersAttribute.inc:280
+msgid "minutes"
+msgstr "minuten"
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Aanmaken"
+#: include/simpleplugin/class_helpersAttribute.inc:281
+msgid "hours"
+msgstr "uren"
+
+#: include/simpleplugin/class_helpersAttribute.inc:282
+msgid "days"
+msgstr "dagen"
 
 #: include/class_acl.inc:35 include/class_acl.inc:39
 msgid "ACL"
@@ -1792,46 +1825,113 @@ msgid "Manage access control lists"
 msgstr "Beheer access control lists"
 
 #: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
 msgid "ACL roles"
 msgstr "ACL rollen"
 
-#: include/class_acl.inc:118
+#: include/class_acl.inc:105
 #, php-format
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
-"Onbekend ACL type '%s'! \n"
-"Je zal mogelijks \"fusiondirectory-setup --migrate-acls\" moeten uitvoeren om je acl's te migreren naar het nieuwe formaat."
 
-#: include/class_acl.inc:170
+#: include/class_acl.inc:161
 #, php-format
 msgid "Unknown entry '%s'!"
 msgstr "Onbekende invoer '%s'!"
 
-#: include/class_acl.inc:173
+#: include/class_acl.inc:164
 #, php-format
 msgid "All users"
 msgstr "Alle gebruikers"
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Performantiewaarschuwing"
+#: include/class_userinfo.inc:241
+#, php-format
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
+
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"Login (uid) is niet uniek binnen de LDAP boom. a.u.b. contacteer je "
+"administrator."
+
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Waarschuwing"
+
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
+
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
+
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
+
+#: include/errors/class_SimplePluginHookError.inc:73
+#, php-format
+msgid "Exit code: %d"
+msgstr ""
+
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr ""
+
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
+
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
+
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
+msgstr ""
+
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
+"Het lijkt erop dat je gebruikerspaswoord vervallen is. a.u.b. gebruik <a "
+"href=\"recovery.php\"> paswoord herstel </a> om het te veranderen."
+
+#: include/class_ldap.inc:233
+#, php-format
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr "LDAP performantie is slecht: laatste query duurde ongeveer %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
-"Kan niet automatisch een substructuur met RDN \"%s\" creëren: niet "
-"ondersteund"
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
@@ -1839,112 +1939,97 @@ msgstr ""
 "Kan niet automatisch een substructuur met RDN \"%s\" creëren: geen "
 "objectklasse gevonden!"
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+"Kan niet automatisch een substructuur met RDN \"%s\" creëren: niet "
+"ondersteund"
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "bij het bewerken van '%s' op LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "bij het bewerken van LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr "proc_open is er niet in geslaagd om ldapsearch uit te voeren"
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 "Fout lijn %s, eerste lijn van een invoer kan niet starten met een spatie"
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 "Fout lijn %s, referenties naar een extern bestand zijn niet ondersteund"
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr "Fout lijn %s, attribuut \"%s\" heeft geen waarde"
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr "Fout lijn %s, een invoerblok kan enkel maar één dn hebben"
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr "Fout lijn %s, een invoerblok moet starten met een dn"
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr "Fout tijdens importeren dn: \"%s\", a.u.b. kijk je LDIF na vanaf lijn %s!"
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr "Maak een object snapshot aan"
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr "DN van het object waarvan je een snapshot aan het maken bent"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Timestempel"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr "Tijdstempel van het aanmaken van deze snapshot"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr "Reden"
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr "Reden van aanmaken van deze snapshot"
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d,H-i:s"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr "DN"
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Herstel"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr ""
+"Fout tijdens het toevoegen van een vergrendeling. Contacteer de "
+"programmeurs!"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr "Herstellen snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
+msgstr ""
+"Kan de vergrendelingsinformatie voor de LDAP-boom niet aanmaken. Gelieve je "
+"systeembeheerder te contacteren!"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP server weergegeven: %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
-msgstr "Bestaande snapshots voor dit object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
+msgstr ""
+"Verschillende vergrendelingen zijn teruggevonden voor het object dat je in "
+"vergrendeling wil plaatsen. Dit zou niet mogen gebeuren - opschonen van "
+"meerdere referenties."
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Lijst met afdelingen"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
+msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Afdeling"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Alsnog bewerken"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Domein"
@@ -1953,127 +2038,142 @@ msgstr "Domein"
 msgid "domain"
 msgstr "domein"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organisatie"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "Organisatie"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Afdeling"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Afdelingen"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "afdeling"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Eigenschappen"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Naam van %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Een naam voor deze  %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Korte omschrijving van deze %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Categorie"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Categorie van deze %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr "Website"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr "Website van deze %s"
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Beheerder"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Beheerder van deze %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Plaats"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Provincie"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Land"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adres"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Een postadres voor deze %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telefoon"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Telefoonnummer"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "Facsimile telefoon nummer"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Naam"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Domeinbestanddeel"
@@ -2082,33 +2182,33 @@ msgstr "Domeinbestanddeel"
 msgid "domain component"
 msgstr "domeinbestanddeel"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "land"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
-msgstr ""
+msgstr "Landcode"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
-msgstr ""
+msgstr "Een tweeletterige landcode van ISO 3166"
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Plaats"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "plaats"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Beheer afdelingen"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
@@ -2116,236 +2216,201 @@ msgstr ""
 "Beheer afdelingen, landen, domeincomponenten, domeinen, plaatsen en "
 "organisatienodes"
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Gebruikers en groepen"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Taken"
+
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Rapportering"
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
+msgstr ""
+
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Status"
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
+msgstr ""
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
+msgstr ""
+
+#: plugins/admin/groups/class_groupManagement.inc:41
 #: plugins/personal/roles/class_userRoles.inc:33
 msgid "Groups and roles"
 msgstr "Groepen en rollen"
 
-#: plugins/admin/groups/class_groupManagement.inc:36
+#: plugins/admin/groups/class_groupManagement.inc:42
 msgid "Manage groups and roles"
 msgstr "Beheer groepen en rollen"
 
-#: plugins/admin/groups/class_groupManagement.inc:37
+#: plugins/admin/groups/class_groupManagement.inc:43
 msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr "Laat je toe om object groepen te beheren, POSIX groepen en rollen"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr "Handeling geannuleerd"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Start actie"
+
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Plan actie"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
+#: plugins/admin/groups/class_groupManagement.inc:136
 #, php-format
 msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 "System %s heeft geen mac adres gedefinieerd, actie kan niet uitgevoerd "
 "worden"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
+#: plugins/admin/groups/class_groupManagement.inc:145
 #, php-format
 msgid "Could not find system %s, cannot trigger action"
 msgstr "Kan systeem %s niet vinden, kan actie niet starten"
 
-#: plugins/admin/groups/class_groupManagement.inc:176
+#: plugins/admin/groups/class_groupManagement.inc:169
 #, php-format
-msgid "System %s is currently installing"
-msgstr "Systeem %s is aan het installeren"
+msgid "System %s is currently installing, cannot trigger action"
+msgstr ""
 
 #: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr "Infrastructuurservice"
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/groups/class_groupManagement.inc:200
 msgid "Action triggered"
 msgstr "Actie gestart"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Rol"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Bewerk roleigenschappen"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Bewerk posix eigenschappen"
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Toon gebruikersgroepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Toon organisatierollen"
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Toon applicatiegroepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
-msgstr "Toon groepen van groepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
-msgstr "Toon ongeïdentificeerde groepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Toon primaire groepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Toon mailgroepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Toon samba-groepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr "Toon DSA ingaves"
-
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Toon servergroepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Toon workstationgroepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Toon terminalgroepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Toon printergroepen"
-
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Toon telefoongroepen"
-
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "Onbekend type: %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr "Actie opgevraagd zonder fout (resultaat waren \"%s\")"
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
-msgstr "Onbestaand dn: %s"
+msgid "Action called without error (result was \"%s\")"
+msgstr "Actie opgevraagd zonder fout (resultaat was \"%s\")"
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Objectgroep"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Object groepsinformatie"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Groep"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Naam van deze groep"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Korte beschrijving van deze groep"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Eigenaar"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Ledenobjecten"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Objectleden van deze groep"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Systeem vertrouwen"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Vertrouwensmodus"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Type van authorisatie voor deze hosts"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "gedeactiveerd"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "volledige toegang"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "sta toegang op deze computers toe"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr "Laat alleen deze groep toe om met deze lijst van hosts te verbinden "
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 "Werkstations en terminals in dezelfde groep plaatsen is niet toegestaan"
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Lijst met groepen"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Start actie"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Leden"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Plan actie"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Rol"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Rolinformatie"
 
@@ -2363,8 +2428,8 @@ msgid "Description of the role"
 msgstr "Beschrijving van de rol"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Telefoonnummer"
 
@@ -2380,182 +2445,170 @@ msgstr "ledenrol"
 msgid "Add users for the role"
 msgstr "Voeg gebruikers toe voor de rol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "ACL taak"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "ACL toekenning"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Toegangscontrole rollentoewijzing"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Toewijzing"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "ACL roltoewijzingen voor deze basis"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Toewijzing op objecten of substructuur %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ", en %d anderen"
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr "ACL opdracht dialoog"
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Rollentoegangscontrole toewijzigsdialoog"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Modus"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr "Is dit toepasbaar op complete substructuur of enkel op de basis?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Substructuur"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Basis enkel"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Toe te passen rol"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Voor alle gebruikers"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Pas deze ACL toe op alle LDAP gebruikers"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Leden"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr "Gebruikers of groepen waaraan deze rol kan toegewezen worden"
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
-msgstr ", en %d anderen"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "ACL taak"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "ACL toekenning"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Toegangscontrole rollentoewijzing"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Toewijzing"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "ACL roltoewijzingen voor deze basis"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
-msgstr "Toewijzing op objecten of substructuur %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr "ACL toewijzing aanmaak"
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr "Maak een ACL toewijzing aan op een willekeurige dn"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr "Dn"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr "DN waarvoor je toewijzingen wil bijvoegen"
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
-msgstr "De ingegeven dn kon niet in de LDAP worden gevonden"
+msgid "The dn you entered could not be found in LDAP"
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "ACL toewijzingen"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr "ACL toewijzingsbeheer"
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr "Beheer ACL rollen toewijzingen aan gebruikers"
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Lijst met gebruikers"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Achternaam"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Naam"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Gebruiker"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Vergrendel gebruikers"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Ontgrendel gebruikers"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Sjabloon toepassen"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Nieuwe gebruiker vanaf sjabloon"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Bewerk gebruiker"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Verwijder gebruiker"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Gebruikers"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Beheer gebruikers"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr "Beheer gebruikersaccounts en hun eigenschappen"
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Account vergrendeling"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
@@ -2564,7 +2617,7 @@ msgstr ""
 "Paswoord methode \"%s\" ondersteunt geen vergrendeling. Account \"%s\" is "
 "niet vergrendeld!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
@@ -2573,198 +2626,270 @@ msgstr ""
 "Le verrouillage a échoué en utilisant la méthode de mot de passe \"%s\". Le "
 "compte \"%s\" n'a pas été verrouillé!"
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Ontgrendel account"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Vergrendel account"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Gebruikersaccount"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Gebruikersaccount informatie"
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Bevat instellingen voor deze objecten: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Access control rollen"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "ACL rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Een naam voor deze rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Korte omschrijving van deze rol"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "ACLs"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr "ACLs die een deel vormen van deze groep"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Geen ACL opties voor deze categorie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL voor deze objecten: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Wijzig ACL categorie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Reset ACL categorie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Toon beschikbare ACL categoriëen"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Alle objecten in huidige substructuur"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr "Bewerk ACL voor \"%s\""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "lezen"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "ACL rollenbeheer"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "schrijven"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "Beheer ACL rollen"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Toon/verberg geavanceerde instellingen"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Maak objecten"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Verplaats objecten"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Verwijder objecten"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Rechten toekennen aan eigenaar"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Volledig object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "ACL rollenbeheer"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
-msgstr "Beheer ACL rollen"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Activeer snapshots"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Dit laat je toe om bepaalde toestand van ingaves te bewaren en later te "
+"herstellen."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Snaphosts basis"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Plugins configuratie"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "FusionDirectory plugins configuratie"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Objectgroepen"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "Groeps RDN"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Sectie waarin objectgroepen worden opgeslagen"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
-msgstr "Verplicht om paswoord te vragen"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
+msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
-"Nuttig als je een hook toevoegt gebruik makend van paswoord waarde wanneer "
-"SASL gebruikerspaswoorden worden bewerkt"
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Dashboard configuratie"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr "FusionDirectory dashboard plugin configuration"
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Dashboardnaam schema"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Aantal cijfers"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "Aantal cijfers te gebruiken na prefix"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Voorvoegsel"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr "Voorvoegsel te gebruiken voor de computers ids"
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "Dashboard vervallen gebruikers"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Aantal dagen"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
@@ -2773,6 +2898,8 @@ msgstr ""
 "volgende vervallen accountlijst te tonen"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -2780,48 +2907,50 @@ msgstr "Plugins"
 msgid "Configuration for plugins"
 msgstr "Configuratie voor plugins"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Paswoord herstel"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Instellingen voor de paswoordherstelfunctie"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Paswoord herstel instellingen"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Activeer paswoord herstel"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
-msgstr "Al dan niet activeren paswoordherstel mogelijkheid"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Zender e-mailadres"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "E-mail adres van waaruit de mails zullen verzonden worden"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Link geldigheid (minuten)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Aantal minuten voordat een herstel-link vervalt"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "Salt voor tokens"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2829,52 +2958,50 @@ msgstr ""
 "Enkel een veiligheidsmaatregel, dit biedt vele mogelijkheden van invulling, "
 "zelfs willekeurige tekens"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Sta gebruik van alternatieve adressen toe "
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Gebruikers zullen ook in de mogelijkheid zijn om één van hun alternatieve "
-"adressen in te geven om hun paswoord te herstellen"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Login attribuut"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 "Meestal uid, maar je kan iets anders gebruiken vb in het geval van SSO"
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Eerste e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Onderwerp"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Onderwerp van de eerste e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Paswoord herstel-link"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Body (eerste %s is login, tweede is link)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2883,7 +3010,7 @@ msgstr ""
 "Body van de eerste e-mail, verzonden als de gebruiker een nieuw paswoord "
 "vraagt. gebruik %s voor het inloggen en de herstel-link."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2902,24 +3029,24 @@ msgstr ""
 "\n"
 "Deze link is enkel 10 minuten geldig."
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Tweede e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Onderwerp van de tweede e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Paswoord herstel succesvol"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Body (%s is login)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2928,7 +3055,7 @@ msgstr ""
 "Body van de tweede e-mail, verzonden om te bevestigen dat het paswoord "
 "veranderd is.  Gebruik  %s voor de gebruikerlogin."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2937,29 +3064,84 @@ msgid ""
 "Your login is still %s."
 msgstr "Hallo,⏎ ⏎ Je paswoord is gewijzigd ⏎ Je login is nog steeds %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr "Tab"
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Wanneer dit commando op te roepen"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr "Opdracht"
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "De opdracht die opgeroepen zal worden"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configuratie"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "FusionDirectory configuratie"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr "Configuratiescherm van FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Vormgeving en stijl"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Taal"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2968,39 +3150,39 @@ msgstr ""
 "diegene gevraagd door de browser gebruikt worden. Deze instelling kan "
 "overschreven worden door de gebruiker."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Thema"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Te gebruiken thema "
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Tijdszone"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Te gebruiken Tijdszone"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Kerninstellingen"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "LDAP grootte-limiet"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr "Definieert het aantal standaard te verkrijgen ingaves van LDAP "
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Bewerk vergrendeling"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -3008,94 +3190,82 @@ msgstr ""
 "Kijk na of een invoer die op dit moment bewerkt wordt in tussentijd "
 "aangepast is geweest buiten FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Activeer logging"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Gebeurtenislogging aan de zijde van FusionDirectory."
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr "Schermbevestiging"
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr "Activeer schemacontrole tijdens login "
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Activeer snapshots"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-"Dit laat je toe om bepaalde toestand van ingaves te bewaren en later te "
-"herstellen."
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Snaphosts basis"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "De basis waar snapshots moeten opgeslagen worden binnen LDAP."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Paswoord opties"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "Paswoord standaard hash"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "Standaard te gebruiken hash "
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Verplicht standaard hash"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr "Verplicht het gebruik van standaard paswoordhash"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Paswoord minimumlengte"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Minimum lengte van gebruikerspaswoorden"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Minimumpaswoord wijkt af"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr "Minimum aantal verschillende karakters voor het laatste paswoord"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Gebruik accountvervaltijd"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
@@ -3103,33 +3273,33 @@ msgstr ""
 "Activeert schaduwattribuut-testen tijdens het inloggen op FusionDirectory en"
 " verplicht paswoordvernieuwing of accountlocking"
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "SASL Realm"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr "Attribuut op te slaan in het gebruikerspaswoordattribuut"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Login en sessie"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 "Welk LDAP attribuut moet gebruikt worden als de loginnaam tijdens het "
 "inloggen."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Verplicht geëncrypteerde connecties"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3137,171 +3307,183 @@ msgstr ""
 "Activeert PHP veiligheidscontroles om  geëncrypteerde toegang (httpps) tot "
 "de web interface af te dwingen"
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Verwittig mij als de sessie niet gëencrypteerd is"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 "Zal een waarschuwing tonen aan de gebruiker wanneer http gebruikt wordt "
 "i.p.v. https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Sessie levensduur"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 "Definieert wanneer een sessie zal vervallen in seconden (0 om uit te "
 "schakelen)."
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr "HTTP Basis authenticatie"
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr "Gebruik HTTP basisauthenticatieprotocol i.p.v. het inlogformulier"
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
-msgstr "HTTP Header authenticatie"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr "Gebruik HTTP Header authenticatie i.p.v. het inlogformulier"
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr "Headernaam"
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr "Naam van de header die gebruikersidentiteit bevat"
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr "Sleutelpad"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr "Pad naar de FusionDirectory private sleutel. Voorlopig niet gebruikt."
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr "Certificaatpad"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr "Pad naar FusionDirectory certificaat. Voorlopig niet gebruikt."
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr "CA certificaat pad"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 "Pad naar het CA certificaat. Gebruikt voor het valideren van de Argonaut "
 "host."
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr "CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr "Activeer CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr "CAS login zal gebruikt worden i.p.v. LDAP bind"
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr "Pad naar het CA certificaat van de CAS server"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Host"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr "Host van de CAS server"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Poort"
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port the CAS server is listening on"
-msgstr "Poort waarop de CAS server luistert"
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port the CAS server is listening on"
+msgstr "Poort waarop de CAS server luistert"
+
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context"
+msgstr "CAS context"
+
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context to be used"
+msgstr "Te gebruiken CAS context "
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context"
-msgstr "CAS context"
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context to be used"
-msgstr "Te gebruiken CAS context "
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Personen- en groepsopslag"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Personen DN attribuut"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
-msgstr "Attribuut te gebruiken in het begin van gebruikers dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr "CN Patroon"
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 "Het patroon te gebruiken om het gemeenschappelijke naamveld aan te maken"
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Strikt naambeleid"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr "Activeert strikte controle van gebruikers- en groepsnamen"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr "Gebruikers RDN"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "De sectie waarin gebruikers opgeslagen zijn"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr "ACL rol RDN"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr "De sectie waarin ACL rollen opgeslagen zijn"
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr "Beperk rol leden"
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
@@ -3309,20 +3491,20 @@ msgstr ""
 "Wanneer geactiveerd kunnen enkel gebruikers van dezelfde familie of "
 "groepsleden van dezelfde familie toegevoegd worden aan een rol "
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr "Afzonderlijk adresveld"
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr "Toon street, postOfficeBox en postalCode velden i.p.v. postalAddress"
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr "Postadres patronen"
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
@@ -3330,27 +3512,35 @@ msgstr ""
 "Voor het gebruiken van afzonderlijke adresvelden kan je patronen gebruiken "
 "om postalAdres veld op te vullen."
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Debugging"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Fouten weergeven"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
-"Toont PHP fouten in het bovenste deel van het scherm. Dit moet afgezet "
-"worden in productieomgevingen omdat het mogelijks paswoorden kan tonen."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Maximum LDAP query tijd"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
@@ -3358,11 +3548,11 @@ msgstr ""
 "Stop LDAP acties als er geen antwoord is binnen het aangegeven aantal "
 "seconden."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Log LDAP statistieken"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3370,23 +3560,31 @@ msgstr ""
 "Track LDAP timing statistieken naar de syslog. Dit kan helpen "
 "indexeerproblemen of slechte filters te vinden."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Debug level"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Toon bepaalde informatie bij het opladen van elke pagina"
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Terminal Service diverse"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Toon overzicht in lijsten"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3395,11 +3593,11 @@ msgstr ""
 "korte opsomming van type en nummering van elementen in de lijst zal "
 "weergeven."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr "Toon ACL tab op alle objecten"
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
@@ -3407,105 +3605,150 @@ msgstr ""
 "Voor zeer specifieke ACL rechteninstellingen waarin je mogelijks rechten op "
 "één enkel object moet geven."
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr "Beschikbare afdelingcategorieën"
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr "Beschikbare categorieën in de afdelingsdropdown"
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 "Gebruik dit om enkele menu ingaves naar specifieke groepen en gebruikers te "
 "verbergen"
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr "Groep of rol"
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr "Plugin naar blacklist"
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr "Plugin menu blacklist"
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatisch"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "Hooks die opgeroepen worden als er specifieke acties plaats vinden"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Groep %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
-msgstr "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Rol %s"
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "De tab die op deze hook betrekking heeft"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Wanneer dit commando op te roepen"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
-msgstr "Opdracht"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Versie"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "De opdracht die opgeroepen zal worden"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
-msgstr "Toon hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
-"Wanneer succesvol geactiveerd dan wordt er hook uitvoeringsoutput getoond "
-"aan de gebruiker gebruik makend van een dialoog."
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatisch"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Dashboard"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr "Statistieken en diverse informatie"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr "Zie dashboard"
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Statistieken"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+"Statistieken voor type \"%s\" kunnen niet verwerkt worden vanwege de "
+"volgende fout: %s"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Statistieken over gebruikers"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Statistieken van gebruikers"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Statistieken van groepen"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Vervallen accounts"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Login"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Vervaldatum"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "E-mail"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
@@ -3514,7 +3757,7 @@ msgstr ""
 "Gebruikerstatistieken kunnen niet verwerkt worden vanwege de volgende LDAP "
 "fout: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
@@ -3523,7 +3766,7 @@ msgstr ""
 "Groepstatistieken kunnen niet verwerkt worden vanwege de volgende LDAP fout:"
 " %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
@@ -3532,7 +3775,7 @@ msgstr ""
 "Vervallengebruikersinformatie kan niet verwerkt worden vanwege de volgende "
 "LDAP fout: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
@@ -3541,24 +3784,24 @@ msgstr ""
 "Vervallengebruikersinformatie kan niet verwerkt worden vanwege de volgende "
 "fout: %s"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr "Paswoorden"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr "Statistieken van het paswoord"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr "Paswoord statistieken"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
@@ -3567,120 +3810,88 @@ msgstr ""
 "Paswoordstatistieken kunnen niet verwerkt worden vanwege de volgende LDAP "
 "fout: %s"
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Dashboard"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr "Statistieken en diverse informatie"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "Rapportering"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr "Zie dashboard"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Statistieken"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-"Statistieken voor type \"%s\" kunnen niet verwerkt worden vanwege de "
-"volgende fout: %s"
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "Id"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "Subscription type"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Startdatum"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "Einddatum"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Importeren"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3688,53 +3899,202 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Plan"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr "Bewerk gebruikers groepen en rollen"
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
-msgstr "Groep lidmaatschap"
+msgid "Group memberships"
+msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
 msgstr "Rollen lidmaatschap"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Paswoord methode"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Paswoord te gebruiken hash methode"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3742,157 +4102,206 @@ msgstr "Paswoord te gebruiken hash methode"
 msgid "Password"
 msgstr "Paswoord"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Paswoord (leeg laten als je het niet wil veranderen)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Paswoord opnieuw"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Zelfde paswoord als voordien, om fouten te vermijden"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Gebruiker"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Gebruikersaccount informatie"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Gebruikersaccount"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr "Gebruiker vergrendelingstatus"
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Persoonlijke informatie"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Achternaam"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Achternaam van deze gebruiker"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Voornaam"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Voornaam van deze gebruiker"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Korte beschrijving van de gebruiker"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Afbeelding"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "De avatar van deze gebruiker"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr "Organisatie contact informatie"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Zakelijk postadres"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Kamernr."
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Kamernummer"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Zakelijk telefoonnummer"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "GSM"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Zakelijk mobielnummer"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Bieper"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "Zakelijk biepernummer"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Zakelijk faxnummer"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Homepage"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "Persoonlijke homepagina"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "Account informatie"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr "Login van deze gebruiker"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Gewenste taal"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Paswoord van de gebruiker"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Persoonlijke contactinformatie"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Getoonde naam"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 "Naam zoals die bij deze gebruiker moet verschijnen. Gebruikt door Exchange. "
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr "Thuisadres"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Postadres thuis"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Telefoon privé"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Prive nummer"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Organisatie informatie"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Titel"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
@@ -3900,79 +4309,79 @@ msgstr ""
 "Titel van een persoon in zijn organisatiecontext. Elke titel is één waarde "
 "van dit multi-waardeattribuut."
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Afdelingsnr."
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Departement nummer"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Personeelsnr."
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Werknemersnummer"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Werknemersfunctie"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr "Straat"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr "Straatdeel van het adres"
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr "Postkantoorbox"
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Postcode"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
-msgstr "Ppolicy \"%s\" kon niet gevonden worden in de LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
+msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr "Het is niet toegelaten je eigen paswoord te veranderen"
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 "Je moet %d seconden wachten voor je paswoord opnieuw kan aangepast worden"
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "Paswoord staat in historie van oude paswoorden"
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr "Paswoord is niet veranderd t.o.v. de bestaande waarde"
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "U moet uw huidige wachtwoord opgeven om door te kunnen gaan."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
@@ -3980,41 +4389,41 @@ msgstr ""
 "Het paswoord dat je ingebracht hebt als \"Nieuw paswoord\" en \"Herhaald "
 "nieuw paswoord\" komen niet overeen"
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nieuw paswoord"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Het huidige paswoord en het nieuwe paswoord lijken te veel op elkaar."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr "Het paswoord ingevoerd als nieuw is te kort."
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "Het paswoord bevat mogelijke probleemgevende Unicode karakters!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referenties"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Welkom %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Voltooid"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Volgende"
 
@@ -4088,10 +4497,6 @@ msgstr "Beheerderspaswoord"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr "Paswoord voor het adminaccount te gebruiken voor binding naar de LDAP"
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Status"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Huidige status"
@@ -4117,39 +4522,39 @@ msgstr ""
 "Deze dialoog zorgt voor de basis configuratie van de LDAP connectiviteit "
 "voor FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonieme bind naar server '%s' is mislukt! "
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Bind als gebruiker '%s' is mislukt!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Opnieuw proberen"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Anonieme bind naar server '%s' is succesvol."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Vernieuwen"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Specifieer a.u.b. een gebruikersnaam en paswoord!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Bind als gebruiker '%s' naar server '%s' is succesvol!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
@@ -4158,7 +4563,7 @@ msgstr ""
 "%s\n"
 "Schema \"%s\": %s"
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "PHP module en extensie verificaties"
 
@@ -4174,32 +4579,32 @@ msgstr "Installatie verificatie"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Standaard verificatie voor PHP compatibiliteit en extensies"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "PHP versie word geverifiëerd"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP moet versie %s zijn of meer"
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Upgrade a.u.b. naar de ondersteunde versie."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory heeft deze module nodige om te kunnen communiceren met de "
 "LDAP server."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory heeft deze module nodig voor een internationale inferface."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4207,28 +4612,14 @@ msgstr ""
 "FusionDirectory heeft deze module nodig om te kunnen communiceren met "
 "verschillende types van servers en protocollen."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 "FusionDirectory heeft deze module nodig om variabelen te coderen voor "
 "javascript gebruik"
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
@@ -4236,60 +4627,52 @@ msgstr ""
 "FusionDirectory heeft deze module nodig om een variabele te filteren met een"
 " specifieke filter."
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory heeft deze module nodig voor samba integratie."
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory heeft of de 'mhash' of de 'sha1' module nodig om gebruik te "
-"maken van SSHA encryptie."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory heeft deze module nodig om met de IMAP server te kunnen "
 "communiceren."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 "FusionDirectory heeft deze module nodig om unicode strings te kunnen "
 "behandelen."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 "FusionDirectory heeft deze extensie nodig om afbeeldingen te kunnen "
 "bewerken."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "compressie module"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 "FusionDirectory heeft deze extensie nodig om snapshots te kunnen behandelen."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP gebruikt deze waarde voor de vuilbak verzamelaar en om oude sessies te "
 "verwijderen."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4297,7 +4680,7 @@ msgstr ""
 "Deze waarde naar 1 dag plaatsen kan het verliezen van de sessies en "
 "cookiesdoor timeout voorkomen."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4305,12 +4688,12 @@ msgstr ""
 "Zoek voor 'session.gc_maxlifetime' in je php.ini en plaats het naar 86400 of"
 " hoger."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Uit"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4318,12 +4701,12 @@ msgstr ""
 "Om FusionDirectory zonder problemen te kunnen gebruiken, de moet je de "
 "session.auto_start optie in je php.ini naar 'Off' wijzigen."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Zoek naar 'session.auto_start' in je php.ini en zet de waarde naar 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4332,13 +4715,13 @@ msgstr ""
 "limiet plaatsen kan errors veroorzaken die niet hergeproduceerd kunnen "
 "worden! Vergroot deze waarde voor grotere installaties."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Zoek voor 'memory_limit' in je php.ini en plaats het naar '128M' of hoger."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4346,22 +4729,22 @@ msgstr ""
 "Deze optie beinvloed de PHP output handling. Zet deze optie uit, om "
 "performantie te verhogen."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Zoek naar 'implicit_flush' in je php.ini and zet de waarde 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "De uitvoertijd zou minstens 30 seconden moeten zijn."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Zoek naar 'max_execution_time' in je php.ini en zet het naar '30' of hoger."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4370,27 +4753,27 @@ msgstr ""
 "plaatsen. PHP zal geen informatie over de server die je draait verzenden als"
 " je dit doet."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Zoek naar 'expose_php' in je php.ini en zet het naar 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migratie"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "LDAP inspectie"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Analyseer je huidige LDAP voor FusionDirectory compatibiliteit"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr "Geef alle rechten aan gebruikers in de gegeven familie"
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
@@ -4398,83 +4781,85 @@ msgstr ""
 "Toestaan dat gebruikers hun eigen informatie bewerken (enkel hoofdtab en "
 "posix gebruik alleen op basis)"
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 "Toestaan dat gebruikers hun eigen paswoord bewerken (gebruik enkel op basis)"
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Inspectie van de object classes in root object"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Controle op LDAPdatabankrechten"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Controle op niet-zichtbare gebruikers"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Controle op super-administrator"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr "Controle op standaard ACL rollen en groepen"
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Controle op gebruikers buiten de personenstructuur"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Controle op groepen buiten de groepsstructuur"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Controle op niet-zichtbare afdelingen"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Controle op dubbele UID nummers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
-msgstr "Controle op dubbele GID nummers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Verificatie voor duplicate GID nummers"
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "LDAP query mislukt"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr "Mogelijk ontbreekt het \"root object\"."
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Mislukt"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Ontbrekende FusionDirectory object class '%s'!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Kijk je installatie na a.u.b.."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4483,128 +4868,175 @@ msgstr ""
 "Kan het structurele object type van je root object niet gebruiken. Probeer "
 "de object class '%s' manueel toe te voegen."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 "De vermelde gebruiker \"%s\" heeft geen volledige toegang tot je LDAP "
 "database."
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 "De vermelde gebruiker \"%s\" heeft geen volledige toegang tot je ldap "
 "database."
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"%s gebruiker(s) gevonden die niet zichtbaar zijn in FusionDirectory of die "
-"incompleet zijn."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr "Gebruikersmigratie"
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Migratiefout"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
-msgstr "Kan ingave \"%s\" niet migreren:"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Groepen"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Rollen"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "Er is geen FusionDirectory administrator account in je LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr "Geeft alle rechten op alle objecten"
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr "Standaard ACL rollen zijn niet ingevoegd"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr "Sommige standaard ACL rollen mankeren"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr "Standaard ACL rollen zijn toegevoegd"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
-msgstr "Kan de ACL rol \"%s\" niet toevoegen:"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
-msgstr "Gebruiker(s) %s gevonden buiten de configuratieboom \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Verplaats gebruikers in deze geconfigureerde user tree"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr "Kan ingaves niet naar de aangevraagde afdeling verplaatsen"
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
-msgstr "Ingave zal verplaatst worden van"
-
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "naar"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "De volgende referenties zullen upgedate worden"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Vond %s groepen buiten de geconfigureerde tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr "Verplaats groep naar geconfigureerde groepsboom"
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Vond %s departement(en) die niet zichtbaar zullen zijn in FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
-msgstr "Afdelingmigratie"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
-msgstr "Dubbele waardes %s gevonden voor attribuut \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr "Afdelingmigratie"
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
-msgstr "Dubbele waardes %s gevonden voor attribuut \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
+msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
 msgid "Finish"
@@ -4618,7 +5050,7 @@ msgstr "Voltooid - schrijf configuratie bestand"
 msgid "Write configuration file"
 msgstr "Schrijf configuratiebestand"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4626,20 +5058,17 @@ msgstr ""
 "Je configuratie bestand is momenteel wereldleesbaar. Update a.u.b. de "
 "bestandsrechten!"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "De configuratie is momenteel niet leesbaar of bestaat niet."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Na het downloaden en plaatsen van het bestand onder %s, verifieer a.u.b. dat"
-" de gebruiker die de webserver draait de mogelijkheid heeft om %s te lezen, "
-"terwijl andere gebruikers dit niet kunnen."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4659,125 +5088,27 @@ msgstr ""
 "\"Automatisch\" kiezen zal de taal gevraagd door de browser gebruikt worden."
 " Deze instelling kan overschreven worden per gebruiker."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"Directory '%s' die opgegeven is als compileer directory is niet "
-"toegankelijk!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr "FusionDirectory configuratie %s/%s is niet leesbaar. Geannuleerd."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr "Waarschuwing: <a href=\"%s\">Sessie is niet geëncrypteerd!</a>"
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "E-mail adres"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr "Kan geen account vinden met login \"%s\""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr "Er zijn meerdere accounts gevonden met login \"%s\""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr "Er is geen account dat e-mail gebruikt \"%s\""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr "Er zijn verscheidene accounts die e-mail gebruiken \"%s\" "
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-"De gebruiker die e-mail \"%s\" gebruikt is vergrendeld, a.u.b. contacteer je"
-" systeembeheerder."
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr "Contacteer je systeembeheerder, er was een probleem met de mailserver"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr "Deze token is ongeldig"
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-"Er was een probleem met de mail server, de bevestigingse-mail werd niet "
-"verstuurd"
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "PHP configuratie"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Fatale fout: Registreer globals in aan. FusionDirectory zal het inloggen "
-"weigeren als dit niet opgelost wordt door een systeembeheerder."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Paswoord wijzigen"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr "Je paswoord gaat spoedig vervallen, gelieve je paswoord te wijzigen!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr "Je paswoord is vervallen, a.u.b. stel er een nieuw in."
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Geheugen bijna opgebruikt!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Gebruiker ACL verificatie is niet actief"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Plugin"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-"Fatale fout: Kan plugin definities niet vinden voor plugin '%s' ('%s' is "
-"geen bestand)!"
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Configuratie Error"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4785,109 +5116,26 @@ msgstr ""
 "Fatale fout: niet alle POST variabelen zijn verplaatst naar PHP - Informeer "
 "a.u.b. je systeembeheerder!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Inloggen"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-"Waarschuwing: De sessielevensduur geconfigureerd in je fusiondirectory.conf "
-"zal overschreven worden door php.ini instellingen."
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
-"FusionDirectoryconfiguratie %s/%s is niet leesbaar. a.u.b. voer "
-"fusiondirectory-setup --check-config uit om dit te herstellen."
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Smarty error"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr "Directory \"%s\" aangeduid als compileer directory is niet toegankelijk!"
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Je FusionDirectory sessie is vervallen!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr "Ongeldige plugin parameter \"%s\"!"
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr "Geen sessie gevonden!"
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr "LDAP schemacontrole gerapporteerde fouten:"
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr "LDAP schemafout"
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Geef a.u.b. een geldige gebruikersnaam op!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Geef a.u.b. uw paswoord op!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Controleer a.u.b. de gebruikersnaam/paswoord combinatie."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Accound geblokkeerd. Contacteer a.u.b. je systeembeheerder!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr "Geen waarde gevonden in HTTP header \"%s\""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr "Header gebruiker \"%s\" kan niet gevonden worden in de LDAP"
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr "Login met gebruiker \"%s\" geactiveerde fout: %s"
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr "CAS gebruiker \"%s\" kon niet gevonden worden in de LDAP"
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Cookies zijn uitgeschakeld in uw browser. Schakel cookies a.u.b. in en "
-"herlaad deze pagina voordat u inlogt!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filter"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4908,25 +5156,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr "Druk op 'Verwijderen' om door te gaan of 'Annuleren' om af te breken"
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Toon sjablonen"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Toon functionerende gebruikers"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Toon POSIX gebruikers"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Toon Mail gebruikers"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Toon/verberg geavanceerde instellingen"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Toon Samba gebruikers"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Volledig object"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4935,8 +5171,8 @@ msgstr[0] "Er is %1 vervallen account"
 msgstr[1] "Er zijn %1 vervallen accounts"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
-msgstr "Er zijn geen vervallen accounts"
+msgid "There are no expired accounts"
+msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
@@ -4985,10 +5221,10 @@ msgstr[0] "Er is %1 gebruiker:"
 msgstr[1] "Er zijn %1 gebruikers:"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
-msgstr[0] "%2 van hen gebruikt %1 methode"
-msgstr[1] "%2 van hen gebruiken %1 methode"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
+msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
 msgid "One of them is locked"
@@ -4997,18 +5233,18 @@ msgstr[0] "%1 van hen is vergrendeld"
 msgstr[1] "%1 van hen zijn vergrendeld"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
-msgstr "Geen van hen zijn geblokkeerd"
+msgid "None of them are locked"
+msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
 msgstr "Er zijn geen gebruikers"
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
-msgstr[0] "%2 van hen heeft een %1 account"
-msgstr[1] "%2 van hen hebben een %1 account"
+msgstr[0] ""
+msgstr[1] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
@@ -5055,10 +5291,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Voeg benodigde objectklassen naar de LDAP basis"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Huidige"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Na migratie"
 
@@ -5080,13 +5318,10 @@ msgstr "FusionDirectory zal werken zonder dit op te lossen."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Dit blijkt de eerste keer te zijn dat je FusionDirectory start - we vonden "
-"op dit moment geen configuratie. Deze eenvoudige hulpmodule bestaat om je te"
-" helpen FusionDirectory op te zetten."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -5128,16 +5363,13 @@ msgstr "Om verder te gaan:"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
-"Veiligheidshalve moet je je authenticeren voor de de installatie door file "
-"'%1' te creëren, gebaseerd op de huidige sessieID op het lokaal filesysteem "
-"van de servers. Dit kan gebeuren door de volgende instructie uit te voeren:"
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Klik op de 'Next' knop wanneer je klaar bent."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -5212,7 +5444,12 @@ msgstr ""
 "inzendingen migreerd, gebruik de 'Toon veranderingen' knop om de LDIF te "
 "bekijken."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Selecteer alles"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Toon veranderingen"
 
@@ -5334,15 +5571,29 @@ msgid "I forgot my password"
 msgstr "Ik ben mijn wachtwoord vergeten"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Cookies zijn uitgeschakeld in uw browser. Schakel cookies a.u.b. in en "
+"herlaad deze pagina voordat u inlogt!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Klik hier om in te loggen"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr "Tweestapsauthenticatie"
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 "Waarschuwing: je staat op het punt de volgende objecten te verwijderen"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5357,6 +5608,59 @@ msgstr ""
 "Indien u zeker bent, druk dan 'Verwijderen' om door te gaan of 'Annuleren' "
 "om te af te breken."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Omlaag"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Acties"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filter"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr "Types"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Zoek in substructuur"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Filter toepassen"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr "Een nieuw object aanmaken aan de hand  van een sjabloon"
@@ -5366,33 +5670,26 @@ msgstr "Een nieuw object aanmaken aan de hand  van een sjabloon"
 msgid "Continue"
 msgstr "Doorgaan"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-"&copy; 2002-%1 <a href=http://www.fusiondirectory.org> The FusionDirectory "
-"team, %2</a>"
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Er is een vergrendelingsconflict gedetecteerd"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
+msgid "The following entries are locked:"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:11
 msgid "\"%1\" has been locked by \"%2\" since %3"
 msgstr "\"%1\" is vergrendeld door \"%2\" sinds %3"
 
-#: ihtml/themes/breezy/islocked.tpl.c:11
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
-"Als deze vergrendelingsdetectie fout is dan kan het zijn dat de andere "
-"persoon de webbrowser heeft gesloten tijdens de edit operatie. Je kan de "
-"lock overnemen door de \"%1\" knop te drukken."
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Alleen lezen"
 
@@ -5413,6 +5710,11 @@ msgstr ""
 "Dus - als je zeker bent - druk 'Doorgaan' om door te gaan of 'Annuleren' om "
 "af te breken."
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Indienen"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Hoofd"
@@ -5431,6 +5733,10 @@ msgid "Session expires in %d!"
 msgstr "Sessie vervalt in %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5442,22 +5748,24 @@ msgstr ""
 "databases te werken zonder lange time-outs is door zoekopdrachten in grootte"
 " te beperken en door filters te gebruiken voor de informatie die u zoekt."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Kies a.u.b. de manier waarop gereageerd moet worden voor deze sessie"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
-msgstr "Negeer deze fout en toon alle gegevens die de LDAP server teruggeeft"
+msgid "Please choose the way to react for this session:"
+msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"Negeer deze fout en toon alle gegevens die passen binnen de gedefinieerde "
-"groottelimiet en laat me daarvoor in de plaats filters gebruiken"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Stel in"
diff --git a/locale/pl/fusiondirectory.po b/locale/pl/fusiondirectory.po
index b1cfc7695a5a1afefc638fc8523b7760ad75b07c..085cbedfb4bac475ab8411cd18068d21f173545f 100644
--- a/locale/pl/fusiondirectory.po
+++ b/locale/pl/fusiondirectory.po
@@ -11,139 +11,548 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Polish (https://www.transifex.com/fusiondirectory/teams/12202/pl/)\n"
+"Language-Team: Polish (https://app.transifex.com/fusiondirectory/teams/12202/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pl\n"
 "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Błąd"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Typ"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Data"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Opis"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr "Odtwórz"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Obiekt"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Czas"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr ""
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr ""
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Szablon"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr ""
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Utwórz"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr ""
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Edytuj"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Wytnij"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Kopiuj"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Wklej"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr ""
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Usuń"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Utwórz spanshot"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Odtwórz snapshot"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Idź do głównego departamentu"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Główny"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Idź jeden departament wyżej"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Góra"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Katalog domowy"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Przeładuj listę"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Konfiguruj"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Błąd XML w pliku fusiondirectory.conf: %s w linii %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Błąd konfiguracji"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "błąd LDAP"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Wszystkie kategorie"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Moje konto "
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Strona"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "utworzone przez"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Plik"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Linia"
 
@@ -167,1151 +576,856 @@ msgstr "statyczna"
 msgid "method"
 msgstr "metoda"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Åšledzenie"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Typ"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argumenty"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Tworzenie tej strony spowodowało, że interpreter PHP zwrócił błędy!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/php_setup.inc:249
+msgid "Mail icon"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
-msgstr "Przełącz informacje"
-
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Góra"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "W dół"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr ""
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/php_setup.inc:249
+msgid "Send bug report"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Wybierz wszystko"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "utworzone przez"
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Idź do głównego departamentu"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Główny"
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Idź jeden departament wyżej"
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr "Przełącz informacje"
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Katalog domowy"
-
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Przeładuj listę"
-
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Akcje"
-
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Kopiuj"
-
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Wytnij"
-
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Wklej"
-
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Wytnij ten obiekt"
-
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Kopiuj ten obiekt"
-
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Odtwórz snapshot"
-
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Utwórz spanshot"
-
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Utwórz nowy snapshot z tego obiektu"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Nazwa Szablonu"
 
-#: include/class_timezone.inc:52
+#: include/class_logging.inc:79
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
-msgstr ""
-
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Szablon"
-
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Nazwa Szablonu"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Błąd wewnętrzny"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Zaloguj"
 
-#: include/class_logging.inc:81
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Logging failed: %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_logging.inc:103
-#, php-format
-msgid "Invalid option \"%s\" specified!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
-#, php-format
-msgid "Cannot change password, unknown user \"%s\""
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/login/class_LoginMethod.inc:56
+#, php-format
 msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Wyślij"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Proszę podać prawidłową nazwę użytkownika!"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Proszę podać prawidłowe hasło!"
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Zastosuj filtr"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "błąd LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_filter.inc:404
-#, php-format
-msgid "Searches in %s"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Limit wielkości %d elementów został przekroczony!"
+msgid "No value found in HTTP header \"%s\""
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
-"Ustaw nowy limit rozmiaru na %s i pokaż ten komunikat jeśli limit wciąż jest"
-" przekroczony"
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Konfiguruj"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "niepełne"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Adres email"
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Błąd krytyczny"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr "BŁĄD: Nie można połączyć się z serwerem LDAP. Odpowiedź serwera '%s'."
+msgid "There are several accounts using email \"%s\""
+msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Błąd autentykacji"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Ostrzeżenie"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "niepełne"
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Kontynuuj mimo wszystko"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Edytuj mimo wszystko"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Ostrzeżenie LDAP"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
+msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Wszystkie obiekty w tej kategorii"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Login"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Uprawnienie"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Anuluj wszystko"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Nie można wkleić"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Zaznacz aby wyszukiwać wewnątrz poddrzew"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "'%s' command (%s) is invalid!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:321
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr ""
-
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr ""
-
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Anuluj"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Zastosuj"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Zapisz"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Dodaj"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Dodaj %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Usuń"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Usuń %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Edytuj..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Edytuj %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Wróć"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Styczeń"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Luty"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Marzec"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Kwiecień"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Maj"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Czerwiec"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Lipiec"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Sierpień"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Wrzesień"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Październik"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Listopad"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Grudzień"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Niedziela"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Poniedziałek"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "PiÄ…tek"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Sobota"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Obiekt"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Błąd komunikacji z usługą infrastruktury!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Błąd komunikacji z usługą infrastruktury: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr ""
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Plik '%s' nie istnieje!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr ""
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr ""
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
-msgstr ""
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr ""
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr ""
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:838
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
+
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "Install and activate the %s Pear module."
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr ""
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "ImiÄ™"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Opis"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Uruchom usługę"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Zatrzymaj usługę"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Restartuj usługę"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Kontener"
 
@@ -1323,553 +1437,535 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Nieznane"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Data"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Wgraj"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "ÅšciÄ…gnij"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Usuń"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Edytuj"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "godzin"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "dni"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Grupa użytkownika"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Nieznane"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Nieznany wpis  '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Ostrzeżenie"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Utwórz"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
-
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Nieznany wpis  '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Ostrzeżenie wydajności"
-
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr ""
+
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "podczas działania na '%s' używając serwera LDAP '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "podczas połączenia z serwerem LDAP '%s'"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Czas"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr "Odtwórz"
-
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Lista departamentów"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Departament"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Edytuj mimo wszystko"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Domena"
@@ -1878,127 +1974,142 @@ msgstr "Domena"
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organizacja"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Departament"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Departamenty"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "departament"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Właściwości"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Kategoria"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Lokalizacja"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Stan"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Kraj"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adres"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telefon"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Numer telefonu"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "ImiÄ™"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2007,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Pełniona funkcja"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Status"
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Pokaż podstawowe grupy"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Pokaż grupy samba"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Grupa obiektu"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Grupa"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Właściciel"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Dodaj członka"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Zaufanie systemowe"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Tryb zaufania"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "wyłączone"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "pełen dostęp"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "zezwól na dostęp do tych hostów"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Lista grup"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Członkowie"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Pełniona funkcja"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2283,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Numer telefonu"
 
@@ -2300,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Tryb"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Członkowie"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Lista użytkowników"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Nazwisko"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "ImiÄ™"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Użytkownik"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Edytuj użytkownika"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Użytkownicy"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Zarządzaj użytkownikami"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Blokowanie konta"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Odblokuj konto"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Zablokuj konto"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Zawiera ustawienia dla tych obiektów: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Brak ustawień ACL w tej kategorii"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Lista dostępnych kategorii ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Wszystkie obiekty w obecnym poddrzewie"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "czytanie"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "zapisywanie"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Utwórz obiekty"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "PrzenieÅ› obiekty"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Usuń obiekty"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Grupy obiektów"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2692,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2800,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2833,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Konfiguracja"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Język"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Strefa czasowa"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Minimalna długość hasła"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Port"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Różne"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Zaczepy"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatycznie"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatycznie"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Login"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Email"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Import"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3533,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3570,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3587,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr "Hasło"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Użytkownik"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Informacje osobiste"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Nazwisko"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "ImiÄ™"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Numer pokoju"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Numer pokoju"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Komórka"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Pager"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Strona domowa"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Preferowany język"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Wyświetl nazwę"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Adres domowy"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Telefon prywatny"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Numer telefonu domowego"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Informacje organizacyjne"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Tytuł"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Numer departamentu"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Numer departamentu"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Numer pracownika"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Numer pracownika"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Typ pracownika"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Kod pocztowy"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Proszę podać obecne hasło aby kontynuować."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nowe hasło"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Hasło podane jako nowe jest zbyt podobne do obecnego."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Zależności"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Witaj %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Następne"
 
@@ -3925,10 +4353,6 @@ msgstr "Hasło Administratora"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Status"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Obecny status"
@@ -3951,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Ponawia"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Odśwież"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4006,387 +4430,419 @@ msgstr "Sprawdzenie instalacji"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Sprawdzam wersjÄ™ PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Proszę zaktualizować do wspieranej wersji."
 
-#: setup/class_setupStepChecks.inc:76
-msgid "FusionDirectory requires this module to talk with your LDAP server."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:84
-msgid ""
-"FusionDirectory requires this module for an internationalized interface."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
+#: setup/class_setupStepChecks.inc:69
+msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:77
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
+"FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+#: setup/class_setupStepChecks.inc:85
+msgid ""
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "moduł kompresji"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Wyłączone"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Niepowodzenie"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Błąd migracji"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Grupy"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Przenieś użytkowników do skonfigurowanego drzewa"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "do"
-
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1206
+#, php-format
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4401,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr "Zapisz plik konfiguracyjny"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4434,219 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr "Katalog '%s' podany jako katalog kompilacji jest niedostępny!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Adres email"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Konfiguracja PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Zmiana hasła"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Dodatek"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Błąd konfiguracji"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Zaloguj"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Błąd Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Proszę podać prawidłową nazwę użytkownika!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Proszę podać prawidłowe hasło!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Proszę sprawdzić kombinację login/hasło."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Twoja przeglądarka ma wyłączone cookies. Proszę włączyć cookies i "
-"przeładować stronę przed logowaniem!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtr"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4663,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Pokaż szablony"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4692,7 +4969,7 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4750,8 +5027,8 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4766,7 +5043,7 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4774,7 +5051,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4822,10 +5099,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Obecne"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4847,7 +5126,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4891,12 +5170,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4956,7 +5235,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Wybierz wszystko"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5065,14 +5349,28 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Twoja przeglądarka ma wyłączone cookies. Proszę włączyć cookies i "
+"przeładować stronę przed logowaniem!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Kliknij tutaj aby się zalogować"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5085,6 +5383,59 @@ msgstr ""
 "Jeśli jesteś pewien - naciśnij 'Usuń' aby kontynuować lub 'Anuluj' aby "
 "anulować."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "W dół"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Akcje"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtr"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Zastosuj filtr"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5094,28 +5445,26 @@ msgstr ""
 msgid "Continue"
 msgstr "Kontynuuj"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Wykryto konflikt blokady"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Tylko do odczytu"
 
@@ -5132,6 +5481,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Wyślij"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Główne"
@@ -5150,6 +5504,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5161,22 +5519,24 @@ msgstr ""
 "bez opóźnień jest ograniczanie wyszukiwań do mniejszej ilości wyników oraz "
 "użycie filtrów dla otrzymania poszukiwanych elementów."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Proszę wybrać sposób reakcji dla tej sesji"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
-msgstr "Ignoruj ten błąd i pokaż wszystkie elementy które zwraca serwer LDAP"
+msgid "Please choose the way to react for this session:"
+msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"ignoruj ten błąd i pokaż wszystkie elementy które zmieszczą się w "
-"zdefiniowanych limicie rozmiaru i pozwól mi użyć filtrów"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Ustaw"
diff --git a/locale/pt/fusiondirectory.po b/locale/pt/fusiondirectory.po
index edca28e501fafb340d7ff4b937fb0c68686da8ee..4233329fef9284592213701e9ccda785f6ecc4f8 100644
--- a/locale/pt/fusiondirectory.po
+++ b/locale/pt/fusiondirectory.po
@@ -4,2269 +4,2347 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
-"Language-Team: Portuguese (https://www.transifex.com/fusiondirectory/teams/12202/pt/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Portuguese (https://app.transifex.com/fusiondirectory/teams/12202/pt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt\n"
 "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Erro"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
 msgstr ""
 
-#: include/class_config.inc:151
-#, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
-msgstr "Erro de XML no fusiondirectory.conf: %s na linha %d"
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Erro de configuração"
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
 
-#: include/class_config.inc:283
-#, php-format
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tipo"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Erro de LDAP"
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Rótulo"
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
 msgstr ""
-"Não foi possível realizar bind para o LDAP. Por favor, contacte o "
-"administrador do sistema."
 
-#: include/class_config.inc:354
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/actions/class_Action.inc:166
 #, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
-msgstr "Todas as categorias"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
-msgstr "Minha conta"
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Data"
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Descrição"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objeto"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tipo"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Data e hora"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Para cima"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Para baixo"
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Por favor, selecione as entradas desejadas"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr ""
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Modelo"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr ""
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Criar"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr ""
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Editar"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Recortar"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copiar"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Colar"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Aplicar modelo"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Remover"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Criar snapshot"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Restaurar snapshot"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Você não tem permissões para criar um snapshot para %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Você não tem permissões para restaurar um snapshot para %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr "Ir para departamento raiz"
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr "Raiz"
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr "Subir um departamento"
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Para cima"
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr "Origem"
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr "Recarregar lista"
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Ações"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Configurar"
+
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr "Erro de XML no fusiondirectory.conf: %s na linha %d"
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Colar"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
+msgstr ""
+"Não foi possível realizar bind para o LDAP. Por favor, contacte o "
+"administrador do sistema."
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:994
+msgid "All categories"
+msgstr "Todas as categorias"
+
+#: include/class_config.inc:1158
+msgid "My account"
+msgstr "Minha conta"
+
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:159
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr "PDF"
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr "Arquivo"
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/php_setup.inc:69
+msgid "PHP error"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Modelo"
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr ""
 
 #: include/class_template.inc:44
 msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr "Nome modelo"
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Erro interno"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
-msgstr ""
+msgstr "Registro de dados falhou: %s"
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
-msgstr ""
+msgstr "objectType especificado está vazio ou inválido!"
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Submeter"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Aplicar filtro"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Procurar em subárvores"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Entrar"
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Configurar"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Por favor, especifique um nome de usuário válido!"
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Por favor, especifique sua senha!"
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Conta bloqueada. Entre em contato com o administrador do sistema!"
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Erro de LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Endereço de email"
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Recuperação de senha"
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
+msgstr ""
+
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "Abortado. Configuração %s/%s do FusionDirectory não pôde ser lida."
+
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Atenção"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Editar mesmo assim"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
-msgstr ""
-
-#: include/functions.inc:1961
-msgid ""
-"Your schema is configured to support mixed groups, but this plugin is not "
-"present."
-msgstr ""
-
-#: include/functions.inc:1962
-msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
-msgstr ""
-
-#: include/functions.inc:2311
-#, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
-msgstr ""
-
-#: include/class_pluglist.inc:196
-msgid "All objects in this category"
-msgstr "Todos os objetos nessa categoria"
-
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Login"
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:266
-msgid "Cancel all"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:332
-msgid "Cannot paste"
-msgstr "Impossível colar"
-
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Selecione para listar objetos do tipo '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Selecione para listar objetos contendo '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Selecione para listar objetos que possuem '%s' habilitado"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Selecione para pesquisar dentro das sub-árvores"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Esse objeto será apagado!"
+msgstr ""
 
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Esse objeto '%s' será apagado!"
+#: include/functions.inc:1242
+msgid ""
+"Your schema is configured to support mixed groups, but this plugin is not "
+"present."
+msgstr ""
 
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Esse objeto será apagado: %s"
+#: include/functions.inc:1243
+msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
+msgstr ""
 
-#: include/class_msgPool.inc:76
+#: include/functions.inc:1515
 #, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Esse objeto '%s' será apagado: %s"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
+msgstr ""
 
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Esse objeto será apagado:"
+#: include/class_pluglist.inc:209
+msgid "All objects in this category"
+msgstr "Todos os objetos nessa categoria"
 
-#: include/class_msgPool.inc:83
+#: include/class_pluglist.inc:580
 #, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Esse objeto '%s' será apagado:"
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Estes objetos serão apagados: %s"
+#: include/class_CopyPasteHandler.inc:267
+msgid "Cancel all"
+msgstr "Cancelar tudo"
 
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Estes objetos '%s' serão apagados: %s"
+#: include/class_CopyPasteHandler.inc:333
+msgid "Cannot paste"
+msgstr "Impossível colar"
 
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Você não tem permissão para apagar esse objeto!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Você não tem permissão para apagar o objeto:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Você não tem permissão para apagar estes objetos:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Você não tem permissão para criar esse objeto!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Você não tem permissão para criar o objeto:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Você não tem permissão para criar estes objetos:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Você não tem permissão para modificar esse objeto!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Você não tem permissão para ver esse objeto!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Você não tem permissão para ver o objeto:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Você não tem permissão para ver estes objetos:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Você não tem permissão para mover esse objeto!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Você não tem permissão para mover o objeto:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Você não tem permissão para mover estes objetos:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Informação da conexão"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Não foi possível conectar ao banco de dados  %s!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Não foi possível selecionar o banco de dados %s!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "Servidor %s não definido!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Não foi possível pesquisar no banco de dados %s!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "O campo '%s' contém uma palavra reservada!"
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "O comando especificado como %s, relativo ao plugin '%s', não existe!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "O comando '%s' é inválido!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "O comando '%s' para o plugin %s is invalid!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "O comando '%s' (%s) é inválido!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "O comando '%s' (%s) para o plugin %s é inválido!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Não foi possível executar o comando '%s'!"
-
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Não foi possível executar o comando '%s' para o plugin %s!"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Não foi possível executar o comando '%s' (%s) para o plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The required field '%s' is empty!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:436
-msgid "Example:"
+#: include/class_msgPool.inc:238
+#, php-format
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Aplicar"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Salvar"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Adicionar"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Deletar"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
+msgstr "Editar..."
 
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Voltar"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Janeiro"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Fevereiro"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Março"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Abril"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Maio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Junho"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Julho"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Agosto"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Setembro"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Outubro"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Novembro"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Dezembro"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Domingo"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Segunda"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Terça"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Quarta"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Quinta"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Sexta"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Sábado"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objeto"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr ""
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
+msgstr "Iniciar serviço"
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr ""
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
+msgstr "Parar serviço"
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
+msgstr "Reiniciar serviço"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
+msgstr "Base"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
+msgstr "Base de objeto"
+
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
 #, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nome"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Descrição"
-
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
-msgstr ""
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Nenhum"
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
-msgstr ""
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Desconhecido"
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
-msgstr "Base"
-
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
-msgstr ""
+msgstr "Horas"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
-msgstr ""
+msgstr "Minutos"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
-msgstr ""
+msgstr "Não é possível ler arquivo enviado: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
-msgstr ""
+msgstr "arquivo está vazio"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
-msgstr ""
+msgstr "arquivo não encontrado"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
-msgstr ""
+msgstr "arquivo não é legivel"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
-msgstr ""
+msgstr "Upload"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
+msgstr "Download"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
+msgid "An integer between %d and %d"
+msgstr "Um inteiro entre %d e %d"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Remover"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr "Um inteiro maior que %d"
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Editar"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr "Um inteiro menor que %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
-msgstr ""
+msgstr "Um float entre %f e %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
-msgstr ""
+msgstr "Um float maior que %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
-msgstr ""
+msgstr "Um float menor que %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
-msgstr ""
+msgstr "%s (required)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
-msgstr ""
+msgstr "A entrada %s não é existente"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
-msgstr ""
+msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
-msgstr ""
+msgstr "segundos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
-msgstr ""
+msgstr "dias"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Gerenciar listas de controle de acesso"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr ""
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Regras de ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Grupo do usuário"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Entrada desconhecida '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr ""
+msgid "All users"
+msgstr "Todos os usuários"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Atenção"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Criar"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
-
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Gerenciar listas de controle de acesso"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Regras de ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Entrada desconhecida '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Alerta de performance"
-
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 "A performance do LDAP está ruim: a última pesquisa levou cerca de %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "enquanto executava em '%s' usando LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "enquanto executava no LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Lista dos departamentos"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Departamento"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Editar mesmo assim"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
-msgstr ""
+msgstr "Domínio"
 
 #: plugins/admin/departments/class_domain.inc:51
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organização"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Departamento"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Departamentos"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
-msgstr ""
+msgstr "departamento"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Propriedades"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
-msgstr ""
+msgstr "Categoria"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
-msgstr ""
+msgstr "Gerente"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Localização"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Estado"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "País"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Endereço"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Fone"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
-msgstr ""
+msgstr "Número de telefone"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nome"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
-msgstr ""
+msgstr "Componente de domínio"
 
 #: plugins/admin/departments/class_dcObject.inc:51
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
-msgstr ""
+msgstr "Localização"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
-msgstr ""
+msgstr "Gerenciar departamentos"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
+msgstr "Usuários e grupos"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Tarefas"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Papel"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Estatus"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Ação do gatilho"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Programar ação"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
-msgstr ""
+msgstr "Grupo de objeto"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
-msgstr ""
+msgstr "Grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
-msgstr ""
+msgstr "Proprietário"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Sistema de confiança"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Modo de confiança"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "desabilitado"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "acesso completo"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "permitir acesso a estas máquinas"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Lista dos grupos"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Membros"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Papel"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,17 +2359,17 @@ msgstr "Informação"
 
 #: plugins/admin/groups/class_roleGeneric.inc:91
 msgid "Description of the role"
-msgstr ""
+msgstr "Descrição da atribuição"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
-msgstr ""
+msgstr "Número de telefone"
 
 #: plugins/admin/groups/class_roleGeneric.inc:99
 msgid "Fax number"
-msgstr ""
+msgstr "Número de Fax"
 
 #: plugins/admin/groups/class_roleGeneric.inc:105
 msgid "Role members"
@@ -2299,497 +2377,565 @@ msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:108
 msgid "Add users for the role"
+msgstr "Adicionar usuários para a atribuição"
+
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Atribuições de ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
-msgstr ""
+msgstr "Modo"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Membros"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Lista de usuários"
+#: plugins/admin/users/class_LockAction.inc:27
+msgid "Lock users"
+msgstr "Usuários bloqueados"
 
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Sobrenome"
+#: plugins/admin/users/class_LockAction.inc:27
+msgid "Unlock users"
+msgstr "Usuários desbloqueados"
 
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Nome fornecido"
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
+msgid "Users"
+msgstr "Usuários"
 
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Usuário"
+#: plugins/admin/users/class_userManagement.inc:41
+msgid "Manage users"
+msgstr "Gerenciar usuários"
 
-#: plugins/admin/users/user-list.xml:127
-msgid "Lock users"
+#: plugins/admin/users/class_userManagement.inc:42
+msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
-msgid "Unlock users"
+#: plugins/admin/users/class_userManagement.inc:116
+#, php-format
+msgid ""
+"Password method \"%s\" does not support locking. Account \"%s\" has not been"
+" locked!"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
+#: plugins/admin/users/class_userManagement.inc:140
+#, php-format
+msgid ""
+"Locking failed using password method \"%s\". Account \"%s\" has not been "
+"locked!"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
+#: plugins/admin/aclrole/class_aclRole.inc:38
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Contém configurações para estes objetos: %s"
+
+#: plugins/admin/aclrole/class_aclRole.inc:76
+msgid "Access control roles"
+msgstr "Cargos de controle de acesso"
+
+#: plugins/admin/aclrole/class_aclRole.inc:80
+msgid "ACL role"
+msgstr "Cargo ACL"
+
+#: plugins/admin/aclrole/class_aclRole.inc:98
+msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
+#: plugins/admin/aclrole/class_aclRole.inc:102
+msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
+#: plugins/admin/aclrole/class_aclRole.inc:108
+msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
+#: plugins/admin/aclrole/class_aclRole.inc:112
+msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
-msgid "Users"
-msgstr "Usuários"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+msgid "No ACL settings for this category"
+msgstr "Sem configurações de ACL para esta categoria"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr "ACL para estes objetos: %s"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit category ACL"
+msgstr "Editar categoria de ACL"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
+msgid "Reset category ACL"
+msgstr "Reiniciar categoria de ACL"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
+msgid "List of available ACL categories"
+msgstr "Lista de categorias de ACL"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
+msgid "All objects in current subtree"
+msgstr "Todos os objetos na subárvore atual"
 
-#: plugins/admin/users/class_userManagement.inc:43
-msgid "Manage users"
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
+#, php-format
+msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
-msgid "Manage user accounts and their properties"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:179
-#, php-format
-msgid ""
-"Password method \"%s\" does not support locking. Account \"%s\" has not been"
-" locked!"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
-#, php-format
-msgid ""
-"Locking failed using password method \"%s\". Account \"%s\" has not been "
-"locked!"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:38
-#, php-format
-msgid "Contains settings for these objects: %s"
-msgstr "Contém configurações para estes objetos: %s"
-
-#: plugins/admin/aclrole/class_aclRole.inc:78
-msgid "Access control roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
-msgid "ACL role"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
-msgid "A name for this role"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
-msgid "Short description of this role"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
-msgid "ACLs"
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
-msgid "ACLs which are part of this group"
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
-msgid "No ACL settings for this category"
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
-#, php-format
-msgid "ACL for these objects: %s"
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit category ACL"
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-msgid "Reset category ACL"
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
-msgid "List of available ACL categories"
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Habilitar snapshots"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
-msgid "All objects in current subtree"
-msgstr "Todos os objetos na subárvore atual"
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
-#, php-format
-msgid "Edit ACL for \"%s\""
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "leitura"
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Base de snapshots"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "escrita"
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Exibir/Ocultar configurações avançadas"
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Criar objetos"
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Mover objetos"
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Remover objetos"
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Conceder permissão para o dono"
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Objeto completo"
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Grupos de objeto"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
-msgstr ""
+msgstr "Plugins"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:29
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
-msgstr ""
+msgstr "Configurações para recuperar senha"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
-msgstr ""
+msgstr "Configurações de recuperação de senha"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
-msgstr ""
+msgstr "Ativar recuperador de senha"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
-msgstr ""
+msgstr "Endereço de e-mail do remetente"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
-msgstr ""
+msgstr "E-mail a partir dos e-mail que serão enviados"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
-msgstr ""
+msgstr "Validade do link (minutos)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
-msgstr ""
+msgstr "Número de minutos antes do link de recuperação expirar"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
-msgstr ""
+msgstr "graça para simbolos "
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
+"Apenas uma medida de segurança, você pode botar qualquer coisa lá, até "
+"caracteres aleatórios"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
-msgstr ""
+msgstr "Permitir o uso de endereços alternativos"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
-msgstr ""
+msgstr "Primeiro e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
-msgstr ""
+msgstr "Assunto"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
-msgstr ""
+msgstr "Assunto do primeiro e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
-msgstr ""
+msgstr "[FusionDirectory] Link de recuperação de senha"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
-msgstr ""
+msgstr "Corpo(primeiro %s é o login, segundo é o link)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
+"Corpo do primeiro e-mail, envie quando o usuário perguntar pela nova senha. "
+"Use %s para o login e o link de recuperação."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2801,31 +2947,33 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
-msgstr ""
+msgstr "Segundo e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
-msgstr ""
+msgstr "Assunto do segundo e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
-msgstr ""
+msgstr "[FusionDirectory] Senha recuperada com sucesso"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
-msgstr ""
+msgstr "Corpo (%s é o login)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
+"Corpo do segundo e-mail, enviado para confirmar senha alterada. Use %s para "
+"Login de usuário. "
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2833,700 +2981,796 @@ msgid ""
 "Your password has been changed.\n"
 "Your login is still %s."
 msgstr ""
+"Olá,\n"
+"\n"
+"Sua senha foi alterada.\n"
+"Seu login permanece %s."
+
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configuração"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
-msgstr ""
+msgstr "Idioma"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
+"Idioma da aplicação. Se for \"automático\" ou indisponível, será utilizado o"
+" padrão do navegador. Essa configuração pode ser substituída pelo usuário. "
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
-msgstr ""
+msgstr "Tema"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
-msgstr ""
+msgstr "Fuso horário"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Configurações de senha"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
-msgstr ""
+msgstr "Comprimento mínimo de senha"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
-msgstr ""
+msgstr "Chave de pacote"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
-msgstr ""
+msgstr "Caminho de certificado"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
+#: plugins/config/class_configInLdap.inc:217
+msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host"
+msgstr "Host"
+
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port"
+msgstr "Porta"
+
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
-msgid "Path to the CA certificate of the CAS server"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host of the CAS server"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port the CAS server is listening on"
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context"
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context to be used"
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
-msgid "Miscellaneous"
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:343
+msgid "Miscellaneous"
+msgstr "Diversos"
+
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
-msgid "Plugin menu blacklist"
+#: plugins/config/class_configInLdap.inc:380
+msgid "Plugin menu blacklist"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:405
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automático"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Estatísticas"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
-msgstr ""
+msgstr "Estatísticas a respeito de usuários"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
-msgstr ""
+msgstr "Contas expiradas"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Login"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
-msgstr ""
+msgstr "Data de expiração"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
-msgstr ""
+msgstr "Email"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
-msgstr ""
+msgstr "Tipo de inscrição"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
-msgstr ""
+msgstr "Importar"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3534,36 +3778,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Programação"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3571,16 +3942,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
-msgid "Password method"
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
-msgid "Password hash method to use"
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
+msgid "Password method"
+msgstr "Método de autentcação"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
+msgid "Password hash method to use"
+msgstr "Método de hash para usar na senha"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3588,288 +3981,337 @@ msgstr ""
 msgid "Password"
 msgstr "Senha"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
-msgstr ""
+msgstr "Senha (Mantenha vazio caso não deseje alterar)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
-msgstr ""
+msgstr "Senha novamente"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
+msgstr "Mesma senha como acima, para evitar erros"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Usuário"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Informação pessoal"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Último nome"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Primeiro nome"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Nº da sala"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
-msgstr ""
+msgstr "Número da sala"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Celular"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Pager"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Página pessoal"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
-msgstr ""
+msgstr "Idioma desejado"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
-msgstr ""
+msgstr "Nome de exibição"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Caixa postal residencial"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Telefone privativo"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
-msgstr ""
+msgstr "Telefone residencial"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Informação organizacional"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
-msgstr ""
+msgstr "Título"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Nº do departamento"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
-msgstr ""
+msgstr "Número do departamento"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Nº do empregado"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
-msgstr ""
+msgstr "Número do funcionário"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Tipo de empregado"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "CEP"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Você precisa especificar sua senha atual para continuar."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nova senha"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "A senha utilizada como nova e atual são muito similares."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
-msgstr ""
+msgstr "A senha contém caracteres Unicode  problemáticos."
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referências"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Bem vindo %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
-msgstr ""
+msgstr "Concluído"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
-msgstr ""
+msgstr "Próximo"
 
 #: setup/class_setupStepWelcome.inc:30 setup/class_setupStepWelcome.inc:50
 #: setup/class_setupStepFinish.inc:30
 msgid "Welcome"
-msgstr ""
+msgstr "Bem-vindo"
 
 #: setup/class_setupStepWelcome.inc:51
 msgid "Welcome to FusionDirectory setup wizard"
-msgstr ""
+msgstr "Bem vindo ao assistente de configuração do FusionDirectory"
 
 #: setup/class_setupStepWelcome.inc:52
 msgid "The welcome message"
-msgstr ""
+msgstr "A mensagem de \"bem vindo\""
 
 #: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
@@ -3877,7 +4319,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:39
 msgid "Location name"
-msgstr ""
+msgstr "Nome do local"
 
 #: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
@@ -3885,7 +4327,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
-msgstr ""
+msgstr "URI da conexão"
 
 #: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
@@ -3893,7 +4335,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
-msgstr ""
+msgstr "conexão TLS"
 
 #: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
@@ -3906,7 +4348,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
-msgstr ""
+msgstr "Autenticação"
 
 #: setup/class_setupStepLdap.inc:62
 msgid ""
@@ -3916,23 +4358,19 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
-msgstr ""
+msgstr "DN do administrador"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
-msgstr ""
+msgstr "Senha do administrador"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Estatus"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
-msgstr ""
+msgstr "Status atual"
 
 #: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
@@ -3940,60 +4378,62 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
-msgstr ""
+msgstr "Configuração de LDAP"
 
 #: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
-msgstr ""
+msgstr "Configuração da conexão de LDAP"
 
 #: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
+"Este diálogo executa a configuração básica da conectividade LDAP para o "
+"FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
-msgstr ""
+msgstr "Ligação anônima para o servidor '%s' falhou!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
-msgstr ""
+msgstr "Ligação como usuário '%s' falhou!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
-msgstr ""
+msgstr "Tente novamente"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
-msgstr ""
+msgstr "Ligação anônima para o servidor '%s' bem sucedida."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Recarregar"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
-msgstr ""
+msgstr "Por favor, especifique usuário e senha!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
-msgstr ""
+msgstr "Ligação como usuário '%s' para o servidor '%s' bem sucedida!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
-msgstr ""
+msgstr "Módulo de PHP e checagem de extensões"
 
 #: setup/class_setupStepChecks.inc:37
 msgid "PHP setup configuration"
@@ -4001,393 +4441,442 @@ msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
 msgid "Installation check"
-msgstr ""
+msgstr "Checagem de instalação"
 
 #: setup/class_setupStepChecks.inc:50
 msgid "Basic checks for PHP compatibility and extensions"
-msgstr ""
+msgstr "Verificando a compatibilidade básica com PHP e extensões"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
-msgstr ""
+msgstr "Checando versão do PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
-msgstr ""
+msgstr "A versão do PHP deverá ser %s ou superior."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
-msgstr ""
+msgstr "Por favor, atualize para uma versão suportada."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
+"FusionDirectory necessita deste módulo para conversar com seu servidor LDAP."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
+"FusionDirectory necessita deste módulo para uma interface "
+"internacionalizada."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
+"FusionDirectory necessita deste módulo para se comunicar com diferentes tipo"
+" de servidores e protocolos."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
+msgstr "FusionDirectory requer este módulo para integação com o samba."
 
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
+"O FusionDirectory necessita deste módulo para conversar com um servidor IMAP"
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
-msgstr ""
+msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
-msgstr ""
+msgstr "FusionDirectory requer esta extensão para lidar com strings unicode."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
-msgstr ""
+msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
-msgstr ""
+msgstr "FusionDirectory requer esta extensão para lidar com imagens."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
-msgstr ""
+msgstr "módulo de compressão"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
-msgstr ""
+msgstr "FusionDirectory requer esta extensão para lidar com snapshots."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
-msgstr ""
+msgstr "PHP usa este valor para deletar sessões antigas do garbage collector."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
+"Procurar por 'session.gc_maxlifetime' no seu php.ini e configurá-lo para "
+"86400 ou maior."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
-msgstr ""
+msgstr "Desativar"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
+"Pesquisar por 'session.auto_start' no seu php.ini e configurá-lo como "
+"'Desligado'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
+"Procurar por 'implicit_flush' no seu php.ini e configurá-lo como "
+"'Desligado'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
-msgstr ""
+msgstr "O tempo de Execução deve ser no mínimo 30 segundos."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
+"Pesquisa por 'max_execution_time' no seu php.ini e defina-o como '30' ou "
+"superior."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
+"Pesquisar por 'expose_php' no seu php.ini e defina-o como 'Desligado'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
-msgstr ""
+msgstr "Inspeção LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
+"Analisar seu LDAP atual para verificação de compatibilidade com o "
+"FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
-msgstr ""
+msgstr "Inspecionando classes de objeto em objeto root"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
-msgstr ""
+msgstr "Checando permissão para banco de dados LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
-msgstr ""
+msgstr "Checando por usuários invisíveis"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
-msgstr ""
+msgstr "Checando por super administrador"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
-msgstr ""
+msgstr "Checando por usuários fora da árvore de pessoas"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
-msgstr ""
+msgstr "Checando por grupos fora da árvore de grupos"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
-msgstr ""
+msgstr "Checando por departamentos invisíveis"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Checando por números de GID duplicados"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
-msgstr ""
+msgstr "Consulta em LDAP falhou"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Erro"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
+#, php-format
+msgid "The specified user \"%s\" does not have full access to your ldap database."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
-msgid "The specified user \"%s\" does not have full access to your ldap database."
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
-msgstr ""
+msgstr "Atribuições"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4402,31 +4891,31 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
-msgstr ""
+msgstr "Configuração de idioma"
 
 #: setup/class_setupStepLanguage.inc:61
 msgid "This step allows you to select your preferred language."
-msgstr ""
+msgstr "Esta etapa permite que você selecione seu idioma preferido."
 
 #: setup/class_setupStepLanguage.inc:62
 msgid ""
@@ -4435,219 +4924,54 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Senha alterada"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
-msgstr ""
+msgstr "Sua senha está prestes a expirar. Por favor, altere a senha!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
-msgstr ""
+msgstr "Memória virtual baixa!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
-msgstr ""
-
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
+msgstr "Checagem de Usuário de ACL desativada"
 
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
+"Erro faral: As variáveis POST não foram todas transferidas pelo PHP - por "
+"favor, informe ao administrador!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Entrar"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
-msgstr ""
+msgstr "Sua sessão foi encerrada!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Por favor, especifique um nome de usuário válido!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Por favor, especifique sua senha!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Por favor, verifique a combinação usuário / senha"
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Seu navegador está com suporte a cookies desabilitado. Por favor, habilite-o"
-" e recarregue essa página antes de entrar!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4664,25 +4988,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Exibir/Ocultar configurações avançadas"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Objeto completo"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4692,7 +5004,7 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4713,7 +5025,7 @@ msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:20
 msgid "Next expired accounts"
-msgstr ""
+msgstr "Próximas contas a expirar"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:2
 msgid "There is 1 group:"
@@ -4746,8 +5058,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4760,7 +5072,7 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4768,7 +5080,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4808,17 +5120,19 @@ msgstr "ID do usuário"
 
 #: setup/setup_migrate_adminAccount.tpl.c:17
 msgid "Password (again)"
-msgstr ""
+msgstr "Senha (novamente)"
 
 #: setup/setup_migrate_baseOC.tpl.c:2
 msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4832,15 +5146,15 @@ msgstr ""
 
 #: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
-msgstr ""
+msgstr "O FusionDirectory NÃO irá rodar sem a correção disto."
 
 #: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
-msgstr ""
+msgstr "O FusionDirectory irá rodar sem a correção disto."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4884,12 +5198,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4905,7 +5219,7 @@ msgstr ""
 
 #: setup/setup_finish.tpl.c:2
 msgid "Create your configuration file"
-msgstr ""
+msgstr "Crie seu arquivo de configuração"
 
 #: setup/setup_finish.tpl.c:5
 msgid "Run %1 to put the correct right on fusiondirectory.conf"
@@ -4913,11 +5227,11 @@ msgstr ""
 
 #: setup/setup_finish.tpl.c:8
 msgid "Download configuration"
-msgstr ""
+msgstr "Configuração de download"
 
 #: setup/setup_finish.tpl.c:11
 msgid "Status: "
-msgstr ""
+msgstr "Estado:"
 
 #: setup/setup_migrate_accounts.tpl.c:2
 msgid ""
@@ -4948,10 +5262,17 @@ msgid ""
 "If you want to know what will be done when migrating the selected entries, "
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
+"Caso você deseja saber o que será feito após migrar as entradas selecionada,"
+" use o botão 'Mostrar mudanças' para ver o LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Selecionar tudo"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
-msgstr ""
+msgstr "Mostrar mudanças"
 
 #: ihtml/themes/legacy/recovery.tpl.c:2 ihtml/themes/breezy/recovery.tpl.c:2
 msgid "Lost password"
@@ -4988,7 +5309,7 @@ msgstr "Nova senha repetida"
 
 #: ihtml/themes/legacy/recovery.tpl.c:41 ihtml/themes/breezy/recovery.tpl.c:41
 msgid "Password strength"
-msgstr ""
+msgstr "Grau de segurança da senha"
 
 #: ihtml/themes/legacy/recovery.tpl.c:44 ihtml/themes/legacy/recovery.tpl.c:47
 #: ihtml/themes/legacy/recovery.tpl.c:50 ihtml/themes/legacy/recovery.tpl.c:86
@@ -5046,31 +5367,51 @@ msgid ""
 "Password recovery is not activated. If you have lost your password, please "
 "contact your administrator"
 msgstr ""
+"A recuperação de senha não foi ativada. Se você perdeu a sua senha, por "
+"favor, entre em contato com o administrador."
 
 #: ihtml/themes/legacy/login.tpl.c:5 ihtml/themes/breezy/login.tpl.c:5
 msgid ""
 "Please use your username and your password to log into the site "
 "administration system."
 msgstr ""
+"Utilize seu nome de usuário e senha para fazer login no sistema de "
+"administração do site."
 
 #: ihtml/themes/legacy/login.tpl.c:26 ihtml/themes/breezy/login.tpl.c:26
 msgid "I forgot my password"
-msgstr ""
+msgstr "Esqueci a senha"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Seu navegador está com suporte a cookies desabilitado. Por favor, habilite-o"
+" e recarregue essa página antes de entrar!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Clique aqui para logar"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
 "FusionDirectory to get your data back."
 msgstr ""
+"Favor clicar duas vezes se você quer realmete executar esta ação. O "
+"FusionDirectory não poderá desfazê-la."
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:8
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
@@ -5078,6 +5419,59 @@ msgstr ""
 "Então, se você tem certeza, pressione 'Deletar' para continuar ou 'Cancelar'"
 " para abortar."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Para baixo"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Ações"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtro"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Procurar em subárvores"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Aplicar filtro"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5087,30 +5481,28 @@ msgstr ""
 msgid "Continue"
 msgstr "Continuar"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Conflito de travamento detectado"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
-msgstr ""
+msgstr "Somente leitura"
 
 #: ihtml/themes/breezy/restore-confirm.tpl.c:2
 msgid "Warning: you are about to restore the following snapshot"
@@ -5125,6 +5517,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Submeter"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Principal"
@@ -5143,27 +5540,40 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
 " long timeouts would be to limit your search to smaller values and use "
 "filters to get the entries you are looking for."
 msgstr ""
-
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
+"A opção de limite de tamanho faz com que as operações de LDAP fiquem mais "
+"rápidas e auxiliem o servidor à não sobrecarregar. A maneira mais fácil de "
+"lidar com banco de dados grandes sem longos timeouts, seria limitando sua "
+"pesquisa para valores menores e utilizando filtros para obter as entradas "
+"que você está procurando."
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Definir"
diff --git a/locale/pt_BR/fusiondirectory.po b/locale/pt_BR/fusiondirectory.po
index 0d039d7964637d1adbfe678c0d0752213fb781d1..eb01174f268e565ddeba1c19468e2c1402eb7b43 100644
--- a/locale/pt_BR/fusiondirectory.po
+++ b/locale/pt_BR/fusiondirectory.po
@@ -4,1316 +4,1430 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2021
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Portuguese (Brazil) (https://www.transifex.com/fusiondirectory/teams/12202/pt_BR/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Portuguese (Brazil) (https://app.transifex.com/fusiondirectory/teams/12202/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt_BR\n"
 "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Erro"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
 msgstr ""
 
-#: include/class_config.inc:151
-#, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Erro de configuração"
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
 
-#: include/class_config.inc:283
-#, php-format
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tipo"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Erro de LDAP"
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Rótulo"
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/actions/class_Action.inc:166
 #, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
-msgstr "Todas as categorias"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
-msgstr "Minha conta"
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Data"
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Descrição"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
-msgstr "PDF"
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
-msgstr "Arquivo"
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objeto"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tipo"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Data e hora"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Subir"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Descer"
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Selecionar tudo"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Por favor, selecione as entradas desejadas"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Modelo"
+
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Criar"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Editar"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Recortar"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copiar"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Colar"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Aplicar modelo"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Remover"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Criar snapshot"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Restaurar snapshot"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Você não tem permissões para criar um snapshot para %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Você não tem permissões para restaurar um snapshot para %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Ir para departamento raiz"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Raiz"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Subir um departamento"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Subir"
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr "Página inicial"
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
+msgstr "Recarregar lista"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Ações"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Copiar"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Configurar"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Recortar"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr "Erro de XML no fusiondirectory.conf: %s na linha %d"
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Colar"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
+"Não foi possível realizar bind para o LDAP. Por favor, contacte o "
+"administrador do sistema."
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Restaurar snapshots"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
+msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Restaurar snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
+msgstr "Todas as categorias"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Criar snapshot"
+#: include/class_config.inc:1158
+msgid "My account"
+msgstr "Minha conta"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Criar um novo snapshots deste objeto"
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:99
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Modelo"
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr "PDF"
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr "Arquivo"
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr ""
 
 #: include/class_template.inc:44
 msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
-msgstr ""
+msgstr "Nome modelo"
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Erro interno"
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr "Registro de dados falhou: %s"
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr "objectType especificado está vazio ou inválido!"
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Procurar em sub-árvores"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Acessar"
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Configurar"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Por favor, especifique um nome de usuário válido!"
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Por favor, especifique sua senha!"
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Conta bloqueada. Entre em contato com o administrador do sistema!"
+
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Erro de LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Erro fatal"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Endereço de email"
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Recuperação de senha"
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Erro de autenticação"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
+msgstr ""
+
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "Abortado. Configuração %s/%s do FusionDirectory não pôde ser lida."
+
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Aviso"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
-"Arquivo '%s' não pode ser deletado. Tente fusiondirectory-setup --check-"
-"directories para ajustas as permissões."
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Não foi possível localizar o arquivo '%s' - execute '%s' para solucionar o "
-"problema"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
-msgstr ""
+msgstr "Todos os objetos nessa categoria"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Login"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Permissão"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Cancelar tudo"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
-msgstr ""
-
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
+msgstr "Impossível colar"
 
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Esse objeto será apagado!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Esse objeto '%s' será apagado!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Esse objeto será apagado: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Esse objeto '%s' será apagado: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Esse objeto será apagado:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Esse objeto '%s' será apagado:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Esses objetos serão apagados: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Esses objetos '%s' serão apagados: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Você não possui permissões para apagar esse objeto!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Você não possui permissões para apagar o objeto:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Você não possui permissões para apagar esses objetos:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Você não possui permissões para criar esse objeto!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Você não possui permissões para criar o objeto:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Você não possui permissões para criar esses objetos:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Você não possui permissões para modificar esse objeto!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Você não possui permissões para ver esse objeto!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Você não possui permissões para ver o objeto:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Você não possui permissões para ver esses objetos:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Você não possui permissões para mover esse objeto!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Você não possui permissões para mover o objeto:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Você não possui permissões para mover esses objetos:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Informação de conexão"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Não é possível conectar-se ao banco de dados %s"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Não é possível selecionar o banco de dados %s!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "Não há servidor %s definido!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Não é possível consultar banco de dados %s!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "O campo '%s' contém uma palavra-chave reservada! "
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "Comando especificado como gancho %s para o plugin '%s\" não existe!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "comando '%s' é inválido!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "comando '%s' para o plugin %s é inválido!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "comando '%s' (%s) é inválido!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "comando '%s' (%s) para o plugin %s é inválido!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Impossível executar o comando '%s'!"
-
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Impossível executar o comando '%s' para o plugin %s!"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "impossível executar o comando '%s' (%s)!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Impossível executar o comando '%s' (%s) para o plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The required field '%s' is empty!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:436
-msgid "Example:"
+#: include/class_msgPool.inc:238
+#, php-format
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Aplicar"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Salvar"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Adicionar"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Deletar"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Editar..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Voltar"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
-msgstr ""
+msgstr "Janeiro"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "fevereiro"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "março"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "abril"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "maio"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "junho"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "julho"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "agosto"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "setembro"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "outubro"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "novembro"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "dezembro"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "domingo"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "segunda-feira"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "terça-feira"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "quarta-feira"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "quinta-feira"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "sexta-feira"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "sábado"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objeto"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr ""
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr ""
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr ""
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
-msgstr ""
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr ""
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr ""
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
-msgstr ""
-
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Por favor, selecione as entradas desejadas"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Nome"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Descrição"
+msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Iniciar serviço"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Parar serviço"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Reiniciar serviço"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Base"
 
@@ -1325,553 +1439,536 @@ msgstr "Base de objeto"
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Nenhum"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Horas"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Minutos"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Data"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Não é possível ler arquivo enviado: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "arquivo está vazio"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "arquivo não encontrado"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "arquivo não é legivel"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Upload"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Download"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Remover"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Editar"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Um inteiro entre %d e %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Um inteiro maior que %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Um inteiro menor que %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Um float entre %f e %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Um float maior que %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Um float menor que %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (required)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Valor inválido para %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Nenhum"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Já há uma entrada com o mesmo dn: %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "A entrada %s não é existente"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "segundos"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "dias"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Gerenciar Listas de Controle de Acesso (ACLs)"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr ""
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Papéis de ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Grupo de usuário"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Entrada desconhecida '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr ""
+msgid "All users"
+msgstr "Todos os usuários"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Mostrar %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Erro no filtro"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "O filtro está incompleto!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Aviso"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Erro de permissão"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Você não tem permissões para criar um snapshot para %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Você não tem permissões para restaurar um snapshot para %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "SEM RÓTULO"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Criar"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Gerenciar Listas de Controle de Acesso (ACLs)"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Papéis de ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Todos os usuários"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
+"A performance do LDAP está ruim: a última pesquisa levou cerca de %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
+#, php-format
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Data e hora"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Lista de departamentos"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Departamento"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Editar mesmo assim"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Domínio"
@@ -1880,127 +1977,142 @@ msgstr "Domínio"
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organização"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Departamento"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Departamentos"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "departamento"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Propriedades"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Categoria"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Gerente"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Localização"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Estado"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "País"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Endereço"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telefone"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Número de telefone"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Nome"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Componente de domínio"
@@ -2009,265 +2121,230 @@ msgstr "Componente de domínio"
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Localização"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Gerenciar departamentos"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Usuários e grupos"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
+msgstr "Tarefas"
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Atribuição"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Editar propriedades do posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Estado"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Ação do gatilho"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Programar ação"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Grupo de objeto"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Grupo"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Proprietário"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Sistema de confiança"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Modo de confiança"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "desabilitado"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "Acesso total"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "Permitir acesso a esses servidores"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Lista de grupos"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Ação do gatilho"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Membros"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Programar ação"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Atribuição"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2285,8 +2362,8 @@ msgid "Description of the role"
 msgstr "Descrição da atribuição"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Número de telefone"
 
@@ -2302,391 +2379,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr "Adicionar usuários para a atribuição"
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Atribuições de ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Modo"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Membros"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Atribuições de ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Lista de usuários"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Sobrenome"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Primeiro nome"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Usuário"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Usuários bloqueados"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Usuários desbloqueados"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Aplicar modelo"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Novo usuário para modelo"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Editar usuário"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Remover usuário"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Usuários"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Gerenciar usuários"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Bloqueando conta"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Desbloquear conta"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Bloquear conta"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
-msgstr ""
+msgstr "Contém configurações para estes objetos: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Cargos de controle de acesso"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "Cargo ACL"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Sem configurações de ACL para esta categoria"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL para estes objetos: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Editar categoria de ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Reiniciar categoria de ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Lista de categorias de ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Todos objetos na atual sub-árvore"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr ""
+
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Habilitar snapshots"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Base de snapshots"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Grupo de objetos"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -2694,48 +2833,50 @@ msgstr "Plugins"
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Recuperação de senha"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Configurações para recuperar senha"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Configurações de recuperação de senha"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Ativar recuperador de senha"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Endereço de e-mail do remetente"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "E-mail a partir dos e-mail que serão enviados"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Validade do link (minutos)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Número de minutos antes do link de recuperação expirar"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "graça para simbolos "
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2743,51 +2884,49 @@ msgstr ""
 "Apenas uma medida de segurança, você pode botar qualquer coisa lá, até "
 "caracteres aleatórios"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Permitir o uso de endereços alternativos"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Os usuário também serão capazes de entrar no endereço alternativo para "
-"recuperar sua senha"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Primeiro e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Assunto"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Assunto do primeiro e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Link de recuperação de senha"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Corpo(primeiro %s é o login, segundo é o link)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2796,7 +2935,7 @@ msgstr ""
 "Corpo do primeiro e-mail, envie quando o usuário perguntar pela nova senha. "
 "Use %s para o login e o link de recuperação."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2808,24 +2947,24 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Segundo e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Assunto do segundo e-mail"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Senha recuperada com sucesso"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Corpo (%s é o login)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2834,7 +2973,7 @@ msgstr ""
 "Corpo do segundo e-mail, enviado para confirmar senha alterada. Use %s para "
 "Login de usuário. "
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2847,29 +2986,84 @@ msgstr ""
 "Sua senha foi alterada.\n"
 "Seu login permanece %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Configuração"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Idioma"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2877,671 +3071,706 @@ msgstr ""
 "Idioma da aplicação. Se for \"automático\" ou indisponível, será utilizado o"
 " padrão do navegador. Essa configuração pode ser substituída pelo usuário. "
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Tema"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Fuso horário"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Habilitar snapshots"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Base de snapshots"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "A base onde os snapshots devem ser armazenados dentro do LDAP."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Configurações de senha"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Comprimento mínimo de senha"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
-msgid "Session lifetime"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:211
-msgid "Defines when a session will expire in seconds (0 to disable)."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
+#: plugins/config/class_configInLdap.inc:177
+msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:177
+msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr "Chave de pacote"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr "Caminho de certificado"
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Host"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Porta"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Diversos"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Ganchos"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automático"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automático"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Estatísticas"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Estatísticas a respeito de usuários"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Contas expiradas"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Login"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Data de expiração"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Email"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Estatísticas"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr "Tipo de inscrição"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Importar"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3549,36 +3778,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr "Programação"
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3586,16 +3942,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Método de autentcação"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Método de hash para usar na senha"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3603,273 +3981,322 @@ msgstr "Método de hash para usar na senha"
 msgid "Password"
 msgstr "Senha"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Senha (Mantenha vazio caso não deseje alterar)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Senha novamente"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Mesma senha como acima, para evitar erros"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Usuário"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
-msgstr ""
+msgstr "Informação pessoal"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Sobrenome"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Nome"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
-msgstr ""
+msgstr "Nº da sala"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Número da sala"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Celular"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Pager"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Página inicial"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Idioma desejado"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Nome de exibição"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Endereço residencial"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
-msgstr ""
+msgstr "Telefone privativo"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Telefone residencial"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
-msgstr ""
+msgstr "Informação organizacional"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Título"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
-msgstr ""
+msgstr "Nº do departamento"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Número do departamento"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
-msgstr ""
+msgstr "Nº do empregado"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Número do funcionário"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Tipo de funcionário"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Código postal"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Você precisa especificar sua atual senha para prosseguir."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nova senha"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "A nova senha é muito similar à senha atual."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "A senha contém caracteres Unicode  problemáticos."
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referências"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Bem-vindo %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Concluído"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Próximo"
 
@@ -3941,10 +4368,6 @@ msgstr "Senha do administrador"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Estado"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Status atual"
@@ -3969,46 +4392,46 @@ msgstr ""
 "Este diálogo executa a configuração básica da conectividade LDAP para o "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Ligação anônima para o servidor '%s' falhou!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Ligação como usuário '%s' falhou!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Tente novamente"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Ligação anônima para o servidor '%s' bem sucedida."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Atualizar"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Por favor, especifique usuário e senha!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Ligação como usuário '%s' para o servidor '%s' bem sucedida!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "Módulo de PHP e checagem de extensões"
 
@@ -4024,116 +4447,94 @@ msgstr "Checagem de instalação"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Verificando a compatibilidade básica com PHP e extensões"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Checando versão do PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "A versão do PHP deverá ser %s ou superior."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Por favor, atualize para uma versão suportada."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory necessita deste módulo para conversar com seu servidor LDAP."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory necessita deste módulo para uma interface "
 "internacionalizada."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
 "FusionDirectory necessita deste módulo para se comunicar com diferentes tipo"
-" de servidores e protocolos."
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
+" de servidores e protocolos."
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory requer este módulo para integação com o samba."
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory necessita tanto do módulo 'mhash' quanto do módulo 'sha1' "
-"para fazer uso da criptografia SSHA."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "O FusionDirectory necessita deste módulo para conversar com um servidor IMAP"
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr "FusionDirectory requer esta extensão para lidar com strings unicode."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory requer esta extensão para lidar com imagens."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "módulo de compressão"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory requer esta extensão para lidar com snapshots."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr "PHP usa este valor para deletar sessões antigas do garbage collector."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4141,51 +4542,51 @@ msgstr ""
 "Procurar por 'session.gc_maxlifetime' no seu php.ini e configurá-lo para "
 "86400 ou maior."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Desativar"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Pesquisar por 'session.auto_start' no seu php.ini e configurá-lo como "
 "'Desligado'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Procurar por 'implicit_flush' no seu php.ini e configurá-lo como "
 "'Desligado'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "O tempo de Execução deve ser no mínimo 30 segundos."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4193,237 +4594,289 @@ msgstr ""
 "Pesquisa por 'max_execution_time' no seu php.ini e defina-o como '30' ou "
 "superior."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Pesquisar por 'expose_php' no seu php.ini e defina-o como 'Desligado'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Inspeção LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analisar seu LDAP atual para verificação de compatibilidade com o "
 "FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Inspecionando classes de objeto em objeto root"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Checando permissão para banco de dados LDAP"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Checando por usuários invisíveis"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Checando por super administrador"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Checando por usuários fora da árvore de pessoas"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Checando por grupos fora da árvore de grupos"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Checando por departamentos invisíveis"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Checando por números de UID duplicados"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Checando por números de GID duplicados"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "Consulta em LDAP falhou"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Falhou"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Grupos"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Atribuições"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "Não existe uma conta de administrador do FusioDirectory no seu LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Encontrado %s grupos fora da árvore configurada '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4438,21 +4891,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4471,121 +4924,27 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"Diretório '%s' especificado como diretório de compilação não está acessível!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr "Abortado. Configuração %s/%s do FusionDirectory não pôde ser lida."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Endereço de email"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Entre em contato com o administrador, houve um problema com o servidor de "
-"e-mail."
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Configuração PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Erro fatal: O registro global do PHP, register_globals, está ativado. Não "
-"será possível realizar login enquanto o problema não for solucionado por um "
-"administrador."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Mudança de senha"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr "Sua senha está prestes a expirar. Por favor, altere a senha!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Memória virtual baixa!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Checagem de Usuário de ACL desativada"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Plugin"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Erro de Configuração"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4593,107 +4952,26 @@ msgstr ""
 "Erro faral: As variáveis POST não foram todas transferidas pelo PHP - por "
 "favor, informe ao administrador!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Acessar"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-"Arquivo de configuração %s/%s do FusionDirectory não está legível. Por "
-"favor, execute fusiondirectory-setup --check-config para corrigir isto."
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Erro Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Sua sessão foi encerrada!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Por favor, especifique um nome de usuário válido!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Por favor, especifique sua senha!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Por favor, verifique o usuário ou senha."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Conta bloqueada. Entre em contato com o administrador do sistema!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Cookies estão desabilitados. Por favor, habilite os cookies em seu navegador"
-" e atualize esta página antes de efetuar o login!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filtro"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4710,25 +4988,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Mostrar templates"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Exibir/Ocultar configurações avançadas"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Objeto completo"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4738,8 +5004,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
-msgstr "Não há contas expiradas"
+msgid "There are no expired accounts"
+msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
@@ -4792,8 +5058,8 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4806,15 +5072,15 @@ msgstr[1] ""
 msgstr[2] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
-msgstr "Nenhum deles está travado"
+msgid "None of them are locked"
+msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4861,10 +5127,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4886,7 +5154,7 @@ msgstr "O FusionDirectory irá rodar sem a correção disto."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4930,13 +5198,13 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Clique no botão 'Próximo' quando tiver terminado."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -4997,7 +5265,12 @@ msgstr ""
 "Caso você deseja saber o que será feito após migrar as entradas selecionada,"
 " use o botão 'Mostrar mudanças' para ver o LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Selecionar tudo"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Mostrar mudanças"
 
@@ -5110,14 +5383,28 @@ msgid "I forgot my password"
 msgstr "Esqueci a senha"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Cookies estão desabilitados. Por favor, habilite os cookies em seu navegador"
+" e atualize esta página antes de efetuar o login!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Clique aqui para fazer login"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5132,6 +5419,59 @@ msgstr ""
 "Se você tem certeza, pressione 'Delete' para continuar ou 'Cancel' para "
 "desistir."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Descer"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Ações"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filtro"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Procurar em sub-árvores"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Aplicar filtro"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5141,28 +5481,26 @@ msgstr ""
 msgid "Continue"
 msgstr "Continuar"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Conflito de bloqueio detectado"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Somente leitura"
 
@@ -5179,6 +5517,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Submeter"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Principal"
@@ -5197,6 +5540,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5209,23 +5556,24 @@ msgstr ""
 "pesquisa para valores menores e utilizando filtros para obter as entradas "
 "que você está procurando."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Por favor, escolha a maneira de reação para esta sessão"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
-"Ignorar este erro e mostrar todas as entradas retornadas pelo servidor LDAP."
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"Ignorar este erro e mostrar todas as entradas que se enquadram no limite de "
-"tamanho definido, e me deixar utilizar filtros ao invés. "
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Definir"
diff --git a/locale/ru/fusiondirectory.po b/locale/ru/fusiondirectory.po
index 1a1263c15e551c884743ff47566c94f056cef98d..419eeea22d44c6be08af472091f8d48a7b905796 100644
--- a/locale/ru/fusiondirectory.po
+++ b/locale/ru/fusiondirectory.po
@@ -11,141 +11,550 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Russian (https://www.transifex.com/fusiondirectory/teams/12202/ru/)\n"
+"Language-Team: Russian (https://app.transifex.com/fusiondirectory/teams/12202/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ru\n"
 "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Ошибка"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Пожалуйста исправьте ошибку выше и обновите страницу."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Тип"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Обозначение"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Дата"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Описание"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Были проблемы при распаковке данных снапшота"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Объект"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Снапшоты"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Дата"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Пожалуйста выберете нужные записи"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "шаблон %s "
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Шаблон"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Из шаблона"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Создать"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Экспортировать список"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Изменить"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Вырезать"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Копировать"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Вставить"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Применить шаблон"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Удалить"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Создать снапшот"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Восстановить снапшот"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Вам не разрешено создавать снапшот для %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Вам не разрешено восстанавливать снапшот для %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Перейти в корень подразделений"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr ""
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Перейти вверх на одно подразделение"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "По убыванию"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Перейти к подразделению пользователя"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr ""
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Обновить список"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Настроить"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Ошибка XML в fusiondirectory.conf: %s в строке %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Ошибка конфигурации"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Ошибка LDAP"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 "Не могу привязаться к LDAP. Пожалуйста свяжитесь с системным "
 "администратором."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Все категории"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Моя учетная запись"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Страница"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr "Невозможно экспортировать в PDF: не установлена библиотека FPDF."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "создано"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Файл"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Строка"
 
@@ -169,846 +578,619 @@ msgstr ""
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Тип"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Аргументы"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 "Создание этой страницы помогла PHP интерпретатору выявить некоторые ошибки!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Послать отчет об ошибке команде FusionDirectory"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Отправить отчет об ошибке"
-
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/php_setup.inc:249
+msgid "Mail icon"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "По убыванию"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Вниз"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr "Сортировать по возврастанию"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr "Сортировать по убыванию"
-
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Выбрать все"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "создано"
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Перейти в корень подразделений"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
+#: include/php_setup.inc:249
+msgid "Send bug report"
 msgstr ""
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Перейти вверх на одно подразделение"
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr "Перейти к подразделению пользователя"
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Обновить список"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "Настройка часового пояса '%s' в вашей конфигурации не правильная."
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Действия"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Копировать"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Название шаблона"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Вырезать"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Не удалось войти: %s"
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Вставить"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Вырезать эту запись"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "Указанный объектный тип пустой или неверный!"
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Копировать эту запись"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Восстановить снапшоты"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "CAS"
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Экспортировать список"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Восстановить снапшот"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Создать снапшот"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Создать новый снапшот из объекта"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Войти"
 
-#: include/class_timezone.inc:52
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
-msgstr "Настройка часового пояса '%s' в вашей конфигурации не правильная."
-
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr "Проверка схемы LDAP сообщает об ошибке:"
+
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
-msgstr "Были проблемы при распаковке данных снапшота"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Введите корректное имя пользователя!"
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Введите свой пароль!"
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
+"Учетная запись заблокирована. Пожалуйста свяжитесь с вашим системным "
+"администратором."
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Шаблон"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Ошибка LDAP"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Название шаблона"
-
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Внутренняя ошибка"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
 
-#: include/class_logging.inc:81
-#, php-format
-msgid "Logging failed: %s"
-msgstr "Не удалось войти: %s"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
 
-#: include/class_logging.inc:103
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "Указанный объектный тип пустой или неверный!"
-
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Отправить"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Адрес электронной почты"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ0123456789"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Восстановление пароля"
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Применить фильтр"
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
+msgstr "Не найден аккаунт с логином \"%s\""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Искать в поддеревьях"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Найдено множество учетных записей с логином \"%s\""
 
-#: include/class_filter.inc:404
+#: include/class_passwordRecovery.inc:294
 #, php-format
-msgid "Searches in %s"
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Найдено более %d объектов."
+msgid "There are several accounts using email \"%s\""
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
-"Установить новое значение лимита в %s и показать мне это сообщение если "
-"лимит будет исчерпан."
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Настроить"
-
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "не полный"
-
-#: include/functions.inc:97
-#, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:116
-#, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
-"Критическая ошибка: не могу создать экземпляр класса '%s' - попробуйте "
-"запустить '%s' чтобы исправить это"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Фатальная ошибка"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
 
-#: include/functions.inc:412
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr "FATAL: Ошибка при подключении к LDAP. Сервер сообщил '%s'."
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
 
-#: include/functions.inc:472
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
-"Логин (uid) не уникальный внутри LDAP дерева! Пожалуйста свяжитесь с вашим "
-"администратором."
 
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Ошибка аутентификации"
+#: include/class_standAlonePage.inc:127
+#, php-format
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "Конфигурация FusionDirectory %s/%s не читаема. Прервано."
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr "Ошибка при добавлении блокировки. Свяжитесь с разработчиками!"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "не полный"
 
-#: include/functions.inc:594
+#: include/class_ldapSizeLimit.inc:152
 #, php-format
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
-"Невозможно создать информацию о блокировки в LDAP дереве. Пожалуйста "
-"свяжитесь с вашим администратором!"
 
-#: include/functions.inc:594
+#: include/functions.inc:55
 #, php-format
-msgid "LDAP server returned: %s"
-msgstr "LDAP сервер вернул: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Предупреждение"
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/functions.inc:78
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
-"Найдены множественные блокировки для заблокированного объекта. Это не должно"
-" было случиться - очистите их."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Продолжить в любом случае"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Редактировать в любом случае"
+"Критическая ошибка: не могу создать экземпляр класса '%s' - попробуйте "
+"запустить '%s' чтобы исправить это"
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Вы собираетесь редактировать LDAP запись/записи %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
+msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr "%sB"
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr "%sKiB"
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr "%sMiB"
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr "%sGiB"
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr "%sTiB"
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr "%sPiB"
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr "%sEiB"
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr "%sZiB"
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr "%sYiB"
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
+msgstr ""
+
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
-"Файл '%s' не может быть удален. Попробуйте fusiondirectory-setup --check-"
-"directories чтобы исправить права."
 
-#: include/functions.inc:1722
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Не могу записать файл проверки!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Предупреждение LDAP"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Не могу получить информацию о схемах с сервера. Проверить схемы невозможно!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Доступные класс(ы)"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Не могу обнаружить файл '%s' - пожалуйста запустите '%s', чтобы исправить "
-"это."
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Все объекты в этой категории"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Имя пользователя"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Права"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Отменить все"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Не могу вставить"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Выбрать список объектов типа '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Выбрать список объектов содержащих '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Выбрать список объекто у которых включен '%s'"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Выберите для поиска внутри поддеревьев"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Этот объект будет удален!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Объект '%s' будет удален!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Объект будет удален: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Объект '%s' будет удален: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Объект будет удален:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Объект '%s' будет удален:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Эти объекты будут удалены: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Объекты '%s' будут удалены: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "У вас недостаточно прав для удаления этого объекта!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "У вас недостаточно прав для удаления этого объекта:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "У вас недостаточно прав для удаления этих объектов:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "У вас недостаточно прав для создания этого объекта!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "У вас недостаточно прав для создания этого объекта:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "У вас недостаточно прав для создания этих объектов:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "У вас недостаточно прав для изменения этого объекта!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "У вас недостаточно прав для просмотра этого объекта!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "У вас недостаточно прав для просмотра этих объектов:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "У вас недостаточно прав для просмотра этих объектов:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "У вас недостаточно прав для перемещения этого объекта!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "У вас недостаточно прав для перемещения этого объекта:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "У вас недостаточно прав для перемещения этих объектов:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Информация о подключении"
-
-#: include/class_msgPool.inc:225
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Немогу подключиться к %s базе данных!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Не могу выбрать %s базу!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Не могу отправить запрос %s базе данных!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "Поле '%s' содержит зарезервированные слова!"
-
-#: include/class_msgPool.inc:297
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "неверная команда '%s'"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "Неверная команда '%s' для плагина '%s'!"
-
-#: include/class_msgPool.inc:319
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "'%s' command (%s) is invalid!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:321
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Не могу выполнить '%s' команду!"
-
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Не могу выполнить '%s' команду для плагина %s!"
-
-#: include/class_msgPool.inc:345
-#, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "Не могу выполнить '%s' команду (%s)!"
-
-#: include/class_msgPool.inc:347
-#, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Не могу выполнить '%s' команду (%s) для плагина %s!"
-
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "Значение '%s' слишком большое!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "'%s' должно быть меньше чем %s!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "Значение '%s' слишком маленькое!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s' должен быть %d или больше!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s' зависит от '%s' - пожалуйста предоставьте оба значения!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "Запись с '%s' атрибутом уже есть в системе!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
-msgstr "Запись '%s' уже имеет атрибут '%s'!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
+msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Обязательное поле '%s' пусто!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr "Пример:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
+msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
-msgstr "Поле '%s' содержит недопустимые символы."
+msgid "The required field \"%s\" is empty!"
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "Пропущено %s PHP расширение!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Отмена"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Применить"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Сохранить"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Добавить"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Добавить %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Удалить"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Удалить %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Изменить..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Изменить %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Назад"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Для этой учетной записи нет корректных расширений %s!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1017,7 +1199,7 @@ msgstr ""
 "В этой учетной записи включены %s настройки. Вы можете отключить их, щелкнув"
 " ниже."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1026,7 +1208,7 @@ msgstr ""
 "В этой учетной записи настройки %s включены. Чтобы отключить еë, вам нужно "
 "вначале удалить настройки %s!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1035,7 +1217,7 @@ msgstr ""
 "В этой учетной записи отключены %s настройки. Вы можете включить их, щелкнув"
 " ниже."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1044,302 +1226,222 @@ msgstr ""
 "В этой учетной записи настройки %s отключены. Чтобы включить её, вам нужно "
 "вначале добавить настройки для %s."
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Добавить параметры %s"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Удалить параметры %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Январь"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Февраль"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Март"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Апрель"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Май"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Июнь"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Июль"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Август"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Сентябрь"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Октябрь"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Ноябрь"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Декабрь"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Воскресенье"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Понедельник"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Вторник"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Среда"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Четверг"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Пятница"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Суббота"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "операция чтения"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "операция добавления"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "операция изменения"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "операция удаления"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "операция поиска"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "аутентификация"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "Сбой при выполнении операции в LDAP!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Объект"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Сбой при загрузке!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Сбой при загрузке: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "'%s' по-прежнему используется этим объектом: %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "'%s' по-прежнему используется."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "'%s' по-прежнему используется этими объектами: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Файл '%s' не существует!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Не могу открыть файл '%s' для чтения!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Не могу открыть файл '%s' для записи!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"Значение для '%s' до сих пор не настроено или неверно, пожалуйста проверьте "
-"ваш конфигурационный файл!"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Не могу удалить файл '%s'!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Не могу создать папку '%s'!"
-
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Не могу удалить папку '%s'!"
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Проверка поддержки %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Установите и активируйте %s PHP модуль."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Установите и активируйте %s Pear модуль."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
-"Не могу инициализировать класс '%s'! Может быть какой то плагин пропущен в "
-"настройках FusionDirectory?"
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr ""
+
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Пожалуйста выберете нужные записи"
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Название"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Описание"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Запустить службу"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Остановить службу"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Перезапустить службу"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Ветка"
 
@@ -1351,555 +1453,541 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Неизвестный тип: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "Не существующий dn: %s"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
+#, php-format
+msgid "Incorrect date: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Минуты"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "Секунды"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "Дата"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Не могу прочесть загруженный файл: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "файл пустой"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "файл не найден"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "файл не читаем"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr "%s (%d байт)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Загрузить"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Скачать"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Удалить"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Изменить"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "Целое число от %d до %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "Целое число больше %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "Целое число меньше %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Вещественное число от %f до %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Вещественно число больше %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Вещественное число меньше %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (обязательный)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Неверное значение для %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Сортировать по возврастанию"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr ""
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Сортировать по убыванию"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr "Это название шаблона"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Уже есть запись с таким dn: %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "Запись %s не существует"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr "Вкладка \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr "Неизвестное поле \"%s\""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "секунды"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "минуты"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "часы"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "дни"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "Доступ"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr "POSIX группа %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Управление списками контроля доступа (ACL)"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr "Роль %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "ACL ролей"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr "Группа %s"
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Группа пользователя"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Неизвестно"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr "Из шаблона"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Неизвестная запись '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr "шаблон %s "
+msgid "All users"
+msgstr "Все пользователи"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Показать %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Ошибка фильтра"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
+"Логин (uid) не уникальный внутри LDAP дерева! Пожалуйста свяжитесь с вашим "
+"администратором."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Фильтр неполный!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Предупреждение"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Ошибка доступа"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Вам не разрешено создавать снапшот для %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Вам не разрешено восстанавливать снапшот для %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Создать"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "Доступ"
-
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Управление списками контроля доступа (ACL)"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "ACL ролей"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
-"Неизвестный тип ACL '%s'!\n"
-"Возможно вам нужно запустить \"fusiondirectory-setup --migrate-acls\", чтобы перенести ваши acls в новый формат."
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Неизвестная запись '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Все пользователи"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Предупреждение о производительности"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr "Низкая производительность LDAP: последний запрос занял около %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "во время операции на '%s' использовался LDAP сервер '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "во время операции на LDAP сервер %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Дата"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Ошибка при добавлении блокировки. Свяжитесь с разработчиками!"
 
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"Невозможно создать информацию о блокировки в LDAP дереве. Пожалуйста "
+"свяжитесь с вашим администратором!"
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP сервер вернул: %s"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Найдены множественные блокировки для заблокированного объекта. Это не должно"
+" было случиться - очистите их."
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr "Снапшоты"
-
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Список подразделений"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Подразделение"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Редактировать в любом случае"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Домен"
@@ -1908,127 +1996,142 @@ msgstr "Домен"
 msgid "domain"
 msgstr "домен"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Организация"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr "организация"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Подразделение"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Подразделения"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "отдел"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Свойства"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr "Название %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr "Название для %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr "Короткое описание для %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Категория"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr "Категория для %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr "Сайт"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr "Сайт %s"
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Руководитель"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr "Руководитель этого %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Местоположение"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Адм. единица"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Страна"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Адрес"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr "Почтовый адрес для %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Телефон"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr "Номер телефона"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Факс"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr "Номер факса"
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Название"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Доменный компонент"
@@ -2037,33 +2140,33 @@ msgstr "Доменный компонент"
 msgid "domain component"
 msgstr "доменный компонент"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr "страна"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Местоположение"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr "Местоположения"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Управление подразделениями"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
@@ -2071,233 +2174,198 @@ msgstr ""
 "Управление подразделениями, странами, доменными компонентами, доменами, "
 "местоположениями и организационными удиницами"
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr "Пользователи и группы"
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr "Группы и роли"
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr "Управление группами и ролями"
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr "Управление объектами группы, POSIX группы и роли"
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Отчеты"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(results were \"%s\")"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Состояние"
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Роль"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr "Редактировать свойства роли"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Группы и роли"
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Редактировать posix свойства"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Управление группами и ролями"
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr "Показать группы пользователей"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr "Управление объектами группы, POSIX группы и роли"
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr "Показать организационные роли"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Действие по триггеру"
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr "Показать группы приложений"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Действие по расписанию"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
-msgstr "Показать неопознанные группы"
-
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Показать основные группы"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Показывать группы mail"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Показать группы samba"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr "Показать группы серверов"
-
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
-msgstr "Показать группы рабочих станций"
-
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
-msgstr "Показать группы терминалов"
-
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
-msgstr "Показать группы принтеров"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
-msgstr "Показать группы телефонов"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
-msgstr "Неизвестный тип: %s"
+msgid "Action called without error (results were \"%s\")"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
-msgstr "Не существующий dn: %s"
+msgid "Action called without error (result was \"%s\")"
+msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Объект группы"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr "Информация об объекте группы"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Группа"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr "Название этой группы"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr "Краткое описание группы"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Включаемые объекты"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr "Объекты, члены этой группы"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Системные доверия"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Режим доверия"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Тип авторизации для этих хостов"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "отключен"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "полный доступ"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "разрешить доступ только на эти хосты"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr "Позволить подключаться этой группе только к хостам из списка"
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Список групп"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr "Действие по триггеру"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Члены"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr "Действие по расписанию"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Роль"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr "Информация о роли"
 
@@ -2315,199 +2383,187 @@ msgid "Description of the role"
 msgstr "Описание роли"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Телефон"
 
-#: plugins/admin/groups/class_roleGeneric.inc:99
-msgid "Fax number"
-msgstr "Факс"
+#: plugins/admin/groups/class_roleGeneric.inc:99
+msgid "Fax number"
+msgstr "Факс"
+
+#: plugins/admin/groups/class_roleGeneric.inc:105
+msgid "Role members"
+msgstr ""
+
+#: plugins/admin/groups/class_roleGeneric.inc:108
+msgid "Add users for the role"
+msgstr "Добавить пользователей для роли"
+
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Назначение  ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Назначение ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Назначения ролей управления доступом"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Назначения"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Назначенные роли ACL для этой корневой записи"
 
-#: plugins/admin/groups/class_roleGeneric.inc:105
-msgid "Role members"
-msgstr ""
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Назначения на объекты или поддеревья %s"
 
-#: plugins/admin/groups/class_roleGeneric.inc:108
-msgid "Add users for the role"
-msgstr "Добавить пользователей для роли"
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr "Диалог назначения ролей управления доступом"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "Режим"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr "Применить это действие ко всему поддереву или только к его основе?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr "Subtree"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr "Только к основе"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr "Применить роль"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr "Для всех пользователей"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr "Применить этот ACL для всех пользователй LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Члены"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr "Пользователи или группы, которым будет назначена эта роль."
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
-msgstr "Назначение  ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "Назначение ACL"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
-msgstr "Назначения ролей управления доступом"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
-msgstr "Назначения"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
-msgstr "Назначенные роли ACL для этой корневой записи"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
-msgstr "Назначения на объекты или поддеревья %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
+msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr "Dn"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr "Назначения ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr "Управление назначением ACL ролей пользователям"
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Список пользователей"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Фамилия"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Имя"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Пользователь"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Заблокировать пользователей"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Разблокировать пользователей"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Применить шаблон"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Новый пользователь из шаблона"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Редактировать пользователя"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Удалить пользователя"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Пользователи"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Управление пользователями"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr "Управление аккаунтами пользователей и их свойствами"
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Блокировка учётной записи"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
@@ -2516,210 +2572,286 @@ msgstr ""
 "Парольный метод \"%s\" не поддерживает блокирование. Аккаунт \"%s\" не будет"
 " заблокирован!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "Разблокировать акаунт"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "Заблокировать акаунт"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr "Учетная запись пользователя"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr "Информация об учетной записи пользователя"
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Содержит настройки для этих объектов: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Роли контроля доступа"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "ACL роли"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr "Имя роли"
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr "Короткое описание для этой роли"
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr "ACLs"
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr "ACLs, которые являются частью этой группы"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Нет ACL настроек для этой категории"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL для объектов: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Редактировать категорию ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Сбросить категорию ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Список доступных ACL категорий"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Все объекты в текущем поддереве"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr "Редактировать ACL для \"%s\""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "чтение"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Управление ACL ролей"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "запись"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "Управление ACL ролей"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Показать/скрыть дополнительные настройки"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Создать объекты"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Переместить объекты"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Удалить объекты"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Наделить правами доступа владельца"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Объект целиком"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
-msgstr "Управление ACL ролей"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
-msgstr "Управление ACL ролей"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Включить снапшоты"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Это позволяет сохранять определенное состояние записей и позже его "
+"восстанавливать."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Базовая запись снапшотов"
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Настройки плагинов"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "FusionDirectory настройка плагинов"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Объединения"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "RDN групп"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Ветка в которой объекты групп будут храниться"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr "Настройка информационной панели"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr "Настройка плагина информационной панели FusionDirectory"
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr "Название схемы для информационной панели"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr "Количество цифр"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr "Количество цифр используемых после префикса"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr "Префиксы"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 "Префексы, которые будут использоваться для идентификаторов компьютеров"
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr "Информационная панель - пользователи с истекшим сроком действия"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr "Количество дней"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Плагины"
 
@@ -2727,49 +2859,51 @@ msgstr "Плагины"
 msgid "Configuration for plugins"
 msgstr "Настройки плагинов"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Восстановление пароля"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Настройки для функции восстановления пароля"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Настройки восстановления пароля"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Включить восстановление пароля"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
-msgstr "Включить или нет функцию восстановления пароля"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Адрес электронной почты отправителя"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "Адрес электронной почты с которого будут отправляться письма"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Ссылка действительна (минуты)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 "Количество минут до истечения срока годности ссылки для восстановление "
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "Соль для токенов"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2777,51 +2911,49 @@ msgstr ""
 "Просто мера безопасности, вы можете вставить сюда все что угодно, даже "
 "случайные символы"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Разрешить исользование альтернативных адресов"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Пользователям также нужно ввести один из их дополнительных адресов для "
-"восстановления пароля"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Атрибут для входа"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Первое письмо"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Тема"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Тема первого письма"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Ссылка для восстановления пароля"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Тело (вначале логин %s, вторая ссылка)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2830,7 +2962,7 @@ msgstr ""
 "Тело первого письма, отправляется когда пользователь запрашивает новый "
 "пароль. Использует %s логин и ссылку для восстановления."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2842,24 +2974,24 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Второе письмо"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Тема второго письма"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Пароль восстановлен успешно"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Тело (%s логин)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2868,7 +3000,7 @@ msgstr ""
 "Тело второго письма, отправляется, чтобы подтвердить, что пароль был  "
 "изменен. Использует %s логин пользователя."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2881,29 +3013,84 @@ msgstr ""
 "Ваш пароль был изменен.\n"
 "Ваш логин по прежнему %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Когда вызывать эту команду"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Команда, которая будет вызвана"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Настройки"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "Настройки FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Внешний вид"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Язык"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2912,40 +3099,40 @@ msgstr ""
 "у браузера какой использовать. Эта настройка может быть переопределена "
 "каждым пользователем."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Тема"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Тема, которая будет использоваться"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Часовой пояс"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Часовой пояс, который будет использован"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Основные настройки"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "Ограничение размера LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 "Определяет количество записей, которые можно получить из LDAP по умолчанию."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Блокировка редактирования"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -2953,126 +3140,114 @@ msgstr ""
 "Проверьте, не была ли редактируемая вами запись изменена вне FusionDirectory"
 " в это же время."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Включить логирование"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Регистрация событий на стороне FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr "Включить проверку схемы при входе."
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Включить снапшоты"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-"Это позволяет сохранять определенное состояние записей и позже его "
-"восстанавливать."
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Базовая запись снапшотов"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "Базовая запись, где снапшоты должны будут храниться внутри LDAP."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Настройки пароля"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "Метод хеширования пароля по умолчанию"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "Используемый по умолчанию метод хеширования пароля"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Заставлять использовать хеш по умолчанию"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr "Принуждать использовать метод хеширования пароля по умолчанию"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Минимальная длина пароля"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Минимальная длинна пароля пользователя"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Минимальная разница в паролях"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr "Минимальное количество отличных символов от последнего пароля"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Использовать учетные записи с истекающим сроком действия"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Вход в систему и сессии"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 "Какой LDAP атрибут необходимо использовать в качестве логина при входе в "
 "систему."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Принудительно шифровать соединения"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3080,222 +3255,242 @@ msgstr ""
 "Принудительно использовать шифрованный доступ (https) к веб интерфейсу, "
 "включив проверку безопасности PHP."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Предупреждать если сеанс не зашифрован"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 "будут отображаться предупреждения для пользователя, когда http будет "
 "использоваться вместо https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Время жизни сессии"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
-msgstr "Путь к сертификату CA"
-
-#: plugins/config/class_configInLdap.inc:246
-msgid "Path to the CA certificate. Used for validating Argonaut Server host."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr "CAS"
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr "Включить CAS"
+msgstr "Путь к сертификату CA"
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
+#: plugins/config/class_configInLdap.inc:207
+msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Хост"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Порт"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Местоположение пользователей и групп"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "DN атрибут пользователя"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
-msgstr "Атрибут используемый у пользователей в начале dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Политика строго присваивания имен"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr "Включить строгую проверку имен для пользователей и групп"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr " RDN пользователей"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr "Ветка где пользователели хранятся."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr "RDN для ACL ролей"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr "Ветка в которой хранятся ACL ролей."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Отладка"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Отображение ошибок"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
-"Показывать PHP ошибки в верхней части экрана. Следует отключить при рабочем "
-"использовании, потому что там могут быть отображены пароли."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Максимальное время LDAP запроса"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 "Остановить работу с LDAP если нет ответа за определенное количество секунд."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Лог статистики обращений к LDAP"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3303,23 +3498,31 @@ msgstr ""
 "Отслеживать продолжительность обращений к LDAP в syslog. Это может помочь "
 "найти проблемы в индексировании и плохих фильтров поиска."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Уровень отладки"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Отображать следующую информацию при каждой загрузке странице."
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Разное"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Показать краткую информацию о списках"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3327,274 +3530,289 @@ msgstr ""
 "Определяет, будет ли внизу каждого списка отображена строка состояния с "
 "краткой информацией о типе и количестве элементов списка."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr "Показать вкладку ACL для всех объектов."
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr "Доступные категории подразделений"
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr "Доступные категории подразделений в раскрывающемся списке"
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Хуки"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Автоматически"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Группа %s"
+
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Роль %s"
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "Когда вызывать эту команду"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "Команда, которая будет вызвана"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Информационная панель"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Автоматически"
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Статистика"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr "Статистика о пользователях"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr "Статистика по пользователям"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr "Статистика по группам"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr "Просроченные учетные записи"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Имя пользователя"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Дата окончания действия"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "Email"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr "Информационная панель"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr "Отчеты"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr "Статистика"
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr "Ид"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr "Дата начала"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr "Дата окончания"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "Импортировать"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3602,53 +3820,202 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
-msgstr "Принадлежит группам"
+msgid "Group memberships"
+msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
 msgstr "Принадлежит ролям"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Парольный метод"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Применяемый метод для хэша пароля"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3656,273 +4023,322 @@ msgstr "Применяемый метод для хэша пароля"
 msgid "Password"
 msgstr "Пароль"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Пароль (Оставьте пустым, если не хотите его менять)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Пароль еще раз"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Пользователь"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Информация об учетной записи пользователя"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Учетная запись пользователя"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Личная информация"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Фамилия"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr "Фамилия пользователя"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Имя"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr "Имя пользователя"
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr "Краткое описание пользователя"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr "Фотография"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr "Аватар пользователя"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr "Рабочая контактная информация"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr "Рабочий почтовый адрес"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Номер комнаты"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Номер комнаты"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr "Рабочий номер телефона"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Мобильный"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr "Рабочий номер мобильного телефона"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Пейджер"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr "Рабочий номер пейджера"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr "Рабочий номер факса"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Домашняя страница"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr "Персональная домашняя страница"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr "Информация об учетной записи"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr "Логин этого пользователя"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Предпочитаемый язык"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr "Пароль пользователя"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr "Личная контактная информация"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "Отображаемое имя"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr "Домашний адрес"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Домашний почтовый адрес"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Личный телефон"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Домашний телефон"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Информация об организации"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "Заголовок"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Номер подразделения"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Номер отдела"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Номер работника"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Номер работника"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Форма трудоустройства"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Почтовый индекс"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr "Вам не разрешено изменять свой пароль"
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr "Вы должны подождать %d секунд перед повторным изменением пароля"
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr "Пароль присутствует в истории старых паролей"
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Для продолжения укажите свой текущий пароль."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Новый пароль"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Новый и текущий пароли слишком похожи."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "Пароль содержит символы Unicode, которые могут проблемы!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Ссылки"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Добро пожаловать %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Завершено"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Далее"
 
@@ -3994,10 +4410,6 @@ msgstr "Пароль администратора"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Состояние"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Текущее состояние"
@@ -4022,46 +4434,46 @@ msgstr ""
 "Этот диалог выполняет основную настройку LDAP соединения для "
 "FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Сбой при анонимном привязывании к серверу '%s'!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Сбой при привязки под пользователем '%s'!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "Retry"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Анонимное подключение (bind) а к серверу '%s' удалась."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Refresh"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Пожалуйста укажите пользователя и пароль!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Привязка под пользователем '%s' к серверу '%s' удалась!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4077,29 +4489,29 @@ msgstr "Контроль за установкой"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Основная проверка совместимости PHP и расширений"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Проверка PHP версии"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP должен быть %s версии или старше"
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Пожалуйста обновитесь до поддерживаемой версии."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr "FusionDirectory требуется модуль для связи с вашим LDAP сервером."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr "FusionDirectory требуется модуль для интернационализации интерфейса."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
@@ -4107,83 +4519,61 @@ msgstr ""
 "FusionDirectory требуется этот модуль для взаимодействия с различными типами"
 " серверов и протоколов."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
-msgid "FusionDirectory requires this module for the samba integration."
-msgstr "FusionDirectory требуется модуль для интеграции с samba."
-
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory требуется один из модулей 'mhash или 'sha1', чтобы "
-"использовать SSHA шифрование."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:109
+msgid "FusionDirectory requires this module for the samba integration."
+msgstr "FusionDirectory требуется модуль для интеграции с samba."
+
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr "FusionDirectory требуется модуль для связи с IMAP сервером."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr "FusionDirectory требуется модуль для обработки юникод строк."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory требуется расширение для обработки изображений."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "модуль сжатия"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr "FusionDirectory требуется расширение для обработки снапшотов."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "Это значение используется PHP сборщиком мусора, чтобы удалять старые сессии."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4191,12 +4581,12 @@ msgstr ""
 "Найдите 'session.gc_maxlifetime' в вашем php.ini и установите в 86400 или "
 "больше."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Выкл"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4204,12 +4594,12 @@ msgstr ""
 "Чтобы во время использования FusionDirectory не возникло ни каких проблем, "
 "опция 'session.auto_start' должна быть установлена в 'Off' в вашем php.ini."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Найдите 'session.auto_start' в вашем php.ini и установите его в 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4218,27 +4608,27 @@ msgstr ""
 "может привести к ошибкам, которые не воспроизводятся! Увеличьте его в "
 "большинстве случаев."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Найдите 'memory_limit' в вашем php.ini и установите его в '128M' или больше."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Найдите 'implicit_flush' в вашем php.ini и установите его в 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Время исполнения, должно быть не менее 30 секунд."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4246,7 +4636,7 @@ msgstr ""
 "Найдите 'max_execution_time' в вашем php.ini и установите его в значение "
 "'30' или больше."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4254,231 +4644,280 @@ msgstr ""
 "Повысить безопасность сервера установив опцию expose_php в 'off'. PHP не "
 "будет отправлять ни какую информацию о сервере, запускающему, в этом случае."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Найдите 'expose_php' в вашем php.ini и установите в 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Перемещение"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Инспекция LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr "Анализ вашего текущего LDAP для совместимости с FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr "Дать полные права на пользователей в выбранной ветке"
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Проверка прав для LDAP базы"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Проверка на невидимых пользователей"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Проверка для супер администратора"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Проверка на пользователей за пределами дерева людей"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Проверка на группы за пределами дерева для них"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Проверка на невидимые подразделения"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "LDAP запрос не удался"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Ошибка"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Пропущен объектный класс FusionDirectory '%s'!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Пожалуйста проверьте вашу установку."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"Найден пользователь(и) %s, которые будут не видны в FusionDirectory или "
-"которые не полные."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Ошибка перемещения"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Группы"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr "Роли"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "Нет учетной записи администратора FusionDirectory в вашем LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr "ACL ролей по умолчанию не вставлены"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr "Некоторые ACL ролей по умолчанию пропущены"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr "ACL ролей по умолчанию вставлен"
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Переместить пользователей в настроенное дерево пользователей"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Следующие ссылки будут обновлены"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Найдены группы %s, выходящие за пределы настроенного дерева '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Найдены подразделение(я) %s, которые будет не видны в FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4493,7 +4932,7 @@ msgstr "Завершение - запишите конфигурационный
 msgid "Write configuration file"
 msgstr "Запись конфигурационного файла"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4501,20 +4940,17 @@ msgstr ""
 "Конфигурационный файл доступе только для чтения. Пожалуйста обновите права "
 "на файл."
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "Конфигурационный файл не читается или не существует вовсе."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"После скачивания и размещения файла в %s, убедитесь что пользователь из под "
-"которого запущен веб-сервера может читать %s, в то время как другие "
-"пользователи не должны."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4534,120 +4970,28 @@ msgstr ""
 " \"автоматически\" будет и использоваться язык запрошенный браузером. Эта "
 "настройка может быть переопределена для каждого пользователя."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr "Конфигурация FusionDirectory %s/%s не читаема. Прервано."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Адрес электронной почты"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr "Не найден аккаунт с логином \"%s\""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr "Найдено множество учетных записей с логином \"%s\""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-"Свяжитесь с вашим системным администратором, были проблемы с почтовым "
-"сервером"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr "Были проблемы с почтовым сервером, имэйл подтверждения не отправлены"
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Настройки PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Критическая ошибка: Register globals is on. FusionDirectory не позволит "
-"залогиниться до тех пор пока это не будет исправлено администратором."
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Изменить пароль"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 "Срок действия вашего пароля почти закончился, пожалуйста измените его!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr "Ваш пароль истек, пожалуйста установите новый."
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Плагин"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4655,109 +4999,26 @@ msgstr ""
 "Критическая ошибка: не все POST переменные переданы в PHP - пожалуйста "
 "сообщите вашему системному администратору!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Войти"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
-"Не прочесть конфигурацию FusionDirectory %s/%s. Чтобы исправить это "
-"пожалуйста запустите  fusiondirectory-setup --check-config."
 
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Ошибка Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Время вашей сессии истекло!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr "Проверка схемы LDAP сообщает об ошибке:"
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Введите корректное имя пользователя!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Введите свой пароль!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Проверьте, правильно ли вы ввели имя пользователя и пароль."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-"Учетная запись заблокирована. Пожалуйста свяжитесь с вашим системным "
-"администратором."
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr "CAS пользователь \"%s\" не может быть найден в LDAP"
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"В вашем браузере отключены куки. Пожалуйста включите их и обновите эту "
-"страницу перед входом в систему! "
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Фильтр"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4774,25 +5035,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr "Нажмите 'Удалить', чтобы продолжить или 'Отменить', чтобы прервать."
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Показать шаблоны"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Показывать функциональных пользователей"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Показывать пользователей POSIX"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Показать пользователей Почты"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Показать/скрыть дополнительные настройки"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Показывать пользователей Samba"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Объект целиком"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4803,8 +5052,8 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
-msgstr "Нет учетных записей с истекшим сроком действия"
+msgid "There are no expired accounts"
+msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
 #: plugins/addons/dashboard/users_accounts.tpl.c:23
@@ -4861,8 +5110,8 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4877,15 +5126,15 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
-msgstr "Ни один из них не заблокирован"
+msgid "None of them are locked"
+msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
 msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4935,10 +5184,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "После миграции"
 
@@ -4961,12 +5212,10 @@ msgstr "FusionDirectory сможет продолжить работу без и
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Похоже, что вы запустили FusionDirectory впервые, поскольку мы не смогли "
-"найти ни одной конфигурации. Этот простой мастер поможет вам в настройке."
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -5009,16 +5258,13 @@ msgstr "Для продолжения:"
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
-"Для обеспечения безопасности установки вам нужно подтвердить подлинность, "
-"создав на сервере файл '%1', содержащий ID сессии. Для этого выполните "
-"следующую команду: "
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "По завершении нажмите кнопку \"Далее\""
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -5088,7 +5334,12 @@ msgstr ""
 "Если вы хотите знать, что будет сделано при переселении выбранных записей, "
 "воспользуйтесь кнопкой 'Показать изменения', чтобы посмотреть на LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Выбрать все"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Показать изменения"
 
@@ -5203,14 +5454,28 @@ msgid "I forgot my password"
 msgstr "Не помню пароль"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"В вашем браузере отключены куки. Пожалуйста включите их и обновите эту "
+"страницу перед входом в систему! "
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Нажмите на эту кнопку, чтобы войти в систему"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr "Предупреждение: вы собираетесь удалить следующие объекты"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5223,6 +5488,59 @@ msgstr ""
 "Итак - если вы уверены - нажмите 'Удалить', чтобы продолжить или 'Отмена' "
 "чтобы прервать."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Вниз"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Действия"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Фильтр"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Искать в поддеревьях"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Применить фильтр"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr "Создание нового объекта используя шаблоны"
@@ -5232,28 +5550,26 @@ msgstr "Создание нового объекта используя шабл
 msgid "Continue"
 msgstr "Продолжить"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Конфликт блокировок"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Только для чтения"
 
@@ -5270,6 +5586,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Отправить"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Начало"
@@ -5288,6 +5609,10 @@ msgid "Session expires in %d!"
 msgstr "Сессия закончится через %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5300,20 +5625,24 @@ msgstr ""
 "установить минимальное значение. Кроме того, будет очень полезно "
 "использовать фильтры для просмотра только ограниченного количества объектов."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Выберите тип реакции для данной сессии"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
-msgstr "игнорировать ошибку и показать все найденые объекты"
+msgid "Please choose the way to react for this session:"
+msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Установить"
diff --git a/locale/ru@petr1708/fusiondirectory.po b/locale/ru@petr1708/fusiondirectory.po
index b80791e9ef4ddc7335380bc3fe5b921bb4c98cfe..1f068dbef66eae4365c5fbe318f82cee64fbf166 100644
--- a/locale/ru@petr1708/fusiondirectory.po
+++ b/locale/ru@petr1708/fusiondirectory.po
@@ -3,2288 +3,2394 @@
 # This file is distributed under the same license as the FusionDirectory package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
+# Translators:
+# fusiondirectory <contact@fusiondirectory.org>, 2023
+# 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Language-Team: Russian Petrine orthography (https://www.transifex.com/fusiondirectory/teams/12202/ru@petr1708/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Russian Petrine orthography (https://app.transifex.com/fusiondirectory/teams/12202/ru@petr1708/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ru@petr1708\n"
 "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
-msgstr ""
+msgstr "Ошибка"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
 msgstr ""
 
-#: include/class_config.inc:151
-#, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
 msgstr ""
 
-#: include/class_config.inc:283
-#, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Тип"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
 msgstr ""
 
-#: include/class_config.inc:354
-#, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Обозначение"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
 msgstr ""
 
-#: include/class_config.inc:776
-#, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
 msgstr ""
 
-#: include/class_config.inc:788
-#, php-format
+#: include/management/class_ManagementConfigurationDialog.inc:86
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
-msgstr ""
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "Дата"
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Описание"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr "Были проблемы при распаковке данных снапшота"
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Объект"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr "Снапшоты"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Дата"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
 msgstr ""
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
 msgstr ""
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Пожалуйста выберете нужные записи"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr "шаблон %s "
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Шаблон"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr "Из шаблона"
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Создать"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Экспортировать список"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Изменить"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Вырезать"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
 msgid "Copy"
+msgstr "Копировать"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Вставить"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Применить шаблон"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Удалить"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Создать снапшот"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Восстановить снапшот"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Вам не разрешено создавать снапшот для %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Вам не разрешено восстанавливать снапшот для %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/management/class_managementListing.inc:233
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Перейти в корень подразделений"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Перейти вверх на одно подразделение"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "По убыванию"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr "Перейти к подразделению пользователя"
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Обновить список"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Настроить"
+
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr "Ошибка XML в fusiondirectory.conf: %s в строке %d"
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
+"Не могу привязаться к LDAP. Пожалуйста свяжитесь с системным "
+"администратором."
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
+#: include/class_config.inc:994
+msgid "All categories"
+msgstr "Все категории"
+
+#: include/class_config.inc:1158
+msgid "My account"
+msgstr "Моя учетная запись"
+
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_logging.inc:81
+#: include/class_exceptions.inc:99
 #, php-format
-msgid "Logging failed: %s"
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_exceptions.inc:120
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_exceptions.inc:159
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
-msgstr ""
+#: include/exporter/class_PDF.php:61
+msgid "Page"
+msgstr "Страница"
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
+msgstr "Невозможно экспортировать в PDF: не установлена библиотека FPDF."
+
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "создано"
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr "PDF"
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr "CSV"
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr "Файл"
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr "Строка"
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr "Ошибка PHP"
+
+#: include/php_setup.inc:78
+msgid "class"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/php_setup.inc:86
+msgid "function"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/php_setup.inc:92
+msgid "static"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/php_setup.inc:96
+msgid "method"
 msgstr ""
 
-#: include/class_filter.inc:404
-#, php-format
-msgid "Searches in %s"
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr "Аргументы"
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
+"Создание этой страницы помогла PHP интерпретатору выявить некоторые ошибки!"
 
-#: include/class_ldapSizeLimit.inc:115
-#, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr "Послать отчет об ошибке команде FusionDirectory"
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/php_setup.inc:249
+msgid "Send bug report"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/php_setup.inc:254
+msgid "Toggle information"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/php_setup.inc:303
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_timezone.inc:52
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
-msgstr ""
+msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgstr "Настройка часового пояса '%s' в вашей конфигурации не правильная."
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Название шаблона"
+
+#: include/class_logging.inc:79
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Logging failed: %s"
+msgstr "Не удалось войти: %s"
+
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "Указанный объектный тип пустой или неверный!"
+
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr "CAS"
+
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Войти"
+
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/functions.inc:594
-#, php-format
-msgid "LDAP server returned: %s"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr "Проверка схемы LDAP сообщает об ошибке:"
+
+#: include/login/class_LoginMethod.inc:56
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr ""
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Введите корректное имя пользователя!"
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Введите свой пароль!"
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
+"Учетная запись заблокирована. Пожалуйста свяжитесь с вашим системным "
+"администратором."
 
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Ошибка LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/functions.inc:1505
-#, php-format
-msgid "%sB"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/functions.inc:1506
-#, php-format
-msgid "%sKiB"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "%sMiB"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid "%sGiB"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:1509
-#, php-format
-msgid "%sTiB"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Адрес электронной почты"
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Восстановление пароля"
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "%sPiB"
-msgstr ""
+msgid "Did not find an account with login \"%s\""
+msgstr "Не найден аккаунт с логином \"%s\""
 
-#: include/functions.inc:1511
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid "%sEiB"
-msgstr ""
+msgid "Found multiple accounts with login \"%s\""
+msgstr "Найдено множество учетных записей с логином \"%s\""
 
-#: include/functions.inc:1512
+#: include/class_passwordRecovery.inc:294
 #, php-format
-msgid "%sZiB"
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "%sYiB"
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "Cannot get schema information from server. No schema check possible!"
+#: include/password-methods/class_passwordMethodSasl.inc:66
+#, php-format
+msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/functions.inc:1891
-msgid "Main FusionDirectory schema"
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
+msgid ""
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:1899
-msgid "Schema used to store FusionDirectory configuration"
-msgstr ""
+#: include/class_standAlonePage.inc:127
+#, php-format
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "Конфигурация FusionDirectory %s/%s не читаема. Прервано."
 
-#: include/functions.inc:1907
-msgid "Used to store trust mode information in users or groups."
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:1915
-msgid "Used to store templates."
-msgstr ""
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "не полный"
 
-#: include/functions.inc:1924
-msgid "Used to store POSIX information."
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
+msgid ""
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:55
 #, php-format
-msgid "Missing required object class \"%s\"!"
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:78
 #, php-format
-msgid "Missing optional object class \"%s\"!"
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
+"Критическая ошибка: не могу создать экземпляр класса '%s' - попробуйте "
+"запустить '%s' чтобы исправить это"
 
-#: include/functions.inc:1938
+#: include/functions.inc:151
 #, php-format
-msgid "Class(es) available"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1957
-msgid ""
-"You have installed the mixed groups plugin, but your schema configuration "
-"does not support this."
-msgstr ""
+#: include/functions.inc:783
+#, php-format
+msgid "%sB"
+msgstr "%sB"
+
+#: include/functions.inc:784
+#, php-format
+msgid "%sKiB"
+msgstr "%sKiB"
+
+#: include/functions.inc:785
+#, php-format
+msgid "%sMiB"
+msgstr "%sMiB"
+
+#: include/functions.inc:786
+#, php-format
+msgid "%sGiB"
+msgstr "%sGiB"
+
+#: include/functions.inc:787
+#, php-format
+msgid "%sTiB"
+msgstr "%sTiB"
+
+#: include/functions.inc:788
+#, php-format
+msgid "%sPiB"
+msgstr "%sPiB"
 
-#: include/functions.inc:1958
+#: include/functions.inc:789
+#, php-format
+msgid "%sEiB"
+msgstr "%sEiB"
+
+#: include/functions.inc:790
+#, php-format
+msgid "%sZiB"
+msgstr "%sZiB"
+
+#: include/functions.inc:791
+#, php-format
+msgid "%sYiB"
+msgstr "%sYiB"
+
+#: include/functions.inc:924
+#, php-format
 msgid ""
-"In order to use mixed groups the objectClass \"posixGroup\" must be "
-"AUXILIARY"
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1961
-msgid ""
-"Your schema is configured to support mixed groups, but this plugin is not "
-"present."
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1962
-msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
+msgstr "Не могу записать файл проверки!"
+
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:2311
-#, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+#: include/functions.inc:1147
+msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
+"Не могу получить информацию о схемах с сервера. Проверить схемы невозможно!"
 
-#: include/class_pluglist.inc:196
-msgid "All objects in this category"
+#: include/functions.inc:1172
+msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
+#: include/functions.inc:1180
+msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/functions.inc:1188
+msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
-msgid "Cancel all"
+#: include/functions.inc:1196
+msgid "Used to store templates."
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
-msgid "Cannot paste"
+#: include/functions.inc:1205
+msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/class_msgPool.inc:43
+#: include/functions.inc:1213
 #, php-format
-msgid "Select to list objects of type '%s'."
+msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/class_msgPool.inc:45
+#: include/functions.inc:1215
 #, php-format
-msgid "Select to list objects containig '%s'."
+msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/class_msgPool.inc:47
+#: include/functions.inc:1219
 #, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
+msgid "Class(es) available"
+msgstr "Доступные класс(ы)"
 
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
+#: include/functions.inc:1238
+msgid ""
+"You have installed the mixed groups plugin, but your schema configuration "
+"does not support this."
 msgstr ""
 
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
+#: include/functions.inc:1239
+msgid ""
+"In order to use mixed groups the objectClass \"posixGroup\" must be "
+"AUXILIARY"
 msgstr ""
 
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
+#: include/functions.inc:1242
+msgid ""
+"Your schema is configured to support mixed groups, but this plugin is not "
+"present."
 msgstr ""
 
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
+#: include/functions.inc:1243
+msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/class_msgPool.inc:76
+#: include/functions.inc:1515
 #, php-format
-msgid "This '%s' object will be deleted: %s"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
+#: include/class_pluglist.inc:209
+msgid "All objects in this category"
+msgstr "Все объекты в этой категории"
 
-#: include/class_msgPool.inc:83
+#: include/class_pluglist.inc:580
 #, php-format
-msgid "This '%s' object will be deleted:"
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
+#: include/class_CopyPasteHandler.inc:267
+msgid "Cancel all"
+msgstr "Отменить все"
 
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
+#: include/class_CopyPasteHandler.inc:333
+msgid "Cannot paste"
+msgstr "Не могу вставить"
 
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
-msgstr ""
+msgstr "У вас недостаточно прав для удаления этого объекта!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
-msgstr ""
+msgstr "У вас недостаточно прав для удаления этого объекта:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
-msgstr ""
+msgstr "У вас недостаточно прав для удаления этих объектов:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
-msgstr ""
+msgstr "У вас недостаточно прав для создания этого объекта!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
-msgstr ""
+msgstr "У вас недостаточно прав для создания этого объекта:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
-msgstr ""
+msgstr "У вас недостаточно прав для создания этих объектов:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
-msgstr ""
+msgstr "У вас недостаточно прав для изменения этого объекта!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
-msgstr ""
+msgstr "У вас недостаточно прав для просмотра этого объекта!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
-msgstr ""
+msgstr "У вас недостаточно прав для просмотра этих объектов:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
-msgstr ""
+msgstr "У вас недостаточно прав для просмотра этих объектов:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
-msgstr ""
+msgstr "У вас недостаточно прав для перемещения этого объекта!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
-msgstr ""
+msgstr "У вас недостаточно прав для перемещения этого объекта:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
-msgstr ""
-
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
+msgstr "У вас недостаточно прав для перемещения этих объектов:"
 
-#: include/class_msgPool.inc:321
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
-#, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr ""
-
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:436
-msgid "Example:"
-msgstr ""
-
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
-msgstr ""
+msgstr "Пропущено %s PHP расширение!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
-msgstr ""
+msgstr "Отмена"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
-msgstr ""
+msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
-msgstr ""
+msgstr "Применить"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
-msgstr ""
+msgstr "Сохранить"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
-msgstr ""
-
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
+msgstr "Добавить"
 
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
+msgstr "Удалить"
 
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
+msgstr "Изменить..."
 
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
-msgstr ""
+msgstr "Назад"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
-msgstr ""
+msgstr "Для этой учетной записи нет корректных расширений %s!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
+"В этой учетной записи включены %s настройки. Вы можете отключить их, щелкнув"
+" ниже."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
+"В этой учетной записи настройки %s включены. Чтобы отключить еë, вам нужно "
+"вначале удалить настройки %s!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
+"В этой учетной записи отключены %s настройки. Вы можете включить их, щелкнув"
+" ниже."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
+"В этой учетной записи настройки %s отключены. Чтобы включить её, вам нужно "
+"вначале добавить настройки для %s."
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
-msgstr ""
+msgstr "Добавить параметры %s"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
-msgstr ""
+msgstr "Удалить параметры %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
-msgstr ""
+msgstr "Январь"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
-msgstr ""
+msgstr "Февраль"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
-msgstr ""
+msgstr "Март"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
-msgstr ""
+msgstr "Апрель"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
-msgstr ""
+msgstr "Май"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
-msgstr ""
+msgstr "Июнь"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
-msgstr ""
+msgstr "Июль"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
-msgstr ""
+msgstr "Август"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
-msgstr ""
+msgstr "Сентябрь"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
-msgstr ""
+msgstr "Октябрь"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
-msgstr ""
+msgstr "Ноябрь"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
-msgstr ""
+msgstr "Декабрь"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
-msgstr ""
+msgstr "Воскресенье"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
-msgstr ""
+msgstr "Понедельник"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
-msgstr ""
+msgstr "Вторник"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
-msgstr ""
+msgstr "Среда"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
-msgstr ""
+msgstr "Четверг"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
-msgstr ""
+msgstr "Пятница"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
-msgstr ""
+msgstr "Суббота"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
-msgstr ""
+msgstr "операция чтения"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
-msgstr ""
+msgstr "операция добавления"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
-msgstr ""
+msgstr "операция изменения"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
-msgstr ""
+msgstr "операция удаления"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
-msgstr ""
+msgstr "операция поиска"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
-msgstr ""
+msgstr "аутентификация"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
+msgstr "Сбой при выполнении операции в LDAP!"
 
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
-msgstr ""
+msgstr "Сбой при загрузке!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
-msgstr ""
+msgstr "Сбой при загрузке: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
+msgid "Checking for %s support"
+msgstr "Проверка поддержки %s"
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
-msgstr ""
+msgid "Install and activate the %s PHP module."
+msgstr "Установите и активируйте %s PHP модуль."
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr ""
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
+msgstr "Запустить службу"
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr ""
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
+msgstr "Остановить службу"
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
-msgstr ""
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
+msgstr "Перезапустить службу"
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
-msgstr ""
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
+msgstr "Ветка"
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr ""
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr "Неизвестный тип: %s"
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
-msgstr ""
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr "Не существующий dn: %s"
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
-msgstr ""
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Неизвестно"
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
-msgstr ""
+msgstr "Минуты"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
-msgstr ""
+msgstr "Секунды"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
-msgstr ""
+msgstr "Не могу прочесть загруженный файл: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
-msgstr ""
+msgstr "файл пустой"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
-msgstr ""
+msgstr "файл не найден"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
-msgstr ""
+msgstr "файл не читаем"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
+msgstr "%s (%d байт)"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
-msgstr ""
+msgstr "Загрузить"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
-msgstr ""
+msgstr "Скачать"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr ""
+msgid "An integer between %d and %d"
+msgstr "Целое число от %d до %d"
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr "Целое число больше %d"
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr ""
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr "Целое число меньше %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
-msgstr ""
+msgstr "Вещественное число от %f до %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
-msgstr ""
+msgstr "Вещественно число больше %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
-msgstr ""
+msgstr "Вещественное число меньше %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
-msgstr ""
+msgstr "%s (обязательный)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr ""
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr "Сортировать по возврастанию"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr ""
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr "Сортировать по убыванию"
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
-msgstr ""
+msgstr "Это название шаблона"
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
-msgstr ""
+msgstr "Запись %s не существует"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
-msgstr ""
+msgstr "Вкладка \"%s\""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
+msgstr "Неизвестное поле \"%s\""
+
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
-msgstr ""
+msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
-msgstr ""
+msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
-msgstr ""
+msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
-msgstr ""
+msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
-msgstr ""
+msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
-msgstr ""
+msgstr "секунды"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
-msgstr ""
+msgstr "минуты"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
-msgstr ""
+msgstr "часы"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
-msgstr ""
+msgstr "дни"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "Доступ"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Управление списками контроля доступа (ACL)"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr ""
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "ACL ролей"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Неизвестная запись '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr ""
+msgid "All users"
+msgstr "Все пользователи"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
+"Логин (uid) не уникальный внутри LDAP дерева! Пожалуйста свяжитесь с вашим "
+"администратором."
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Предупреждение"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr ""
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
-msgstr ""
+msgid "LDAP performance is poor: last query took about %.2fs!"
+msgstr "Низкая производительность LDAP: последний запрос занял около %.2fs!"
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
-msgstr ""
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Ошибка при добавлении блокировки. Свяжитесь с разработчиками!"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"Невозможно создать информацию о блокировки в LDAP дереве. Пожалуйста "
+"свяжитесь с вашим администратором!"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP сервер вернул: %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Найдены множественные блокировки для заблокированного объекта. Это не должно"
+" было случиться - очистите их."
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr ""
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Редактировать в любом случае"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
-msgstr ""
+msgstr "Домен"
 
 #: plugins/admin/departments/class_domain.inc:51
 msgid "domain"
-msgstr ""
+msgstr "домен"
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
-msgstr ""
+msgstr "Организация"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
-msgstr ""
+msgstr "организация"
+
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Подразделение"
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
-msgstr ""
+msgstr "Подразделения"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
-msgstr ""
+msgstr "отдел"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
-msgstr ""
+msgstr "Свойства"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
-msgstr ""
+msgstr "Название %s"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
-msgstr ""
+msgstr "Название для %s"
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
-msgstr ""
+msgstr "Короткое описание для %s"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
-msgstr ""
+msgstr "Категория"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
-msgstr ""
+msgstr "Категория для %s"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
-msgstr ""
+msgstr "Сайт"
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
-msgstr ""
+msgstr "Сайт %s"
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
-msgstr ""
+msgstr "Руководитель"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
-msgstr ""
+msgstr "Руководитель этого %s"
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
-msgstr ""
+msgstr "Местоположение"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
-msgstr ""
+msgstr "Адм. единица"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
-msgstr ""
+msgstr "Страна"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
-msgstr ""
+msgstr "Адрес"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
-msgstr ""
+msgstr "Почтовый адрес для %s"
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
-msgstr ""
+msgstr "Телефон"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
-msgstr ""
+msgstr "Номер телефона"
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
-msgstr ""
+msgstr "Факс"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
-msgstr ""
+msgstr "Номер факса"
+
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Фамилия"
 
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
-msgstr ""
+msgstr "Доменный компонент"
 
 #: plugins/admin/departments/class_dcObject.inc:51
 msgid "domain component"
-msgstr ""
+msgstr "доменный компонент"
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
-msgstr ""
+msgstr "страна"
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
-msgstr ""
+msgstr "Местоположение"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
-msgstr ""
+msgstr "Местоположения"
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
-msgstr ""
+msgstr "Управление подразделениями"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
+"Управление подразделениями, странами, доменными компонентами, доменами, "
+"местоположениями и организационными удиницами"
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
+msgstr "Пользователи и группы"
 
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
+msgstr "Отчеты"
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Состояние"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr "Группы и роли"
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
+msgstr "Управление группами и ролями"
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr "Управление объектами группы, POSIX группы и роли"
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
+msgstr "Действие по триггеру"
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
-msgstr ""
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
+msgstr "Действие по расписанию"
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
-msgstr ""
+msgstr "Объект группы"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
-msgstr ""
+msgstr "Информация об объекте группы"
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
-msgstr ""
+msgstr "Группа"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
-msgstr ""
+msgstr "Название этой группы"
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
-msgstr ""
+msgstr "Краткое описание группы"
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
-msgstr ""
+msgstr "Включаемые объекты"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
-msgstr ""
+msgstr "Объекты, члены этой группы"
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
-msgstr ""
+msgstr "Системные доверия"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
-msgstr ""
+msgstr "Режим доверия"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
-msgstr ""
+msgstr "Тип авторизации для этих хостов"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
-msgstr ""
+msgstr "отключен"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
-msgstr ""
+msgstr "полный доступ"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
-msgstr ""
+msgstr "разрешить доступ только на эти хосты"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
-msgstr ""
+msgstr "Позволить подключаться этой группе только к хостам из списка"
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Члены"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Роль"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
-msgstr ""
+msgstr "Информация о роли"
 
 #: plugins/admin/groups/class_roleGeneric.inc:60
 msgid "Organizational role"
-msgstr ""
+msgstr "Организационная роль"
 
 #: plugins/admin/groups/class_roleGeneric.inc:82
 #: ihtml/themes/breezy/msg_dialog.tpl.c:8
 msgid "Information"
-msgstr ""
+msgstr "Информация"
 
 #: plugins/admin/groups/class_roleGeneric.inc:91
 msgid "Description of the role"
-msgstr ""
+msgstr "Описание роли"
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
-msgstr ""
+msgstr "Телефон"
 
 #: plugins/admin/groups/class_roleGeneric.inc:99
 msgid "Fax number"
-msgstr ""
+msgstr "Факс"
 
 #: plugins/admin/groups/class_roleGeneric.inc:105
 msgid "Role members"
@@ -2292,497 +2398,571 @@ msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:108
 msgid "Add users for the role"
+msgstr "Добавить пользователей для роли"
+
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr "Назначение  ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "Назначение ACL"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr "Назначения ролей управления доступом"
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr "Назначения"
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr "Назначенные роли ACL для этой корневой записи"
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr "Назначения на объекты или поддеревья %s"
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
-msgstr ""
+msgstr "Диалог назначения ролей управления доступом"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
-msgstr ""
+msgstr "Режим"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
-msgstr ""
+msgstr "Применить это действие ко всему поддереву или только к его основе?"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
-msgstr ""
+msgstr "Subtree"
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
-msgstr ""
+msgstr "Только к основе"
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
-msgstr ""
+msgstr "Применить роль"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
-msgstr ""
+msgstr "Для всех пользователей"
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
-msgstr ""
+msgstr "Применить этот ACL для всех пользователй LDAP"
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
-msgstr ""
+msgstr "Пользователи или группы, которым будет назначена эта роль."
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
-msgstr ""
+msgstr "Dn"
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
-msgstr ""
+msgstr "Назначения ACL"
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
+msgstr "Управление назначением ACL ролей пользователям"
 
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
-msgstr ""
+msgstr "Заблокировать пользователей"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
+msgstr "Разблокировать пользователей"
 
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
-msgstr ""
+msgstr "Пользователи"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
-msgstr ""
+msgstr "Управление пользователями"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
+msgstr "Управление аккаунтами пользователей и их свойствами"
 
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
+"Парольный метод \"%s\" не поддерживает блокирование. Аккаунт \"%s\" не будет"
+" заблокирован!"
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
+#: plugins/admin/aclrole/class_aclRole.inc:38
+#, php-format
+msgid "Contains settings for these objects: %s"
+msgstr "Содержит настройки для этих объектов: %s"
+
+#: plugins/admin/aclrole/class_aclRole.inc:76
+msgid "Access control roles"
+msgstr "Роли контроля доступа"
+
+#: plugins/admin/aclrole/class_aclRole.inc:80
+msgid "ACL role"
+msgstr "ACL роли"
+
+#: plugins/admin/aclrole/class_aclRole.inc:98
+msgid "A name for this role"
+msgstr "Имя роли"
+
+#: plugins/admin/aclrole/class_aclRole.inc:102
+msgid "Short description of this role"
+msgstr "Короткое описание для этой роли"
+
+#: plugins/admin/aclrole/class_aclRole.inc:108
+msgid "ACLs"
+msgstr "ACLs"
+
+#: plugins/admin/aclrole/class_aclRole.inc:112
+msgid "ACLs which are part of this group"
+msgstr "ACLs, которые являются частью этой группы"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+msgid "No ACL settings for this category"
+msgstr "Нет ACL настроек для этой категории"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
+#, php-format
+msgid "ACL for these objects: %s"
+msgstr "ACL для объектов: %s"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit category ACL"
+msgstr "Редактировать категорию ACL"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
+msgid "Reset category ACL"
+msgstr "Сбросить категорию ACL"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
+msgid "List of available ACL categories"
+msgstr "Список доступных ACL категорий"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
+msgid "All objects in current subtree"
+msgstr "Все объекты в текущем поддереве"
+
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
+#, php-format
+msgid "Edit ACL for \"%s\""
+msgstr "Редактировать ACL для \"%s\""
+
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr "Управление ACL ролей"
+
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr "Управление ACL ролей"
+
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:38
-#, php-format
-msgid "Contains settings for these objects: %s"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
-msgid "Access control roles"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
-msgid "ACL role"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
-msgid "A name for this role"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
-msgid "Short description of this role"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
-msgid "ACLs"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
-msgid "ACLs which are part of this group"
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
-msgid "No ACL settings for this category"
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
-#, php-format
-msgid "ACL for these objects: %s"
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit category ACL"
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-msgid "Reset category ACL"
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
-msgid "List of available ACL categories"
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
-msgid "All objects in current subtree"
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Включить снапшоты"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
 msgstr ""
+"Это позволяет сохранять определенное состояние записей и позже его "
+"восстанавливать."
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
-#, php-format
-msgid "Edit ACL for \"%s\""
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Базовая запись снапшотов"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
-msgstr ""
+msgstr "Настройки плагинов"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
-msgstr ""
+msgstr "FusionDirectory настройка плагинов"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
-msgstr ""
+msgstr "Объединения"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
-msgstr ""
+msgstr "RDN групп"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
-msgstr ""
+msgstr "Ветка в которой объекты групп будут храниться"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
-msgstr ""
+msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
-msgstr ""
+msgstr "Настройка информационной панели"
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
-msgstr ""
+msgstr "Настройка плагина информационной панели FusionDirectory"
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
-msgstr ""
+msgstr "Название схемы для информационной панели"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
-msgstr ""
+msgstr "Количество цифр"
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
-msgstr ""
+msgstr "Количество цифр используемых после префикса"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
-msgstr ""
+msgstr "Префиксы"
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
+"Префексы, которые будут использоваться для идентификаторов компьютеров"
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
-msgstr ""
+msgstr "Информационная панель - пользователи с истекшим сроком действия"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
-msgstr ""
+msgstr "Количество дней"
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
-msgstr ""
+msgstr "Плагины"
 
 #: plugins/config/class_pluginsConfigInLdap.inc:29
 msgid "Configuration for plugins"
-msgstr ""
+msgstr "Настройки плагинов"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
-msgstr ""
+msgstr "Настройки для функции восстановления пароля"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
-msgstr ""
+msgstr "Настройки восстановления пароля"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
-msgstr ""
+msgstr "Включить восстановление пароля"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
-msgstr ""
+msgstr "Адрес электронной почты отправителя"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
-msgstr ""
+msgstr "Адрес электронной почты с которого будут отправляться письма"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
-msgstr ""
+msgstr "Ссылка действительна (минуты)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
+"Количество минут до истечения срока годности ссылки для восстановление "
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
-msgstr ""
+msgstr "Соль для токенов"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
+"Просто мера безопасности, вы можете вставить сюда все что угодно, даже "
+"случайные символы"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
-msgstr ""
+msgstr "Разрешить исользование альтернативных адресов"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
-msgstr ""
+msgstr "Атрибут для входа"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
-msgstr ""
+msgstr "Первое письмо"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
-msgstr ""
+msgstr "Тема"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
-msgstr ""
+msgstr "Тема первого письма"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
-msgstr ""
+msgstr "[FusionDirectory] Ссылка для восстановления пароля"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
-msgstr ""
+msgstr "Тело (вначале логин %s, вторая ссылка)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
+"Тело первого письма, отправляется когда пользователь запрашивает новый "
+"пароль. Использует %s логин и ссылку для восстановления."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2794,31 +2974,33 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
-msgstr ""
+msgstr "Второе письмо"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
-msgstr ""
+msgstr "Тема второго письма"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
-msgstr ""
+msgstr "[FusionDirectory] Пароль восстановлен успешно"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
-msgstr ""
+msgstr "Тело (%s логин)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
+"Тело второго письма, отправляется, чтобы подтвердить, что пароль был  "
+"изменен. Использует %s логин пользователя."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2826,728 +3008,966 @@ msgid ""
 "Your password has been changed.\n"
 "Your login is still %s."
 msgstr ""
+"Привет,\n"
+"\n"
+"Ваш пароль был изменен.\n"
+"Ваш логин по прежнему %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
-msgid "Configuration"
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
-msgid "FusionDirectory configuration"
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "Когда вызывать эту команду"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Команда, которая будет вызвана"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
+msgid "Configuration"
+msgstr "Настройки"
+
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
+msgid "FusionDirectory configuration"
+msgstr "Настройки FusionDirectory"
+
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
-msgstr ""
+msgstr "Внешний вид"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
-msgstr ""
+msgstr "Язык"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
+"Язык приложения. Если 'автоматически' или отсутствует, тогда будет спрошено "
+"у браузера какой использовать. Эта настройка может быть переопределена "
+"каждым пользователем."
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
-msgstr ""
+msgstr "Тема"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
-msgstr ""
+msgstr "Тема, которая будет использоваться"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
-msgstr ""
+msgstr "Часовой пояс"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
-msgstr ""
+msgstr "Часовой пояс, который будет использован"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
-msgstr ""
+msgstr "Основные настройки"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
-msgstr ""
+msgstr "Ограничение размера LDAP"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
+"Определяет количество записей, которые можно получить из LDAP по умолчанию."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
-msgstr ""
+msgstr "Блокировка редактирования"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
+"Проверьте, не была ли редактируемая вами запись изменена вне FusionDirectory"
+" в это же время."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
-msgstr ""
+msgstr "Включить логирование"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
-msgstr ""
+msgstr "Регистрация событий на стороне FusionDirectory"
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
+msgstr "Включить проверку схемы при входе."
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
+msgstr "Настройки пароля"
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
-msgid "Password default hash"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
+msgid "Password default hash"
+msgstr "Метод хеширования пароля по умолчанию"
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
-msgstr ""
+msgstr "Используемый по умолчанию метод хеширования пароля"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
-msgstr ""
+msgstr "Заставлять использовать хеш по умолчанию"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
-msgstr ""
+msgstr "Принуждать использовать метод хеширования пароля по умолчанию"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
-msgstr ""
+msgstr "Минимальная длина пароля"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
-msgstr ""
+msgstr "Минимальная длинна пароля пользователя"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
-msgstr ""
+msgstr "Минимальная разница в паролях"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
-msgstr ""
+msgstr "Минимальное количество отличных символов от последнего пароля"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
-msgstr ""
+msgstr "Использовать учетные записи с истекающим сроком действия"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
-msgstr ""
+msgstr "Вход в систему и сессии"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
+"Какой LDAP атрибут необходимо использовать в качестве логина при входе в "
+"систему."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
-msgstr ""
+msgstr "Принудительно шифровать соединения"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
+"Принудительно использовать шифрованный доступ (https) к веб интерфейсу, "
+"включив проверку безопасности PHP."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
-msgstr ""
+msgstr "Предупреждать если сеанс не зашифрован"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
+"будут отображаться предупреждения для пользователя, когда http будет "
+"использоваться вместо https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
-msgstr ""
+msgstr "Время жизни сессии"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
-msgstr ""
+msgstr "SSL"
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
-msgstr ""
+msgstr "Путь к сертификату CA"
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
+#: plugins/config/class_configInLdap.inc:217
+msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host"
+msgstr "Хост"
+
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port"
+msgstr "Порт"
+
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
-msgid "Path to the CA certificate of the CAS server"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host of the CAS server"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port the CAS server is listening on"
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context"
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context to be used"
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
-msgid "People and group storage"
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:251
+msgid "People and group storage"
+msgstr "Местоположение пользователей и групп"
+
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
-msgstr ""
+msgstr "DN атрибут пользователя"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
-msgid "Strict naming policy"
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
-msgid "Enables strict checking of user and group names"
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:271
+msgid "Strict naming policy"
+msgstr "Политика строго присваивания имен"
+
+#: plugins/config/class_configInLdap.inc:272
+msgid "Enables strict checking of user and group names"
+msgstr "Включить строгую проверку имен для пользователей и групп"
+
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
-msgstr ""
+msgstr " RDN пользователей"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
-msgstr ""
+msgstr "Ветка где пользователели хранятся."
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
-msgstr ""
+msgstr "RDN для ACL ролей"
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
-msgstr ""
+msgstr "Ветка в которой хранятся ACL ролей."
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
-msgid "Debugging"
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:306
+msgid "Debugging"
+msgstr "Отладка"
+
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
-msgstr ""
+msgstr "Максимальное время LDAP запроса"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
+"Остановить работу с LDAP если нет ответа за определенное количество секунд."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
-msgstr ""
+msgstr "Лог статистики обращений к LDAP"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
+"Отслеживать продолжительность обращений к LDAP в syslog. Это может помочь "
+"найти проблемы в индексировании и плохих фильтров поиска."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
-msgstr ""
+msgstr "Уровень отладки"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
+msgstr "Отображать следующую информацию при каждой загрузке странице."
+
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
-msgid "Miscellaneous"
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:343
+msgid "Miscellaneous"
+msgstr "Разное"
+
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
-msgstr ""
+msgstr "Показать краткую информацию о списках"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
+"Определяет, будет ли внизу каждого списка отображена строка состояния с "
+"краткой информацией о типе и количестве элементов списка."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
-msgstr ""
+msgstr "Показать вкладку ACL для всех объектов."
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
-msgstr ""
+msgstr "Доступные категории подразделений"
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
-msgstr ""
+msgstr "Доступные категории подразделений в раскрывающемся списке"
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Автоматически"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr "Группа %s"
+
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr "Роль %s"
+
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr "Информационная панель"
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr "Статистика"
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
-msgstr ""
+msgstr "Статистика о пользователях"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
-msgstr ""
+msgstr "Статистика по пользователям"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
-msgstr ""
+msgstr "Статистика по группам"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
-msgstr ""
+msgstr "Просроченные учетные записи"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Имя пользователя"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
-msgstr ""
+msgstr "Дата окончания действия"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
-msgstr ""
+msgstr "Email"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
+msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
+msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+msgid "Information about your FusionDirectory subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
+msgid "Information text for subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+msgid "Subscription name"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
+msgid "Id"
+msgstr "Ид"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
+msgid "Subscription id"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Subscription type"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
+msgid "Contract"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
+msgid "Contract reference"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
+msgid "Start date"
+msgstr "Дата начала"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
+msgid "Start date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
+msgid "End date"
+msgstr "Дата окончания"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
+msgid "End date of this subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
+msgid "Import your subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+msgid "Information text for expired subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
+msgid "Import subscription"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
+msgid "Import"
+msgstr "Импортировать"
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
+#, php-format
+msgid ""
+"You do not have a valid subscription for this instance of FusionDirectory.\n"
+"Please visit %s for a list of available options."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
+#, php-format
+msgid ""
+"Your subscription is expired for this instance of FusionDirectory.\n"
+"Please visit %s to renew it."
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:177
+msgid "No data. Did you forgot to upload a file?"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
+msgid "Failed to parse imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
+#, php-format
+msgid "Missing section \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
+#, php-format
+msgid "Missing attribute \"%s\" in imported file"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
-msgid "Subscription"
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
-msgid "Subscription information"
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
-msgid "Information about your FusionDirectory subscription"
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
-msgid "Information text for subscription"
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-msgid "Subscription name"
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
-msgid "Id"
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
-msgid "Subscription id"
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Subscription type"
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
-msgid "Contract"
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
-msgid "Contract reference"
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
-msgid "Start date"
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
-msgid "Start date of this subscription"
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
-msgid "End date"
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
-msgid "End date of this subscription"
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
-msgid "Import your subscription"
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
-msgid "Information text for expired subscription"
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
-msgid "Import subscription"
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
-msgid "Import"
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
-#, php-format
-msgid ""
-"You do not have a valid subscription for this instance of FusionDirectory.\n"
-"Please visit %s for a list of available options."
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
-#, php-format
-msgid ""
-"Your subscription is expired for this instance of FusionDirectory.\n"
-"Please visit %s to renew it."
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
-msgid "No data. Did you forgot to upload a file?"
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
-msgid "Failed to parse imported file"
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
-#, php-format
-msgid "Missing section \"%s\" in imported file"
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
-#, php-format
-msgid "Missing attribute \"%s\" in imported file"
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:34
@@ -3556,313 +3976,384 @@ msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
 #: plugins/personal/roles/class_userRoles.inc:64
 msgid "Roles membership"
+msgstr "Принадлежит ролям"
+
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
-msgid "Password method"
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
-msgid "Password hash method to use"
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
+msgid "Password method"
+msgstr "Парольный метод"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
+msgid "Password hash method to use"
+msgstr "Применяемый метод для хэша пароля"
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
 #: ihtml/themes/breezy/login.tpl.c:20 ihtml/themes/breezy/login.tpl.c:23
 msgid "Password"
-msgstr ""
+msgstr "Пароль"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
-msgstr ""
+msgstr "Пароль (Оставьте пустым, если не хотите его менять)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
-msgstr ""
+msgstr "Пароль еще раз"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Пользователь"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr "Информация об учетной записи пользователя"
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr "Учетная запись пользователя"
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
-msgstr ""
+msgstr "Личная информация"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
-msgstr ""
+msgstr "Фамилия"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
-msgstr ""
+msgstr "Фамилия пользователя"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
-msgstr ""
+msgstr "Имя"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
+msgstr "Имя пользователя"
+
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
-msgid "Short description of the user"
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:108
+msgid "Short description of the user"
+msgstr "Краткое описание пользователя"
+
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
-msgstr ""
+msgstr "Фотография"
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
-msgstr ""
+msgstr "Аватар пользователя"
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
-msgstr ""
+msgstr "Рабочая контактная информация"
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
-msgstr ""
+msgstr "Рабочий почтовый адрес"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
-msgstr ""
+msgstr "Номер комнаты"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
-msgstr ""
+msgstr "Номер комнаты"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
-msgstr ""
+msgstr "Рабочий номер телефона"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
-msgstr ""
+msgstr "Мобильный"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
-msgstr ""
+msgstr "Рабочий номер мобильного телефона"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
-msgstr ""
+msgstr "Пейджер"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
-msgstr ""
+msgstr "Рабочий номер пейджера"
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
-msgstr ""
+msgstr "Рабочий номер факса"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
-msgstr ""
+msgstr "Домашняя страница"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
-msgstr ""
+msgstr "Персональная домашняя страница"
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
-msgstr ""
+msgstr "Информация об учетной записи"
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
-msgstr ""
+msgstr "Логин этого пользователя"
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
-msgstr ""
+msgstr "Предпочитаемый язык"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
-msgstr ""
+msgstr "Пароль пользователя"
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
-msgstr ""
+msgstr "Личная контактная информация"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
-msgstr ""
+msgstr "Отображаемое имя"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
-msgstr ""
+msgstr "Домашний адрес"
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
-msgstr ""
+msgstr "Домашний почтовый адрес"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
-msgstr ""
+msgstr "Личный телефон"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
-msgstr ""
+msgstr "Домашний телефон"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
-msgstr ""
+msgstr "Информация об организации"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
-msgstr ""
+msgstr "Заголовок"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
-msgstr ""
+msgstr "Номер подразделения"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
-msgstr ""
+msgstr "Номер отдела"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
-msgstr ""
+msgstr "Номер работника"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
-msgstr ""
+msgstr "Номер работника"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
-msgstr ""
+msgstr "Форма трудоустройства"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
-msgstr ""
+msgstr "Почтовый индекс"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
-msgstr ""
+msgstr "Вам не разрешено изменять свой пароль"
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
-msgstr ""
+msgstr "Вы должны подождать %d секунд перед повторным изменением пароля"
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
-msgstr ""
+msgstr "Пароль присутствует в истории старых паролей"
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
-msgstr ""
+msgstr "Для продолжения укажите свой текущий пароль."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
-msgstr ""
+msgstr "Новый пароль"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
-msgstr ""
+msgstr "Новый и текущий пароли слишком похожи."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
-msgstr ""
+msgstr "Пароль содержит символы Unicode, которые могут проблемы!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
-msgstr ""
+msgstr "Ссылки"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
-msgstr ""
+msgstr "Добро пожаловать %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
-msgstr ""
+msgstr "Завершено"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
-msgstr ""
+msgstr "Далее"
 
 #: setup/class_setupStepWelcome.inc:30 setup/class_setupStepWelcome.inc:50
 #: setup/class_setupStepFinish.inc:30
 msgid "Welcome"
-msgstr ""
+msgstr "Добро пожаловать"
 
 #: setup/class_setupStepWelcome.inc:51
 msgid "Welcome to FusionDirectory setup wizard"
-msgstr ""
+msgstr "Добро пожаловать в мастер настройки FusionDirectory!"
 
 #: setup/class_setupStepWelcome.inc:52
 msgid "The welcome message"
-msgstr ""
+msgstr "Сообщение приветствия"
 
 #: setup/class_setupStepLdap.inc:36
 msgid "LDAP connection"
@@ -3870,7 +4361,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:39
 msgid "Location name"
-msgstr ""
+msgstr "Местоположение"
 
 #: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
@@ -3878,7 +4369,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:44
 msgid "Connection URI"
-msgstr ""
+msgstr "URI подключения"
 
 #: setup/class_setupStepLdap.inc:44
 msgid "URI to contact the LDAP server. Usually starts with ldap://"
@@ -3886,7 +4377,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:49
 msgid "TLS connection"
-msgstr ""
+msgstr "TLS соединение"
 
 #: setup/class_setupStepLdap.inc:49
 msgid "Should TLS be used to connect to this LDAP server?"
@@ -3899,7 +4390,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:59
 msgid "Authentication"
-msgstr ""
+msgstr "Аутентификация"
 
 #: setup/class_setupStepLdap.inc:62
 msgid ""
@@ -3909,23 +4400,19 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
-msgstr ""
+msgstr "DN администратора"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
-msgstr ""
+msgstr "Пароль администратора"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
-msgstr ""
+msgstr "Текущее состояние"
 
 #: setup/class_setupStepLdap.inc:89
 msgid "Result of last attempt at checking LDAP binding and basic schemas"
@@ -3933,58 +4420,60 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:110
 msgid "LDAP setup"
-msgstr ""
+msgstr "Настройки LDAP"
 
 #: setup/class_setupStepLdap.inc:111
 msgid "LDAP connection setup"
-msgstr ""
+msgstr "Настройки LDAP соединения"
 
 #: setup/class_setupStepLdap.inc:112
 msgid ""
 "This dialog performs the basic configuration of the LDAP connectivity for "
 "FusionDirectory."
 msgstr ""
+"Этот диалог выполняет основную настройку LDAP соединения для "
+"FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
-msgstr ""
+msgstr "Сбой при анонимном привязывании к серверу '%s'!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
-msgstr ""
+msgstr "Сбой при привязки под пользователем '%s'!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
-msgstr ""
+msgstr "Retry"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
-msgstr ""
+msgstr "Анонимное подключение (bind) а к серверу '%s' удалась."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
-msgstr ""
+msgstr "Refresh"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
-msgstr ""
+msgstr "Пожалуйста укажите пользователя и пароль!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
-msgstr ""
+msgstr "Привязка под пользователем '%s' к серверу '%s' удалась!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -3994,432 +4483,482 @@ msgstr ""
 
 #: setup/class_setupStepChecks.inc:48 setup/class_setupStepChecks.inc:49
 msgid "Installation check"
-msgstr ""
+msgstr "Контроль за установкой"
 
 #: setup/class_setupStepChecks.inc:50
 msgid "Basic checks for PHP compatibility and extensions"
-msgstr ""
+msgstr "Основная проверка совместимости PHP и расширений"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
-msgstr ""
+msgstr "Проверка PHP версии"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
-msgstr ""
+msgstr "PHP должен быть %s версии или старше"
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
-msgstr ""
+msgstr "Пожалуйста обновитесь до поддерживаемой версии."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
-msgstr ""
+msgstr "FusionDirectory требуется модуль для связи с вашим LDAP сервером."
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
-msgstr ""
+msgstr "FusionDirectory требуется модуль для интернационализации интерфейса."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
+"FusionDirectory требуется этот модуль для взаимодействия с различными типами"
+" серверов и протоколов."
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
-msgstr ""
+msgstr "FusionDirectory требуется модуль для интеграции с samba."
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
-msgstr ""
+msgstr "FusionDirectory требуется модуль для связи с IMAP сервером."
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
-msgstr ""
+msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
-msgstr ""
+msgstr "FusionDirectory требуется модуль для обработки юникод строк."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
-msgstr ""
+msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
-msgstr ""
+msgstr "FusionDirectory требуется расширение для обработки изображений."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
-msgstr ""
+msgstr "модуль сжатия"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
-msgstr ""
+msgstr "FusionDirectory требуется расширение для обработки снапшотов."
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
+"Это значение используется PHP сборщиком мусора, чтобы удалять старые сессии."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
+"Найдите 'session.gc_maxlifetime' в вашем php.ini и установите в 86400 или "
+"больше."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
-msgstr ""
+msgstr "Выкл"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
+"Чтобы во время использования FusionDirectory не возникло ни каких проблем, "
+"опция 'session.auto_start' должна быть установлена в 'Off' в вашем php.ini."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
+"Найдите 'session.auto_start' в вашем php.ini и установите его в 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
+"FusionDirectory нужно не меньше 128МБ памяти. Настройка этого предела ниже "
+"может привести к ошибкам, которые не воспроизводятся! Увеличьте его в "
+"большинстве случаев."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
+"Найдите 'memory_limit' в вашем php.ini и установите его в '128M' или больше."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
-msgstr ""
+msgstr "Найдите 'implicit_flush' в вашем php.ini и установите его в 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
-msgstr ""
+msgstr "Время исполнения, должно быть не менее 30 секунд."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
+"Найдите 'max_execution_time' в вашем php.ini и установите его в значение "
+"'30' или больше."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
+"Повысить безопасность сервера установив опцию expose_php в 'off'. PHP не "
+"будет отправлять ни какую информацию о сервере, запускающему, в этом случае."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
-msgstr ""
+msgstr "Найдите 'expose_php' в вашем php.ini и установите в 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
-msgstr ""
+msgstr "Перемещение"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
-msgstr ""
+msgstr "Инспекция LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
-msgstr ""
+msgstr "Анализ вашего текущего LDAP для совместимости с FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
-msgstr ""
+msgstr "Дать полные права на пользователей в выбранной ветке"
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
-msgstr ""
+msgstr "Проверка прав для LDAP базы"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
-msgstr ""
+msgstr "Проверка на невидимых пользователей"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
-msgstr ""
+msgstr "Проверка для супер администратора"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
-msgstr ""
+msgstr "Проверка на пользователей за пределами дерева людей"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
-msgstr ""
+msgstr "Проверка на группы за пределами дерева для них"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
+msgstr "Проверка на невидимые подразделения"
+
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
-msgstr ""
+msgstr "LDAP запрос не удался"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
-msgstr ""
+msgstr "Ошибка"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
-msgstr ""
+msgstr "Пропущен объектный класс FusionDirectory '%s'!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
-msgstr ""
+msgstr "Пожалуйста проверьте вашу установку."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
-msgstr ""
+msgstr "Группы"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
-msgstr ""
+msgstr "Роли"
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
-msgstr ""
+msgstr "ACL ролей по умолчанию не вставлены"
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
-msgstr ""
+msgstr "Некоторые ACL ролей по умолчанию пропущены"
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
+msgstr "ACL ролей по умолчанию вставлен"
+
+#: setup/class_setupStepMigrate.inc:1009
+#, php-format
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1029
+#, php-format
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
+msgid "Move users into configured user tree"
+msgstr "Переместить пользователей в настроенное дерево пользователей"
+
+#: setup/class_setupStepMigrate.inc:1159
+msgid "Cannot move entries to the requested department!"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
+msgstr "Следующие ссылки будут обновлены"
+
+#: setup/class_setupStepMigrate.inc:1204
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1029
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
-msgid "Move users into configured user tree"
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
+msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
-msgid "Cannot move entries to the requested department!"
+#: setup/class_setupStepMigrate.inc:1256
+#, php-format
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1336
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
-msgid "Move groups into configured groups tree"
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
 msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
-#, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
-msgstr ""
-
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
 msgid "Finish"
-msgstr ""
+msgstr "Готово"
 
 #: setup/class_setupStepFinish.inc:41
 msgid "Finish - write the configuration file"
-msgstr ""
+msgstr "Завершение - запишите конфигурационный файл"
 
 #: setup/class_setupStepFinish.inc:42
 msgid "Write configuration file"
-msgstr ""
+msgstr "Запись конфигурационного файла"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
+"Конфигурационный файл доступе только для чтения. Пожалуйста обновите права "
+"на файл."
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
-msgstr ""
+msgstr "Конфигурационный файл не читается или не существует вовсе."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
-msgstr ""
+msgstr "Настройка языка"
 
 #: setup/class_setupStepLanguage.inc:61
 msgid "This step allows you to select your preferred language."
-msgstr ""
+msgstr "Этот шаг позволяет выбрать предпочитаемый вами язык."
 
 #: setup/class_setupStepLanguage.inc:62
 msgid ""
@@ -4427,218 +4966,59 @@ msgid ""
 "\"automatic\" will use the language requested by the browser. This setting "
 "can be overriden per user."
 msgstr ""
+"В этом месте вы можете выбрать язык по умолчанию для всего сайта. При выборе"
+" \"автоматически\" будет и использоваться язык запрошенный браузером. Эта "
+"настройка может быть переопределена для каждого пользователя."
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
-msgstr ""
+msgstr "Изменить пароль"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
+"Срок действия вашего пароля почти закончился, пожалуйста измените его!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
-msgstr ""
+msgstr "Ваш пароль истек, пожалуйста установите новый."
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
+"Критическая ошибка: не все POST переменные переданы в PHP - пожалуйста "
+"сообщите вашему системному администратору!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
-msgstr ""
+msgstr "Время вашей сессии истекло!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4653,27 +5033,15 @@ msgstr ""
 
 #: plugins/admin/acl/remove.tpl.c:8
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
+msgstr "Нажмите 'Удалить', чтобы продолжить или 'Отменить', чтобы прервать."
 
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Показать/скрыть дополнительные настройки"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Объект целиком"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4684,7 +5052,7 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4702,11 +5070,11 @@ msgstr[3] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:17
 msgid "There is no account expiring in the next %1 days"
-msgstr ""
+msgstr "В ближайшие %1 дней нет учетной записи, срок работы которой истечет."
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:20
 msgid "Next expired accounts"
-msgstr ""
+msgstr "Следующая просроченная учетная запись"
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:2
 msgid "There is 1 group:"
@@ -4730,7 +5098,7 @@ msgstr[3] ""
 
 #: plugins/addons/dashboard/groups_stats.tpl.c:11
 msgid "There is no %1 group"
-msgstr ""
+msgstr "Ни у кого нету %1 группы"
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:2
 #: plugins/addons/dashboard/users_stats.tpl.c:2
@@ -4742,8 +5110,8 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
@@ -4758,7 +5126,7 @@ msgstr[2] ""
 msgstr[3] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4766,7 +5134,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4775,7 +5143,7 @@ msgstr[3] ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:11
 msgid "None of them have a %1 account"
-msgstr ""
+msgstr "Ни у одногр из них нету %1 аккаунта"
 
 #: plugins/generic/references/contents.tpl.c:2
 msgid "<strong>%1</strong> references our <strong>%3</strong>"
@@ -4789,41 +5157,45 @@ msgstr ""
 
 #: plugins/generic/references/contents.tpl.c:8
 msgid "This object has no relationship to other objects."
-msgstr ""
+msgstr "Данный объект не имеет ссылок на другие объекты"
 
 #: setup/setup_migrate_adminAccount.tpl.c:2
 msgid "Create a new FusionDirectory administrator account"
-msgstr ""
+msgstr "Создать новую учетную запись администратора FusionDirectory"
 
 #: setup/setup_migrate_adminAccount.tpl.c:5
 msgid ""
 "This dialog will automatically add a new super administrator to your LDAP "
 "tree."
 msgstr ""
+"Этот диалог автоматически добавит нового суперадминистратора в ваше дерево "
+"LDAP,"
 
 #: setup/setup_migrate_adminAccount.tpl.c:11
 msgid "User ID"
-msgstr ""
+msgstr "Идентификатор пользователя"
 
 #: setup/setup_migrate_adminAccount.tpl.c:17
 msgid "Password (again)"
-msgstr ""
+msgstr "Пароль (еще раз)"
 
 #: setup/setup_migrate_baseOC.tpl.c:2
 msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
-msgstr ""
+msgstr "После миграции"
 
 #: setup/setup_migrate_baseOC.tpl.c:14
 msgid "Close"
-msgstr ""
+msgstr "Закрыть"
 
 #: setup/setup_checks.tpl.c:2
 msgid "show information"
@@ -4832,63 +5204,66 @@ msgstr ""
 #: setup/setup_checks.tpl.c:14
 msgid "FusionDirectory will NOT run without fixing this."
 msgstr ""
+"FusionDirectory НЕ сможет продолжить работу без исправления этой ошибки."
 
 #: setup/setup_checks.tpl.c:17
 msgid "FusionDirectory will run without fixing this."
-msgstr ""
+msgstr "FusionDirectory сможет продолжить работу без исправления этой ошибки."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
-msgstr ""
+msgstr "Что мастер делает?"
 
 #: setup/setup_welcome.tpl.c:8
 msgid "Create a basic, single site configuration"
-msgstr ""
+msgstr "Создает базовую конфигурацию для одного узла"
 
 #: setup/setup_welcome.tpl.c:11
 msgid "Tries to find problems within your PHP and LDAP setup"
-msgstr ""
+msgstr "Пробую найти проблемы с настройками PHP и LDAP"
 
 #: setup/setup_welcome.tpl.c:14
 msgid "Let you choose from a set of basic and advanced configuration switches"
 msgstr ""
+"Позволяет вам выбрать из набора основных и расширенных переключателей "
+"конфигурации"
 
 #: setup/setup_welcome.tpl.c:17
 msgid "Guided migration of existing LDAP trees"
-msgstr ""
+msgstr "Управляет переносом существующих LDAP деревьев"
 
 #: setup/setup_welcome.tpl.c:20
 msgid "What will the wizard NOT do for you?"
-msgstr ""
+msgstr "Что этот мастер НЕ делает?"
 
 #: setup/setup_welcome.tpl.c:23
 msgid "Find every possible configuration error"
-msgstr ""
+msgstr "Найти все возможные ошибки конфигурации"
 
 #: setup/setup_welcome.tpl.c:26
 msgid "Migrate every possible LDAP setup - create backup dumps!"
-msgstr ""
+msgstr "Перенести все возможные настройки LDAP - сделайте резервную копию!"
 
 #: setup/setup_welcome.tpl.c:29
 msgid "To continue:"
-msgstr ""
+msgstr "Для продолжения:"
 
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4897,14 +5272,18 @@ msgid ""
 " that may occur when migration to FusionDirectory base LDAP administration. "
 "You may want to fix the problems below, in order to provide smooth services."
 msgstr ""
+"Во время осмотра LDAP мы собираемся проанализировать некоторые типичные "
+"ошибки, возникающие в процессе переноса FusionDirectory LDAP "
+"администратором. Вы можете исправить найденные проблемы, чтобы обеспечить "
+"стабильную работу служб."
 
 #: setup/setup_migrate.tpl.c:5
 msgid "Check again"
-msgstr ""
+msgstr "Проверить снова"
 
 #: setup/setup_finish.tpl.c:2
 msgid "Create your configuration file"
-msgstr ""
+msgstr "Создайте конфигурационный файл"
 
 #: setup/setup_finish.tpl.c:5
 msgid "Run %1 to put the correct right on fusiondirectory.conf"
@@ -4912,17 +5291,19 @@ msgstr ""
 
 #: setup/setup_finish.tpl.c:8
 msgid "Download configuration"
-msgstr ""
+msgstr "Скачать конфигурацию"
 
 #: setup/setup_finish.tpl.c:11
 msgid "Status: "
-msgstr ""
+msgstr "Состояние:"
 
 #: setup/setup_migrate_accounts.tpl.c:2
 msgid ""
 "This dialog allows moving a couple of entries to the configured tree. Doing "
 "this may straighten your LDAP service."
 msgstr ""
+"Этот диалог позволяет переместить несколько записей в дереве конфигурации. "
+"Эти действия могут привести в порядок ваш LDAP сервер."
 
 #: setup/setup_migrate_accounts.tpl.c:5
 msgid ""
@@ -4933,7 +5314,7 @@ msgstr ""
 
 #: setup/setup_migrate_accounts.tpl.c:8
 msgid "Move selected entries into this tree"
-msgstr ""
+msgstr "Переместить выделенные записи внутрь дерева"
 
 #: setup/setup_migrate_accounts.tpl.c:11
 msgid ""
@@ -4941,20 +5322,30 @@ msgid ""
 " If you want to change this for a couple of entries only, just select them "
 "and use the 'Migrate' button below."
 msgstr ""
+"Перечисленные записи сейчас не видны в интерфейсе FusionDirectory. Если вы "
+"хотите изменить это только для нескольких записей, просто выделите их и "
+"используйте кнопку 'Переместить' ниже."
 
 #: setup/setup_migrate_accounts.tpl.c:14
 msgid ""
 "If you want to know what will be done when migrating the selected entries, "
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
+"Если вы хотите знать, что будет сделано при переселении выбранных записей, "
+"воспользуйтесь кнопкой 'Показать изменения', чтобы посмотреть на LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Выбрать все"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
-msgstr ""
+msgstr "Показать изменения"
 
 #: ihtml/themes/legacy/recovery.tpl.c:2 ihtml/themes/breezy/recovery.tpl.c:2
 msgid "Lost password"
-msgstr ""
+msgstr "Забыли пароль"
 
 #: ihtml/themes/legacy/recovery.tpl.c:5 ihtml/themes/breezy/recovery.tpl.c:5
 msgid "Information to reset password for %1 has been sent to email address %2"
@@ -4977,7 +5368,7 @@ msgstr ""
 #: ihtml/themes/breezy/recovery.tpl.c:20 ihtml/themes/breezy/login.tpl.c:8
 #: ihtml/themes/breezy/login.tpl.c:11 ihtml/themes/breezy/login.tpl.c:14
 msgid "Username"
-msgstr ""
+msgstr "Имя пользователя"
 
 #: ihtml/themes/legacy/recovery.tpl.c:32 ihtml/themes/legacy/recovery.tpl.c:35
 #: ihtml/themes/legacy/recovery.tpl.c:38 ihtml/themes/breezy/recovery.tpl.c:32
@@ -4987,7 +5378,7 @@ msgstr ""
 
 #: ihtml/themes/legacy/recovery.tpl.c:41 ihtml/themes/breezy/recovery.tpl.c:41
 msgid "Password strength"
-msgstr ""
+msgstr "Надежность пароля"
 
 #: ihtml/themes/legacy/recovery.tpl.c:44 ihtml/themes/legacy/recovery.tpl.c:47
 #: ihtml/themes/legacy/recovery.tpl.c:50 ihtml/themes/legacy/recovery.tpl.c:86
@@ -4999,28 +5390,28 @@ msgstr ""
 #: ihtml/themes/breezy/recovery.tpl.c:92 ihtml/themes/breezy/login.tpl.c:29
 #: ihtml/themes/breezy/login.tpl.c:32 ihtml/themes/breezy/login.tpl.c:35
 msgid "Directory"
-msgstr ""
+msgstr "Каталог"
 
 #: ihtml/themes/legacy/recovery.tpl.c:53 ihtml/themes/legacy/recovery.tpl.c:98
 #: ihtml/themes/breezy/recovery.tpl.c:53 ihtml/themes/breezy/recovery.tpl.c:98
 msgid "Change"
-msgstr ""
+msgstr "Изменить"
 
 #: ihtml/themes/legacy/recovery.tpl.c:56
 #: ihtml/themes/legacy/recovery.tpl.c:101
 #: ihtml/themes/breezy/recovery.tpl.c:56
 #: ihtml/themes/breezy/recovery.tpl.c:101
 msgid "Click here to change your password"
-msgstr ""
+msgstr "Нажмите, чтобы сменить пароль"
 
 #: ihtml/themes/legacy/recovery.tpl.c:59 ihtml/themes/legacy/recovery.tpl.c:62
 #: ihtml/themes/breezy/recovery.tpl.c:59 ihtml/themes/breezy/recovery.tpl.c:62
 msgid "Success"
-msgstr ""
+msgstr "Успешно"
 
 #: ihtml/themes/legacy/recovery.tpl.c:65 ihtml/themes/breezy/recovery.tpl.c:65
 msgid "Your password has been changed successfully."
-msgstr ""
+msgstr "Ваш пароль был успешно изменен."
 
 #: ihtml/themes/legacy/recovery.tpl.c:68 ihtml/themes/legacy/recovery.tpl.c:95
 #: ihtml/themes/breezy/recovery.tpl.c:68 ihtml/themes/breezy/recovery.tpl.c:95
@@ -5032,6 +5423,8 @@ msgid ""
 "Enter your current e-mail address in the field below and press the 'Change' "
 "button."
 msgstr ""
+"Введите ваш текущий адрес электронной почты в нижние поле и нажмите кнопку "
+"'Изменить'."
 
 #: ihtml/themes/legacy/recovery.tpl.c:74 ihtml/themes/breezy/recovery.tpl.c:74
 msgid ""
@@ -5045,26 +5438,44 @@ msgid ""
 "Password recovery is not activated. If you have lost your password, please "
 "contact your administrator"
 msgstr ""
+"Функция восстановления пароля не активирована. Если вы потеряли пароль, "
+"обратитесь к системному администратору."
 
 #: ihtml/themes/legacy/login.tpl.c:5 ihtml/themes/breezy/login.tpl.c:5
 msgid ""
 "Please use your username and your password to log into the site "
 "administration system."
 msgstr ""
+"Пожалуйста используйте свое имя и пароль что бы войти в систему "
+"администрирования сайтом."
 
 #: ihtml/themes/legacy/login.tpl.c:26 ihtml/themes/breezy/login.tpl.c:26
 msgid "I forgot my password"
-msgstr ""
+msgstr "Не помню пароль"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"В вашем браузере отключены куки. Пожалуйста включите их и обновите эту "
+"страницу перед входом в систему! "
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
+msgstr "Нажмите на эту кнопку, чтобы войти в систему"
+
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
-msgstr ""
+msgstr "Предупреждение: вы собираетесь удалить следующие объекты"
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5074,40 +5485,93 @@ msgstr ""
 #: ihtml/themes/breezy/simple-remove.tpl.c:8
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
+"Итак - если вы уверены - нажмите 'Удалить', чтобы продолжить или 'Отмена' "
+"чтобы прервать."
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Вниз"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Действия"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Фильтр"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Искать в поддеревьях"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Применить фильтр"
 
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
-msgstr ""
+msgstr "Создание нового объекта используя шаблоны"
 
 #: ihtml/themes/breezy/template.tpl.c:8
 #: ihtml/themes/breezy/restore-confirm.tpl.c:14
 msgid "Continue"
-msgstr ""
-
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
+msgstr "Продолжить"
 
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
-msgstr ""
+msgstr "Конфликт блокировок"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
-msgstr ""
+msgstr "Только для чтения"
 
 #: ihtml/themes/breezy/restore-confirm.tpl.c:2
 msgid "Warning: you are about to restore the following snapshot"
@@ -5122,45 +5586,63 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Отправить"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
-msgstr ""
+msgstr "Начало"
 
 #: ihtml/themes/breezy/framework.tpl.c:5
 msgid "Sign out"
-msgstr ""
+msgstr "Выход"
 
 #: ihtml/themes/breezy/framework.tpl.c:8
 msgid "Signed in:"
-msgstr ""
+msgstr "Пользователь:"
 
 #: ihtml/themes/breezy/framework.tpl.c:11
 #, c-format
 msgid "Session expires in %d!"
-msgstr ""
+msgstr "Сессия закончится через %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
 " long timeouts would be to limit your search to smaller values and use "
 "filters to get the entries you are looking for."
 msgstr ""
-
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
+"Ограничение на количество возвращаемых объектов позволяет ускорить операции "
+"поиска и предохраняет сервер LDAP от большой нагрузки. Простейший способ "
+"снизить время обработки запроса при обслуживаии большой базы данных это "
+"установить минимальное значение. Кроме того, будет очень полезно "
+"использовать фильтры для просмотра только ограниченного количества объектов."
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
-msgid "Set"
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
 msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
+msgid "Set"
+msgstr "Установить"
diff --git a/locale/sv/fusiondirectory.po b/locale/sv/fusiondirectory.po
index 8cd1d38af1036615e8e535f32b8fa753191ef59e..0965692f0b5aba846508e07cad5009ccb917eea3 100644
--- a/locale/sv/fusiondirectory.po
+++ b/locale/sv/fusiondirectory.po
@@ -4,147 +4,556 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
-"Language-Team: Swedish (https://www.transifex.com/fusiondirectory/teams/12202/sv/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Swedish (https://app.transifex.com/fusiondirectory/teams/12202/sv/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: sv\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Fel"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Vänligen fixa ovanstående fel och ladda om sidan."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Typ"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Etikett"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Beskrivning"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "Objekt"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Tidsstämpel"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr "Välj önskade poster"
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr ""
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Mall"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr ""
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Skapa"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr "Exportera lista"
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Redigera"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Klipp ut"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Kopiera"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Klistra in"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Tillämpa mall"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Ta bort"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Skapa ögonblicksbild"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Återskapa ögonblicksbild"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Du har inte tillåtelse att skapa en ögonblicksbild för %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Du är inte tillåten att återskapa en ögonblicksbild för %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "GÃ¥ till root-avdelning"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Root"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "GÃ¥ upp en avdelning"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Upp"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Hem"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Ladda om lista"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Konfigurera"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "XML-fel i fusiondirectory.conf: %s på rad %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Konfigurationsfel"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAP-fel"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr "Kan inte koppla mot LDAP. Vänligen kontakta systemadministratören"
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Alla kategorier"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Mitt konto"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr "Sida"
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 "Ingen PDF-export är möjlig: det finns inget FPDF-bibliotek installerat."
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr "skapat av"
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr "PDF"
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr "CSV"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Fil"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Rad"
 
@@ -168,268 +577,259 @@ msgstr "statisk"
 msgid "method"
 msgstr "metod"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Spårning"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Typ"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Argument"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Generering av denna sida gjorde att PHP-tolken observerade några fel!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr "Skicka buggrapport till FusionDirectory-teamet"
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Skicka buggrapport"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Växla informationsläge"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Upp"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Ner"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Välj alla"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Mall-namn"
 
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr "skapat av"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Loggning misslyckades: %s"
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "GÃ¥ till root-avdelning"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Root"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "Angiven objectType är tom eller ogiltig!"
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "GÃ¥ upp en avdelning"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr ""
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Hem"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Ladda om lista"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Åtgärder"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Kopiera"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Logga in"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Klipp ut"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Klistra in"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Klipp ut post"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Kopiera post"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
+msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
-msgstr "Återskapa ögonblicksbilder"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
+msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
-msgstr "Exportera lista"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Ange ett giltigt användarnamn!"
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Återskapa ögonblicksbild"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Ange ditt lösenord!"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Skapa ögonblicksbild"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr "Kontot låst. Kontakta systemadministratören!"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Skapa ny ögonblicksbild från det här objektet"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAP-fel"
 
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
-msgstr ""
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "Epostadress"
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Mall"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr "Återskapande av lösenord"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Mall-namn"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Internt fel"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Logging failed: %s"
-msgstr "Loggning misslyckades: %s"
+msgid "There are several accounts using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "Angiven objectType är tom eller ogiltig!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Skicka"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Aktivera filter"
-
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Sök i subträd"
+#: include/class_standAlonePage.inc:127
+#, php-format
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
+msgstr "FusionDirectory-konfiguration %s/%s är inte läsbar. Avbryter."
 
-#: include/class_filter.inc:404
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid "Searches in %s"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Storleksgränsen på %d poster har överskridits!"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "ofullständig"
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_ldapSizeLimit.inc:152
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
-"Sätt ny storleksgräns till %s och visa mig meddelandet om gränsen "
-"fortfarande överskrids"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Konfigurera"
-
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "ofullständig"
 
-#: include/functions.inc:97
+#: include/functions.inc:55
 #, php-format
 msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 "Allvarligt fel: inga klass-locations definierade - vänligen kör '%s' för att"
 " åtgärda detta"
 
-#: include/functions.inc:116
+#: include/functions.inc:78
 #, php-format
 msgid ""
 "Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
@@ -437,576 +837,359 @@ msgstr ""
 "Allvarligt fel: kan inte instansiera klassen '%s' - försök köra '%s' för att"
 " åtgärda detta"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Allvarligt fel"
-
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr "ALLVARLIGT: Fel vid försöka att koppla mot LDAP. Servern sa '%s'."
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
-msgstr ""
-
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Autentiseringsfel"
-
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr "Fel uppstod när lås skulle läggas till. Kontakta utvecklarna!"
-
-#: include/functions.inc:594
+#: include/functions.inc:151
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
-"Kan inte skapa låsinformation i LDAP-trädet. Vänligen kontakta din "
-"administratör!"
-
-#: include/functions.inc:594
-#, php-format
-msgid "LDAP server returned: %s"
-msgstr "LDAP-server returnerade %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Varning"
 
 #: include/functions.inc:783
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
-msgstr ""
-"Hittade flera lås för objektet som ska låsas. Detta ska inte hända - rensar "
-"upp multipla referenser."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Fortsätt ändå"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Redigera ändå"
-
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Du kommer att redigera LDAP-posten/posterna %s"
-
-#: include/functions.inc:1505
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
-"Filen '%s' kunde inte tas bort. Försök med fusiondirectory-setup --check-"
-"directories för att åtgärda rättighetsproblem."
 
-#: include/functions.inc:1722
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
+msgstr ""
+
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Kan inte skriva till revisionsfil!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "LDAP-varning"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Kan inte hämta schemainformation från servern. Ingen schemakontroll är "
 "möjlig!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Klass(er) tillgänglig(a)"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Kan inte lokalisera filen '%s' - vänligen kör '%s' för att åtgärda detta"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Alla objekt i den här kategorin"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Användarnamn"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Rättighet"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Avbryt allt"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Kan inte klistra in"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Välj att lista objekt av typen '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Välj att lista objekt som innehåller '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Välj att lista objekt som har '%s' aktiverat"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Välj för att söka i subträd"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Det här objektet kommer att tas bort!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Det här '%s'-objektet kommer att tas bort!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Det här objektet kommer att tas bort: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Det här '%s'-objektet kommer att tas bort: %s"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Det här objektet kommer att tas bort:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Det här '%s'-objektet kommer att tas bort:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "De här objekten kommer att tas bort: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "De här '%s'-objekten kommer att tas bort: %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Du har inte rättigheter att ta bort det här objektet!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Du har inte rättigheter att ta bort objektet:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Du har inte rättigheter att ta bort objekten:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Du har ingen rättighet att skapa det här objektet!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Du har ingen rättighet att skapa objektet:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Du har ingen rättighet att skapa dessa objekt:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Du har ingen rättighet att modifiera det här objektet!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Du har inga rättigheter att visa detta objekt!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Du har inga rättigheter att visa objektet:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Du har inga rättigheter att visa dessa objekt:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Du har inga rättigheter att flytta det här objektet!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Du har inga rättigheter att flytta objektet:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Du har inga rättigheter att flytta de här objekten:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Anslutningsinformation"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Kan inte ansluta till databasen %s !"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Kan inte välja databasen %s !"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "Ingen %s server angiven!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Kan inte fråga %s-databasen!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "Fältet '%s' innehåller ett reserverat nyckelord!"
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "Kommandot specificerat som %s hook för pluginen '%s' existerar inte!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "Kommandot '%s' är inte giltigt!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "Kommandot '%s' för plugin %s är ogiltigt!"
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "Kommandot '%s' (%s) är ogiltigt!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "Kommandot '%s' (%s) för plugin %s är ogiltigt!"
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Kan inte exekvera kommandot '%s'!"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Kan inte exekvera kommandot '%s' för plugin %s!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "Kan inte exekvera kommandot '%s' (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Kan inte exekvera kommandot '%s' (%s) för plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "Värdet för '%s' är för stort!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
-msgstr "'%s' måste vara mindre än %s!"
+msgid "Value for \"%s\" is too large!"
+msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "Värdet för '%s' är för litet!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s' måste vara %d eller större!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s' beror på '%s' - vänligen ange båda värdena!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "Det finns redan en post med det här '%s'-attributet i systemet!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Fältet '%s' krävs men är tomt!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' är inte tillåtet:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s' är inte tillåtna!"
+msgid "Example: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "Saknar PHP-tillägget %s !"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Avbryt"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Spara"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Lägg till"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Lägg till %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Ta bort"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Ta bort %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Redigera..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Redigera %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Tillbaka"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Det här kontot har inga giltiga %s-tillägg!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1015,7 +1198,7 @@ msgstr ""
 "Det här kontot har %s-inställningar aktiverade. Du kan avaktivera dem genom "
 "att klicka nedan."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1024,7 +1207,7 @@ msgstr ""
 "Det här kontot har %s-inställningar aktiverade. För att avaktivera dem, "
 "behöver du ta bort %s-inställningarna först!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1033,7 +1216,7 @@ msgstr ""
 "Det här kontot har %s-inställningar avaktiverade. Du kan aktivera dem genom "
 "att klicka nedan."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1042,304 +1225,224 @@ msgstr ""
 "Det här kontot har %s-inställningar avaktiverade. För att aktivera dem, "
 "behöver du lägga till %s-inställningarna först!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Lägg till %s-inställningar"
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Ta bort %s-inställningar"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "januari"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "februari"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "mars"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "april"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "maj"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "juni"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "juli"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "augusti"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "september"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "oktober"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "november"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "december"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "söndag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "måndag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "tisdag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "onsdag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "torsdag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "fredag"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "lördag"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "läs"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "lägg till"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "modifiera"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "ta bort"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "sök"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "autentisering"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "LDAP %s misslyckades!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "LDAP-operation misslyckades!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "Objekt"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Uppladdning misslyckades!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Uppladdning misslyckades: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Kommunikationsfel med infrastrukturtjänsten!"
 
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Kommunikationsfel med infrastrukturtjänsten: %s"
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "'%s' används fortfarande av det här objektet %s"
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr "'%s' används fortfarande."
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "'%s' används fortfarande av dessa objekt: %s"
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr "Filen '%s' existerar inte!"
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Kan inte öppna filen '%s' för läsning!"
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Kan inte öppna filen '%s' för skrivning!"
-
-#: include/class_msgPool.inc:778
+#: include/class_msgPool.inc:572
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
-"Värdet för '%s' är för närvarande okonfigurerat eller ogiltigt, vänligen "
-"kolla din konfigurationsfil!"
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Kan inte ta bort fil '%s'!"
-
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Kan inte skapa katalog '%s'!"
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Kan inte ta bort katalogen '%s'!"
-
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr "Kontrollerar stöd för %s"
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr "Installera och aktivera PHP-modulen %s."
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
-msgstr "Installera och aktivera modulen %s Pear"
-
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
-msgstr ""
-"Kan inte initialisera klassen '%s'! Kanske det är ett plugin som saknas i "
-"din FusionDirectory-installation?"
-
-#: include/class_msgPool.inc:856
+#: include/class_msgPool.inc:600
 msgid ""
 "The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 "Den angivna basen är inte giltig och har återställts till det tidigare "
 "värdet!"
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr "Välj önskade poster"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Namn"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Beskrivning"
+#: include/class_templateHandling.inc:688
+#, php-format
+msgid ""
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr "Starta tjänsten"
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr "Stoppa tjänsten"
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr "Starta om tjänsten"
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "Bas"
 
@@ -1347,557 +1450,543 @@ msgstr "Bas"
 msgid "Object base"
 msgstr "Objekt-bas"
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr "Ingen"
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Okänd"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr "Kan inte läsa uppladdad fil: %s"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr "filen är tom"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr "filen kunde inte hittas"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr "filen är inte läsbar"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "Ladda upp"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "Ladda ner"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
-#, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Ta bort"
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Redigera"
-
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
 msgid "An integer between %d and %d"
 msgstr "En siffra mellan %d och %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
 #, php-format
 msgid "An integer larger than %d"
 msgstr "En siffra större än %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
 #, php-format
 msgid "An integer smaller than %d"
 msgstr "En siffra mindre än %d"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
+#, php-format
+msgid "\"%s\" is not an number"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
+#, php-format
+msgid "%s is smaller than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
+#, php-format
+msgid "%s is larger than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr "Ett flyttal mellan %f och %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr "Ett flyttal större än %f"
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr "Ett flyttal mindre än %f"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr "%s (krävs)"
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
-msgstr "Ogiltigt värde för %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
-msgstr "Ingen"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
-msgstr "Det finns redan en post med samma dn : %s"
+msgid "There is already an entry with the same dn: %s"
+msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr "Posten %s finns inte"
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr "sekunder"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Hantera åtkomstkontrollistor (ACL)"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr ""
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "ACL-roller"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Användarens grupp"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Okänd"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Okänd post '%s'!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr ""
+msgid "All users"
+msgstr "Alla användare"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
-msgstr "Visa %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
-msgstr "Filterfel"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr "Filtret är inte komplett!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Varning"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Rättighetsfel"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Du har inte tillåtelse att skapa en ögonblicksbild för %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Du är inte tillåten att återskapa en ögonblicksbild för %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
-msgstr "INGEN ETIKETT"
-
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Skapa"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
+msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Hantera åtkomstkontrollistor (ACL)"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "ACL-roller"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Okänd post '%s'!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
-msgstr "Alla användare"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Prestandavarning"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
+msgstr ""
 
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr "LDAP-prestanda är låg: senaste frågan tog runt %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
+msgstr ""
+
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "under operation på '%s' med LDAP-server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "under operation på LDAP-server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Tidsstämpel"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Fel uppstod när lås skulle läggas till. Kontakta utvecklarna!"
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"Kan inte skapa låsinformation i LDAP-trädet. Vänligen kontakta din "
+"administratör!"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP-server returnerade %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Hittade flera lås för objektet som ska låsas. Detta ska inte hända - rensar "
+"upp multipla referenser."
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Avdelningslista"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Avdelning"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Redigera ändå"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "Domän"
@@ -1906,127 +1995,142 @@ msgstr "Domän"
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Organisation"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Avdelning"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Avdelningar"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Egenskaper"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Kategori"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr "Manager"
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Plats"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Län"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Land"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Adress"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Telefon"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Namn"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr "Domänkomponent"
@@ -2035,265 +2139,230 @@ msgstr "Domänkomponent"
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr "Lokalitet"
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr "Hantera avdelningar"
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Roll"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr "Redigera posix-egenskaper"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Status"
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "Visa primära grupper"
-
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
-msgstr "Visa mail-grupper"
-
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "Visa samba-grupper"
-
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Objektgrupp"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Grupp"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "Ägare"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Medlemsobjekt"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "System trust"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Trust-läge"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr "Auktoriseringstyp för dessa hosts"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "avaktiverad"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "full tillgång"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "tillåt dessa hosts tillgång"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Grupplista"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Medlemmar"
+
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Roll"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2311,8 +2380,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "Telefonnummer"
 
@@ -2328,391 +2397,455 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr "ACL-tilldelning"
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Medlemmar"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
-msgstr "ACL-tilldelning"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
+msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Användarlista"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "Efternamn"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Förnamn"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Användare"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr "Lås användare"
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr "Lås upp användare"
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Tillämpa mall"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr "Ny användare från mall"
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "Redigera användare"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr "%{filter:lockLabel(userPassword)}"
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr "Ta bort användare"
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Användare"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Hantera användare"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr "Kontolåsning"
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr "LÃ¥s upp konto"
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr "LÃ¥s konto"
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Innehåller inställningar för dessa objekt: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Ã…tkomstkontroll-roller"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr "ACL-roll"
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Inga ACL-inställningar för denna kategori"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL för dessa objekt: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Redigera kategori-ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Återställ kategori-ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Lista tillgängliga ACL-kategorier"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Alla objekt i aktuellt subträd"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "läs"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "skriv"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Visa/dölj avancerade inställningar"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Skapa objekt"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Flytta objekt"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Ta bort objekt"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
-msgstr "Ge rättigheter till ägare"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Komplett objekt"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Aktivera ögonblicksbilder"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+"Detta aktiverar möjligheten att spara vissa posters tillstånd och återskapa "
+"dem senare."
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Bas för ögonblicksbilder"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr "Plugin-konfiguration"
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr "FusionDirectory plugin-konfiguration"
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Objektgrupper"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr "Gruppers RDN"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr "Gren i vilken objektgrupper kommer att lagras"
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr "SASL"
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -2720,48 +2853,50 @@ msgstr "Plugins"
 msgid "Configuration for plugins"
 msgstr "Konfiguration för plugins"
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
-msgstr "Återskapande av lösenord"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
+msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr "Inställningar för funktionen för återställning av lösenord"
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr "Inställningar för återskapande av lösenord"
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr "Aktivera återställning av lösenord"
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr "Avsändaradress för epost"
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr "Epostadress från vilken epostmeddelanden sänds"
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr "Länkens giltighetstid (minuter)"
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr "Antalet minuter innan en återställningslänk slutar gälla"
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr "Salt för tokens"
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
@@ -2769,51 +2904,49 @@ msgstr ""
 "Bara en säkerhetsåtgärd, du kan skriva vad som helst där, till och med "
 "slumpmässiga tecken"
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr "Tillåt användande av alternativa adresser"
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
-"Användare kommer också att kunna skriva in en av deras alternativa "
-"epostadresser för att återställa lösenordet"
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Inloggningsattribut"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr "Första epost"
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr "Ämne"
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr "Ämne på första epostmeddelandet"
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr "[FusionDirectory] Länk för återskapande av lösenord"
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr "Meddelandekropp (första %s är inläggnings-ID, andra är länken)"
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
@@ -2823,7 +2956,7 @@ msgstr ""
 "frågar efter ett nytt lösenord. Använd %s för inläggnings-ID och "
 "återställningslänk."
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2835,24 +2968,24 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr "Andre epostmeddelandet"
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr "Ämne på det andra epostmeddelandet"
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr "[FusionDirectory] Återställning av lösenord lyckades"
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr "Meddelandekropp (%s är login)"
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
@@ -2861,7 +2994,7 @@ msgstr ""
 "Meddelandekropp på det andra epostmeddelandet, som skickas för att bekräfta "
 "att lösenordet har ändrats. Använd %s för användarens inloggnings-ID."
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2874,29 +3007,84 @@ msgstr ""
 "Ditt lösenord har ändrats.\n"
 "Ditt användar-ID är fortfarande %s."
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr "När detta kommando ska anropas"
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr "Kommando som ska anropas"
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Konfiguration"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr "FusionDirectory konfiguration"
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Utseende:"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "Språk"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
@@ -2905,39 +3093,39 @@ msgstr ""
 "kommer den som efterfrågas av webbläsaren att användas. Detta kan också "
 "ställas in per användare. "
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Tema"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr "Tema som ska användas"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Tidszon"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr "Tidszon som ska användas"
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr "Bas-inställningar"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr "LDAP storleksgräns"
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr "Definierar antalet poster att få från LDAP som standard."
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr "Redigera låsning"
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
@@ -2945,94 +3133,82 @@ msgstr ""
 "Kontrollera om en post som just blir redigerad har blivit modifierad utanför"
 " FusionDirectory under tiden."
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr "Aktivera loggning"
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr "Event-loggning på FusionDirectorys sida."
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr "Aktivera schema-kontroll under inloggning."
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Aktivera ögonblicksbilder"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-"Detta aktiverar möjligheten att spara vissa posters tillstånd och återskapa "
-"dem senare."
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Bas för ögonblicksbilder"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr "Basen där ögonblicksbilder ska lagras i LDAP-katalogen."
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Lösenordsinställningar"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr "Lösenordens standard-hash"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr "Standard-hash som ska användas"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr "Tvinga standard hash"
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr "Tvinga användandet av den lösenords-hash som är standard"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Lösenordets minsta längd"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr "Minsta längd på lösenord"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr "Lösenord minsta avvikelse"
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr "Minsta antalet tecken som nytt lösenord måste avvika från gammalt"
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Använd datum för kontots upphörande"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
@@ -3040,32 +3216,32 @@ msgstr ""
 "Aktiverar skugg-attribut-test under inloggning till FusionDirectory och "
 "tvingar förnyelse av lösenord eller kontolåsning"
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr "SASL Realm"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr "SASL Exop"
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr "Attribut att lagra i userPassword-attributet"
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Inloggning och session"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 "Vilket LDAP-attribut ska användas som inloggningnamn under inloggning."
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Tvinga krypterade anslutningar"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
@@ -3073,209 +3249,229 @@ msgstr ""
 "Aktiverar PHPs säkerhetskontroller för att tvinga krypterad access (https) "
 "till webbgränssnittet."
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Varna om session inte är krypterad"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr "visar en varning till användaren när http används istället för https."
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Sessioners livslängd"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
-msgid "Path to FusionDirectory private key. Unused for now."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:241
-msgid "Certificate path"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:241
-msgid "Path to FusionDirectory certificate. Unused for now."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
-msgid "CA certificate path"
+#: plugins/config/class_configInLdap.inc:197
+msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-msgid "Path to the CA certificate. Used for validating Argonaut Server host."
+#: plugins/config/class_configInLdap.inc:202
+msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
+#: plugins/config/class_configInLdap.inc:202
+msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
+msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
+#: plugins/config/class_configInLdap.inc:207
+msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr "Host"
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "Port"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Lagring för personer och grupper"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Personer DN-attribut"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
-msgstr "Attribut att använda i början av användares dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr "Strikt namnpolicy"
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr "Användares RDN"
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Debugging"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
-msgstr "Visa fel"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
-"Visa PHP-fel i övre delen av skärmen. Detta bör avaktiveras i "
-"produktionsmiljöer, för det kan vara lösenord i felkoden."
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Maximal tid för LDAP-frågor"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
@@ -3283,11 +3479,11 @@ msgstr ""
 "Stoppa LDAP-förfrågningar om det inte kommer något svar inom den "
 "specificerade mängden sekunder."
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Logga LDAP-statistik"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
@@ -3295,23 +3491,31 @@ msgstr ""
 "Spåra LDAP-timingstatistik till syslog. Detta kan hjälpa till att hitta "
 "indexeringsproblem eller dåliga sökfilter."
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Debug-nivå"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr "Visa viss information på varje sidladdning."
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "Diverse"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Visa sammanfattning i listningar"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
@@ -3319,274 +3523,289 @@ msgstr ""
 "Avgör om ett statusfält ska visas i botten på listor, som visar en kort "
 "sammanfattning av typ och antal poster i listan."
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Automatiskt"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
-msgstr "Hooks som anropas när specifika händelser inträffar"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
-msgstr "Fliken som denna hook härrör till"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
-msgstr "När detta kommando ska anropas"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
+msgstr "Version"
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
-msgstr "Kommando som ska anropas"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Automatiskt"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Användarnamn"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr "Utgångsdatum"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3594,36 +3813,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3631,16 +3977,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Lösenordsmetod"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr "Lösenords-hash att använda"
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3648,273 +4016,322 @@ msgstr "Lösenords-hash att använda"
 msgid "Password"
 msgstr "Lösenord"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr "Lösenord (Lämna tomt om du inte vill ändra det)"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr "Lösenordet igen"
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr "Samma lösenord som ovan, för att undvika fel"
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Användare"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Personlig information"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Efternamn"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Förnamn"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Rumsnummer"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Rumsnummer"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Mobil"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Pager"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Hemsida"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Föredraget språk"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Hempostadress"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Privat telefon"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Hemtelefonnummer"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Organisationsinformation"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Avdelningsnummer"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Avdelningsnummer"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Anställningsnummer"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Anställningsnummer"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Anställningstyp"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Postnummer"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Du behöver ange ditt nuvarande lösenord för att fortsätta."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Nytt lösenord"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Det nya lösenordet och det nuvarande är för lika varandra."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr "Lösenordet innehåller möjligtvis problematiska Unicode-tecken!"
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Referenser"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Välkommen %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Slutförd"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Nästa"
 
@@ -3986,10 +4403,6 @@ msgstr "Adminlösenord"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Status"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Nuvarande status"
@@ -4014,46 +4427,46 @@ msgstr ""
 "Den här dialogrutan utför den grundläggande konfigurationen för LDAP-"
 "kopplingen till FusionDirectory."
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Anonym koppling till server '%s' misslyckades!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Koppling som användare '%s' misslyckades!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Anonym koppling till servern '%s' lyckades."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "Uppdatera"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Skriv in användare och lösenord!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Koppling som användare '%s' till servern '%s' lyckades!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "PHP modul- och tilläggskontroll"
 
@@ -4069,115 +4482,93 @@ msgstr "Installationskontroll"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Grundläggande kontroll för PHP-kompatibilitet och tillägg"
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Kontrollerar PHP-version"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP måste vara version %s eller högre."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Vänligen uppgradera till en version som stöds."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 "FusionDirectory kräver den här modulen för att prata med din LDAP-server"
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 "FusionDirectory kräver den här modulen för ett internationaliserat "
 "gränssnitt."
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-"FusionDirecotyr kräver den här modulen för att kommunicera med olika typer "
-"av servrar och protokoll."
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"servers and protocols."
 msgstr ""
+"FusionDirecotyr kräver den här modulen för att kommunicera med olika typer "
+"av servrar och protokoll."
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr "FusionDirectory kräver den här modulen för integrationen med Samba."
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-"FusionDirectory kräver antingen en modul för antingen 'mhash' eller 'shah' "
-"för at kunna använda SSHA-kryptering."
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 "FusionDirectory kräver den här modulen för att kunna prata med en IMAP-"
 "server"
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 "FusionDirectory kräver den här modulen för att hantera unicode-strängar."
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr "imagick"
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr "FusionDirectory kräver det här tillägget för att hantera bilder."
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr "compression-modul"
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 "FusionDirectory kräver det här tillägget för att hantera ögonblicksbilder"
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP använder det här värdet för garage collection för att ta bort gamla "
 "sessioner"
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4185,7 +4576,7 @@ msgstr ""
 "Att ställa in det här värdet till en dag kommer att förhindra förlust av "
 "sessioner och cookies innan de verkligen når time out."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4193,12 +4584,12 @@ msgstr ""
 "Sök efter 'session.gc_maxlifetime' i din php.ini och sätt den till 86400 "
 "eller högre."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Av"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
@@ -4206,11 +4597,11 @@ msgstr ""
 "För att använda FusionDirectory utan problem, bör session.auto_start i din "
 "php.ini sättas till 'Off'."
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr "Sök efter 'session.auto_start' i din php.ini och sätt den till 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
@@ -4219,14 +4610,14 @@ msgstr ""
 "gräns kan orsaka fel som inte är reproducerbara. Öka värdet för större "
 "installationer."
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 "Sök efter 'memory_limit' i din php.ini och ställ in den på '128M' eller "
 "högre."
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4234,22 +4625,22 @@ msgstr ""
 "Den här inställningen påverkar PHPs utdata-hantering. Stäng av den för att "
 "öka prestanda."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr "Sök efter 'implicit_flush' i din php.ini och sätt den till 'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Exekveringstiden bör vara åtminstone 30 sekunder."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 "Sök efter 'max_execution_time' i php.ini och sätt den till '30' eller högre."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4257,109 +4648,111 @@ msgstr ""
 "Öka serversäkerheten genom att sätta expose_php till 'off'. PHP kommer i så "
 "fall inte sända någon information om servern du kör på."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr "Sök efter 'expose_php' i din php.ini och sätt den till 'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Migrera"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "LDAP-inspektion"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 "Analysera nuvarande LDAP-katalog för kompatibilitet med FusionDirectory"
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr "Inspekterar objektklasser i root-objektet"
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr "Kontrollerar rättigheter för LDAP-databas"
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Söker efter osynliga användare"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Söker efter superadministratör"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Söker efter användare utanför person-trädet"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Söker efter grupper utanför gruppträdet"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Söker efter osynliga avdelningar"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Söker efter dubbletter av UID-nummer"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Söker efter dubbletter av GID-nummer"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "LDAP-fråga misslyckades"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Misslyckades"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr "Saknar objektklassen '%s' för FusionDirectory!"
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr "Vänligen kontrollera din installation."
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
@@ -4368,123 +4761,170 @@ msgstr ""
 "Kan inte hantera den strukturella objekttypen hos ditt root-objekt. Vänligen"
 " lägg till objektklassen '%s' manuellt."
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
-"Hittade %s användare som inte kommer att vara synlig(a) i FusionDirectory "
-"eller som är ofullständig(a)."
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Migreringsfel"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Grupper"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
-msgstr "Det finns inget FusionDirectory-adminkonto i din LDAP-katalog."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Flytta användare in i det konfigurerade användarträdet"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "till"
-
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Följande referenser kommer att uppdateras"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Hittade %s grupper utanför det konfigurerade trädet '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
-"Hittade %s avdelning(ar) som inte kommer att vara synliga i FusionDirectory."
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4499,7 +4939,7 @@ msgstr "Slutför - skriv konfigurationsfil"
 msgid "Write configuration file"
 msgstr "Skriv konfigurationsfil"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4507,20 +4947,17 @@ msgstr ""
 "Din konfigurationsfil är just nu läsbar för alla användare. Vänligen "
 "uppdatera filrättigheterna!"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "Konfigurationen är just nu inte läsbar eller så finns den inte."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
-"Efter att ha laddat ner och placerat filen under %s, vänligen säkerställ att"
-" användaren som webbservern kör med har rättigheter att läsa %s medan andra "
-"användare inte ska kunna det."
 
 #: setup/class_setupStepLanguage.inc:59 setup/class_setupStepLanguage.inc:60
 msgid "Language setup"
@@ -4537,121 +4974,27 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"Katalogen '%s' specificerat som kompileringskatalog är inte tillgänglig!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr "FusionDirectory-konfiguration %s/%s är inte läsbar. Avbryter."
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "Epostadress"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr "Kontakta din administratör, det uppstod ett problem med epostservern"
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-"Det uppstod ett problem med epostservern, bekräftelsebrevet skickades inte"
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "PHP-konfiguration"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-"Allvarligt fel: Register globals är påslaget. FusionDirectory kommer att "
-"vägra logga in om inte detta är åtgärdat av en administratör"
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Ändra lösenord"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr "Ditt lösenord är på väg att gå ut, vänligen byt lösenord!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Tillgängligt minne snart slut!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "ACL-kontroll av användare är inte påslaget"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Plugin"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-"Allvarligt fel: Kan inte hitta några plugin-definitioner för pluginen '%s' "
-"('%s' är ingen fil)!"
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr "Konfigurationsfel"
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
@@ -4659,107 +5002,26 @@ msgstr ""
 "Allvarligt fel: inte alla POST-variabler överfördes av PHP - informera din "
 "administratör!"
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Logga in"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-"FusionDirectory-konfiguration %s/%s är inte läsbar. Vänligen kör "
-"fusiondirectory-setup --check-config för att åtgärda detta."
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Smarty-fel"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr "Din FusionDirectory-session har gått ut!"
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Ange ett giltigt användarnamn!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Ange ditt lösenord!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Kontrollera användarnamn/lösenord-kombinationen."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr "Kontot låst. Kontakta systemadministratören!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Din webbläsare har avaktiverat cookies. Vänligen aktivera cookies och ladda "
-"om den här sidan innan du loggar in!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "Filter"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4776,25 +5038,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "Visa mallar"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr "Visa fungerande användare"
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr "Visa POSIX-användare"
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr "Visa Epost-användare"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Visa/dölj avancerade inställningar"
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr "Visa Samba-användare"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Komplett objekt"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4803,7 +5053,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4853,8 +5103,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4865,7 +5115,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4873,7 +5123,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4921,10 +5171,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr "Lägg till de objektklasser som krävs till LDAP-basen"
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Nuvarande"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Efter migrering"
 
@@ -4946,13 +5198,10 @@ msgstr "FusionDirectory kommer att kunna köras utan att åtgärda detta."
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
-"Det verkar vara första gången du startar FusionDirectory - vi hittade ingen "
-"konfiguration just nu. Den här enkla wizarden ska hjälpa dig att ställa in "
-"programvaran.  "
 
 #: setup/setup_welcome.tpl.c:5
 msgid "What will the wizard do for you?"
@@ -4997,13 +5246,13 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
-msgstr "Klicka på 'Nästa'-knappen när du är klar."
+msgid "Click the 'Next' button when you are done."
+msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
 msgid ""
@@ -5068,7 +5317,12 @@ msgstr ""
 "Om du vill vet vad som kommer att göras när valda poster migreras, använd "
 "'Visa ändringar'-knappen för att se LDIF-filen."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Välj alla"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Visa ändringar"
 
@@ -5182,14 +5436,28 @@ msgid "I forgot my password"
 msgstr "Jag har glömt mitt lösenord"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Din webbläsare har avaktiverat cookies. Vänligen aktivera cookies och ladda "
+"om den här sidan innan du loggar in!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Klicka här för att logga in"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5204,6 +5472,59 @@ msgstr ""
 "Så - om du är säker - tryck 'Ta bort' för att fortsätta och 'Avbryt' för att"
 " avbryta."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Ner"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Åtgärder"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "Filter"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Sök i subträd"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Aktivera filter"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5213,28 +5534,26 @@ msgstr ""
 msgid "Continue"
 msgstr "Fortsätt"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "LÃ¥sningskonflikt detekterad"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr "Endast läsning"
 
@@ -5251,6 +5570,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Skicka"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Hem"
@@ -5269,6 +5593,10 @@ msgid "Session expires in %d!"
 msgstr "Sessionen löper ut om %d!"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5276,23 +5604,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
-"ignorera det här felet och visa alla poster som LDAP-servern returnerar"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"ignorera det här felet och visa alla poster som passar inom den definierade "
-"sizelimit och låt mig använda filter istället"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/tr_TR/fusiondirectory.po b/locale/tr_TR/fusiondirectory.po
index a506eeb63ea9c5dffa45c5792afccceb9505190a..2a5b4b8ff8762e0d8b88d6b1f7c9931b8b4dcdf4 100644
--- a/locale/tr_TR/fusiondirectory.po
+++ b/locale/tr_TR/fusiondirectory.po
@@ -11,139 +11,548 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
 "Last-Translator: abc Def <hdogan1974@gmail.com>, 2021\n"
-"Language-Team: Turkish (Turkey) (https://www.transifex.com/fusiondirectory/teams/12202/tr_TR/)\n"
+"Language-Team: Turkish (Turkey) (https://app.transifex.com/fusiondirectory/teams/12202/tr_TR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: tr_TR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Hata"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr "Sütunlar"
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Tür"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr "Etiket"
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/actions/class_Action.inc:166
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr ""
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr ""
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/class_config.inc:325
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr ""
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "OluÅŸtur"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr ""
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Düzenle"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Kes"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Kopyala"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Yapıştır"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr ""
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Kaldır"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr ""
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr ""
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr ""
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Yapılandır"
+
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr ""
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgstr ""
+
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr ""
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr ""
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr ""
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "Dosya"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr ""
 
@@ -167,1149 +576,856 @@ msgstr ""
 msgid "method"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Tür"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr ""
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr ""
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/php_setup.inc:249
+msgid "Mail icon"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
-msgstr ""
-
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr ""
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr ""
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/php_setup.inc:249
+msgid "Send bug report"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
-msgstr ""
-
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Hepsini seç"
-
-#: include/class_listing.inc:567
-msgid "created by"
-msgstr ""
-
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr ""
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr ""
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr ""
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
-msgstr ""
-
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
+#: include/php_setup.inc:254
+msgid "Toggle information"
 msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Kopyala"
-
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Kes"
-
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Yapıştır"
-
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/login/class_LoginCAS.inc:92
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
 msgstr ""
 
-#: include/class_logging.inc:81
-#, php-format
-msgid "Logging failed: %s"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/class_logging.inc:103
-#, php-format
-msgid "Invalid option \"%s\" specified!"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
-#, php-format
-msgid "Cannot change password, unknown user \"%s\""
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Gönder"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
+msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
 msgstr ""
 
-#: include/class_filter.inc:404
-#, php-format
-msgid "Searches in %s"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "The size limit of %d entries is exceed!"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Yapılandır"
-
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/password-methods/class_passwordMethodSasl.inc:66
+#, php-format
+msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "İkaz"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "İptal et"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Kaydet"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Ekle"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Sil"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Düzenle..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
-msgid "LDAP operation failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
-msgid "Upload failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:704
-#, php-format
-msgid "Upload failed: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:715
-msgid "Communication failure with the infrastructure service!"
-msgstr ""
-
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr ""
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr ""
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr ""
-
-#: include/class_msgPool.inc:778
-#, php-format
-msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
-msgstr ""
-
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
+msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/class_msgPool.inc:556
+msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:808
+#: include/class_msgPool.inc:559
 #, php-format
-msgid "Cannot delete folder '%s'!"
+msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/class_msgPool.inc:570
+msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Install and activate the %s PHP module."
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:838
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "Install and activate the %s Pear module."
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/class_msgPool.inc:592
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:856
+#: include/class_msgPool.inc:600
 msgid ""
 "The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/class_templateHandling.inc:688
+#, php-format
+msgid ""
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr ""
 
@@ -1321,553 +1437,535 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr "Saatler"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr "Dakikalar"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr "Saniyeler"
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr "Zaman"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
-msgstr "Yükleme"
+msgstr "Yükle"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "İndir"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Kaldır"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Düzenle"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr "B"
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr "KiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr "MiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr "GiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr "TiB"
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
-msgstr "seconds"
+msgstr "saniyeler"
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr "dakikalar"
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "saatler"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "günler"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
-msgstr ""
+msgid "All users"
+msgstr "Tüm kullanıcılar"
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "İkaz"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr ""
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr "Hata:"
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "OluÅŸtur"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
-msgstr "Tüm kullanıcılar"
-
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1876,127 +1974,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr ""
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Parola ayarları"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Parola asgari uzunluÄŸu"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr "Parolalar"
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr "Parola"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Yeni parola"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr "Yönetici parolası"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+#: setup/class_setupStepChecks.inc:85
+msgid ""
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Parola deÄŸiÅŸtir"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4659,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4686,7 +4967,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4736,8 +5017,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4748,7 +5029,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4756,7 +5037,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4802,10 +5083,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4827,7 +5110,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4871,12 +5154,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4936,7 +5219,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Hepsini seç"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5045,14 +5333,26 @@ msgid "I forgot my password"
 msgstr "Ben ÅŸifremi unuttum"
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5063,6 +5363,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr "Türler"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5072,28 +5425,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5110,6 +5461,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Gönder"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5128,6 +5484,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5135,20 +5495,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/ug/fusiondirectory.po b/locale/ug/fusiondirectory.po
index 3f4cbab29d83b1d6f6f2523ea72d8139762557b9..dbea8c0aa70dc08e996b64dc78628342dcff7a18 100644
--- a/locale/ug/fusiondirectory.po
+++ b/locale/ug/fusiondirectory.po
@@ -8,327 +8,606 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Language-Team: Uyghur (https://www.transifex.com/fusiondirectory/teams/12202/ug/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Language-Team: Uyghur (https://app.transifex.com/fusiondirectory/teams/12202/ug/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ug\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr ""
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:261
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
 msgstr ""
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
 msgstr ""
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
 msgstr ""
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr ""
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_config.inc:1158
+msgid "My account"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:78
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
+msgstr ""
+
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
+msgstr ""
+
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr ""
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr ""
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr ""
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr ""
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr ""
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr ""
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr ""
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr ""
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr ""
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr ""
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr ""
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
@@ -336,1534 +615,1353 @@ msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
 #: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "Template name"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr ""
-
-#: include/class_logging.inc:81
+#: include/class_logging.inc:79
 #, php-format
 msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_logging.inc:165
 #, php-format
 msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_logging.inc:107
+#: include/class_logging.inc:169
 msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_logging.inc:224
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Searches in %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
+
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginMethod.inc:56
 #, php-format
 msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
+msgstr ""
+
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
+msgstr ""
+
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
+
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:297
+#, php-format
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr ""
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot connect to %s database!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:245
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot select %s database!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr ""
-
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:457
-#, php-format
-msgid "'%s' are not allowed!"
-msgstr ""
-
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr ""
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr ""
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr ""
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr ""
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr ""
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr ""
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr ""
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr ""
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
 msgstr ""
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1872,127 +1970,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr ""
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr ""
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr ""
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2001,265 +2114,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
-msgid "locality"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:34
-msgid "Manage departments"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:35
-msgid ""
-"Manage departments, countries, domain components, domains, localities and "
-"organization nodes,"
-msgstr ""
-
-#: plugins/admin/departments/class_departmentManagement.inc:37
-msgid "Users and groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/departments/class_locality.inc:52
+msgid "locality"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/departments/class_departmentManagement.inc:30
+msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/departments/class_departmentManagement.inc:31
+msgid ""
+"Manage departments, countries, domain components, domains, localities and "
+"organization nodes,"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/departments/class_departmentManagement.inc:33
+msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
 msgstr ""
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2277,8 +2355,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2294,391 +2372,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2686,103 +2826,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2794,31 +2936,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2827,699 +2969,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3527,36 +3759,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3564,16 +3923,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3581,273 +3962,322 @@ msgstr ""
 msgid "Password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr ""
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr ""
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3919,10 +4349,6 @@ msgstr ""
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3945,46 +4371,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4000,387 +4426,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
+#: setup/class_setupStepChecks.inc:85
 msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4395,21 +4853,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4428,217 +4886,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4655,24 +4948,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4682,7 +4963,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4732,8 +5013,8 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 msgstr[1] ""
 
@@ -4744,7 +5025,7 @@ msgstr[0] ""
 msgstr[1] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4752,7 +5033,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 msgstr[1] ""
@@ -4798,10 +5079,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4823,7 +5106,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4867,12 +5150,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4932,7 +5215,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5041,14 +5329,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr ""
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5059,6 +5359,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr ""
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr ""
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5068,28 +5421,26 @@ msgstr ""
 msgid "Continue"
 msgstr ""
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5106,6 +5457,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr ""
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr ""
@@ -5124,6 +5480,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5131,20 +5491,24 @@ msgid ""
 "filters to get the entries you are looking for."
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr ""
diff --git a/locale/vi_VN/fusiondirectory.po b/locale/vi_VN/fusiondirectory.po
index d6d405b3a8b1b1142101e3a83332c2b9a6962cb6..77a8d9627b9edefa7657c4a3772a8c27eee899ab 100644
--- a/locale/vi_VN/fusiondirectory.po
+++ b/locale/vi_VN/fusiondirectory.po
@@ -4,146 +4,555 @@
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
 # Translators:
-# fusiondirectory <contact@fusiondirectory.org>, 2018
+# fusiondirectory <contact@fusiondirectory.org>, 2023
 # 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2018\n"
-"Language-Team: Vietnamese (Viet Nam) (https://www.transifex.com/fusiondirectory/teams/12202/vi_VN/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Vietnamese (Viet Nam) (https://app.transifex.com/fusiondirectory/teams/12202/vi_VN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: vi_VN\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "Lá»—i"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
-msgstr "Xin hãy sửa lỗi trên và reload trang trên."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "Loại"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "Mô tả"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr "Y-m-d, H:i:s (Năm-tháng-ngày)"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "đối tượng"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "Timestamp"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
+#, php-format
+msgid ""
+"Could not search for \"%s\" templates:\n"
+"%s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr ""
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr ""
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "Mẫu"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr ""
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "Tạo "
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr ""
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "Hiệu chỉnh"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr "Cut"
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr "Copy"
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "Paste"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr "Áp dụng mẫu"
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "Xóa bỏ"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr "Tạo ra snapshot"
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr "Phục hồi lại snapshot"
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr "Bạn không được phép tạo ra snapshot cho %s."
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr "Bạn không được phép phục hồi một snapshot cho %s."
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "Đi đến bộ phận gốc"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "Gốc"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "Đi lên một bộ phận"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "Lên"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr "Nhà"
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "Danh sách reload"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "Cấu hình"
+
+#: include/class_config.inc:146
 #, php-format
 msgid "XML error in fusiondirectory.conf: %s at line %d"
 msgstr "Lỗi XML trong fusiondirectory.conf: %s tại dòng %d"
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
-msgstr "Lỗi cấu hình"
-
-#: include/class_config.inc:283
+#: include/class_config.inc:277
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
+"It seems you are trying to decode something which is not encoded : %s\n"
 "Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "Lá»—i LDAP"
-
-#: include/class_config.inc:325
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr "Không thể nối kết với LDAP. Xin hãy liên lạc với với admin hệ thống."
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr "Tất cả các mục"
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "Tài khoản của tôi"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr ""
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "File"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "Dòng"
 
@@ -167,268 +576,260 @@ msgstr "tĩnh"
 msgid "method"
 msgstr "phương pháp"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "Dò theo"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "Loại"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "Tranh luận"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "Tạo ra trang này khiến cho bộ dịch PHP sinh ra một số lỗi!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
-msgstr "Gửi thông báo lỗi"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
 
-#: include/php_setup.inc:258
+#: include/php_setup.inc:254
 msgid "Toggle information"
 msgstr "Thông tin Toggle"
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "Lên"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "Xuống"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr "Chọn tất"
-
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "Đi đến bộ phận gốc"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "Tên Mẫu"
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "Gốc"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr "Đăng nhập thất bại: %s"
 
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "Đi lên một bộ phận"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
 
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr "ObjecType được chỉ định đang rỗng hặc không hợp lệ!"
+
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
-msgstr "Nhà"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "Danh sách reload"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "Các thao tác"
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr "Copy"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
+msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
-msgstr "Cut"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "Đăng ký"
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "Paste"
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
+msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "Cắt entry này"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
+msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "Copy entry này"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
+msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
-msgstr "Phục hồi lại snapshot"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "Xin hãy xác định một tên người dùng hợp lệ!"
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
-msgstr "Tạo ra snapshot"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "Xin hãy xác định mật mã của bạn!"
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
-msgstr "Tạo ra một snapshot mới từ đối tượng này"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
+msgstr ""
+"Tài khoản bị khóa. Xin hãy liên lạc với admin quản trị hệ thống của bạn!"
 
-#: include/class_timezone.inc:52
-#, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "Lá»—i LDAP"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginHTTPHeader.inc:60
+#, php-format
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "Mẫu"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
+msgstr ""
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/class_passwordRecovery.inc:253
+#, php-format
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "Tên Mẫu"
+#: include/class_passwordRecovery.inc:256
+#, php-format
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr "Lá»—i ná»™i bá»™"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:81
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Logging failed: %s"
-msgstr "Đăng nhập thất bại: %s"
+msgid "There are several accounts using email \"%s\""
+msgstr ""
 
-#: include/class_logging.inc:103
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid "Invalid option \"%s\" specified!"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
-msgstr "ObjecType được chỉ định đang rỗng hặc không hợp lệ!"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
+msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
+msgstr ""
+
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
 msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
 "You need to fill saslRealm or saslExop in the configuration screen in order "
 "to use SASL"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "Ná»™p"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "Áp dụng bộ lọc"
-
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
-msgstr "Tìm kiếm tại các cây con"
-
-#: include/class_filter.inc:404
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "Searches in %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
-#, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "Đã vượt quá giới hạn kích cỡ của các entry %d!"
-
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
-"Thiết lập kích cỡ mới cho %s và cho tôi thấy tin nhắn nếu giới hạn này vẫn "
-"vượt quá tiêu chuẩn"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "Cấu hình"
 
-#: include/class_ldapSizeLimit.inc:136
+#: include/class_ldapSizeLimit.inc:135
 msgid "incomplete"
 msgstr "chưa hoàn thành"
 
-#: include/functions.inc:97
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
+msgid ""
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
+msgstr ""
+
+#: include/functions.inc:55
 #, php-format
 msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 "Lỗi nghiêm trọng: không có vị trí lớp nào được xác định - xin hãy chạy '%s' "
 "để sửa lỗi này"
 
-#: include/functions.inc:116
+#: include/functions.inc:78
 #, php-format
 msgid ""
 "Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
@@ -436,574 +837,358 @@ msgstr ""
 "Lỗi nghiêm trọng: không thể tạo ra lớp '%s' - hãy thử chạy '%s' để sửa lỗi "
 "này"
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
-msgstr "Lỗi nặng"
-
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr ""
-"LỖI NGHIÊM TRỌNG: Lỗi khi đang kết nối với LDAP. Server thông báo '%s'."
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
-msgstr ""
-
-#: include/functions.inc:532
-msgid "Authentication error"
-msgstr "Lỗi xác định thẩm quyền"
-
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
-msgstr ""
-
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
-msgstr "Lỗi khi đang thêm một khóa vào. Hãy liên lạc với các nhà phát triển!"
-
-#: include/functions.inc:594
+#: include/functions.inc:151
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
-"Không thể tạo ra việc khóa thông tin trong cây LDAP.Xin hãy liên lạc với "
-"admin của bạn!"
-
-#: include/functions.inc:594
-#, php-format
-msgid "LDAP server returned: %s"
-msgstr "LDAP server trả về: %s"
-
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "Cảnh báo"
 
 #: include/functions.inc:783
-msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
-msgstr ""
-"Tìm thấy nhiều khóa khác nhau để khóa đối tượng. Điều này không nên xảy ra -"
-" hãy dọn sạch các tham chiếu."
-
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "Cứ tiếp tục"
-
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "Cứ hiệu chỉnh"
-
-#: include/functions.inc:1111
-#, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
-msgstr "Bạn sẽ hiệu chỉnh entry/các entry %s của LDAP"
-
-#: include/functions.inc:1505
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
+msgstr ""
+
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1722
+#: include/functions.inc:979
 msgid "Cannot write to revision file!"
 msgstr "Không thể viết lên revision file!"
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
-msgstr "Cảnh báo LDAP"
-
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 "Không thể dùng thông tin lược đồ từ server. Không thể kiểm tra giản đồ!"
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr "Đã có lớp"
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
-"Không thể xác định vị trí file '%s'- xin hãy chạy '%s' để sửa lỗi này!"
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr "Tất cả các đối tượng trong hạng mục này"
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "Đăng nhập"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
+msgstr ""
 
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "Cho phép"
-
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr "Hủy bỏ tất"
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr "Không thể paste"
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr "Chọn để liệt kê các đối tượng loại '%s'."
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr "Chọn để liệt kê đối tượng chứa '%s'."
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr "Chọn để liệt kê đối tượng mà cho phép '%s'"
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "Chọn để tìm kiếm trong các cây con"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr "Đối tượng này sẽ bị xóa!"
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr "Đối tượng '%s' này sẽ bị xóa!"
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr "Đối tượng này sẽ bị xóa: %s"
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr "Đối tượng '%s' này sẽ bị xóa: '%s'"
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr "Đối tượng này sẽ bị xóa:"
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr "Đối tượng '%s' này sẽ bị xóa:"
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr "Đối tượng này sẽ bị xóa: %s"
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr "Đối tượng '%s' này sẽ bị xóa; %s"
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr "Bạn không có quyền xóa đối tượng này!"
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr "Bạn không có quyền xóa đối tượng này:"
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr "Bạn không có quyền xóa những đối tượng này:"
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr "Bạn không có quyền tạo ra đối tượng này!"
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr "Bạn không có quyền tạo ra đối tượng này:"
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr "Bạn không có quyền tạo ra những đối tượng này:"
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr "Bạn không có quyền thay đổi đối tượng này!"
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr "Bạn không có quyền xem đối tượng này!"
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr "Bạn không có quyền xem đối tượng này:"
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr "Bạn không có quyền xem những đối tượng này:"
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr "Bạn không có quyền di chuyển đối tượng này!"
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr "Bạn không có quyền di chuyển đối tượng này:"
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr "Bạn không có quyền di chuyển những đối tượng này:"
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr "Thông tin kết nối"
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr "Không thể kết nối đến cơ sở dữ liệu %s!"
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr "Không thể lựa chọn cơ sở dữ liệu %s!"
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr "Không xác định được  Server '%s'!"
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr "Không truy vấn được cơ sở dữ liệu %s!"
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr "Trường '%s' có chứa một từ khóa dự trữ!"
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr "Lệnh được cụ thể hóa là %s móc nối với plugin '%s' không tồn tại!"
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr "Lệnh '%s' không hợp lệ!"
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr "Lệnh '%s' cho plugin '%s' không hợp lệ!"
-
-#: include/class_msgPool.inc:319
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr "Lệnh '%s' (%s) không hợp lệ!"
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr "Lệnh '%s' (%s) cho plugin %s không hợp lệ!"
-
-#: include/class_msgPool.inc:339
-#, php-format
-msgid "Cannot execute '%s' command!"
-msgstr "Không thể chạy lệnh '%s'!"
+msgid "The field \"%s\" contains a reserved keyword!"
+msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
-msgstr "Không thể chạy lệnh '%s' cho plugin %s!"
+msgid "Cannot execute \"%s\" command!"
+msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
-msgstr "Không thể chạy lệnh '%s' ('%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
-msgstr "Không thể chạy lệnh '%s' ('%s) cho plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
+msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
-msgstr "Gía trị '%s' quá lớn!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
-msgstr "Gía trị '%s' quá nhỏ!"
+msgid "\"%s\" must be smaller than %s!"
+msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
-msgstr "'%s' phải lớn hơn %d hoặc trên nữa!"
+msgid "Value for \"%s\" is too small!"
+msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
-msgstr "'%s' phụ thuộc vào '%s'- xin hãy cung cấp cả hai giá trị!"
+msgid "\"%s\" must be %d or above!"
+msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
-msgstr "Đã có sẵn một entry với thuộc tính '%s' trong hệ thống này!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
+msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr "Trường được yêu cầu '%s' bị rỗng!"
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
-msgstr "'%s' không được phép:"
+msgid "The field \"%s\" contains an invalid value."
+msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
-msgstr "'%s' không được cho phép!"
+msgid "Example: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr "PHP mở rộng %s mất tích!"
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "Hủy bỏ"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "Ok"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "Áp dụng"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "Lưu lại"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "Thêm vào"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr "Thêm %s"
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "Xóa"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr "Xóa %s"
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr "Hiệu chỉnh..."
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr "Hiệu chỉnh %s..."
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "Quay lại"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr "Tài khoản này không có chức năng mở rộng %s hợp lệ!"
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
@@ -1012,7 +1197,7 @@ msgstr ""
 "Tài khoản này đã bật các thiết lập %s lên. Bạn có thể tắt chúng đi bằng việc"
 " kích vào bên dưới."
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
@@ -1021,7 +1206,7 @@ msgstr ""
 "Tài khoản này đã bật các thiết lập %s lên. Để tắt chúng đi, bạn cần phải xóa"
 " thiết lập %s trước!"
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
@@ -1030,7 +1215,7 @@ msgstr ""
 "Tài khoản này đã tắt các thiết lập %s đi. Bạn có thể bật chúng lên bằng việc"
 " kích vào bên dưới."
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
@@ -1039,857 +1224,767 @@ msgstr ""
 "Tài khoản này đã tắt các thiết lập %s đi. Để bật chúng lên, bạn cần phải "
 "thêm thiết lập %s trước!"
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr "Thêm thiết lập %s "
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr "Xóa thiết lập %s"
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "Tháng Một"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "Tháng Hai"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "Tháng Ba"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "Tháng Tư"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "Tháng Năm"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "Tháng Sáu"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "Tháng Bảy"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "Tháng Tám"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "Tháng Chín"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "Tháng Mười"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "Tháng Mười Một"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "Tháng Mười Hai"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr "Chủ nhật"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr "Thứ Hai"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr "Thứ Ba"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr "Thứ Tư"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr "Thứ Năm"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr "Thứ Sáu"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr "Thứ Bảy"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr "Đọc thao tác"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr "thêm tao tác"
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr "thay đối thao tác"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr "xóa thao tác"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr "tìm kiếm thao tác"
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr "Xác định thẩm quyền"
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr "LDAP %s thất bại!"
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr "Hoạt động LDAP thất bại!"
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "đối tượng"
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr "Tải lên thất bại!"
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr "Tải lên thất bại: %s"
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr "Giao tiếp với dịch vụ cơ sở hạ tầng bị thất bại!"
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr "Giao tiếp với dịch vụ cơ sở hạ tầng bị thất bại: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
+msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr "'%s' này vẫn còn được sử dụng bởi đối tượng: %s "
+msgid "Checking for %s support"
+msgstr "Kiểm tra hỗ trợ %s"
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
-msgstr "'%s' này vẫn còn được sử dụng."
+msgid "Install and activate the %s PHP module."
+msgstr "Cài đặt và kích hoạt mô-đun PHP %s."
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr "'%s' vẫn còn được sử dụng bởi các đối tượng này: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
+msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
-msgstr "File '%s' không tồn tại!"
+msgid "\"%s\" was not found in attributes"
+msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr "Không thể mở file '%s' để đọc!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr "Không thể mở file '%s' để viết!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
+msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
-msgstr "Không thế xóa file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
+msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
-msgstr "Không thể tạo ra folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
+msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
-msgstr "Không thể xóa folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
+msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
-msgstr "Kiểm tra hỗ trợ %s"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
+msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
-msgstr "Cài đặt và kích hoạt mô-đun PHP %s."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
+msgstr "Cơ sở"
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
 #, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "Tên"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "Mô tả"
-
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "Không rõ"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
-msgstr "Cơ sở"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "Xóa bỏ"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "Hiệu chỉnh"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
-msgstr ""
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
+msgstr "Quản lý các danh sách kiểm soát truy cập"
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
-msgstr ""
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
+msgstr "Các vai trò ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "Nhóm người dùng"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "Không rõ"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
-msgstr ""
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
+msgstr "Entry '%s' không được biết đến!"
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "Cảnh báo"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
-msgstr "Lỗi về cấp phép"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
-msgstr "Bạn không được phép tạo ra snapshot cho %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
-msgstr "Bạn không được phép phục hồi một snapshot cho %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
+msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "Tạo "
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
-
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
-msgstr "Quản lý các danh sách kiểm soát truy cập"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
-msgstr "Các vai trò ACL"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
+msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
-msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:170
-#, php-format
-msgid "Unknown entry '%s'!"
-msgstr "Entry '%s' không được biết đến!"
+#: include/class_ldap.inc:210
+msgid ""
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
+msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:233
 #, php-format
-msgid "All users"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
-msgstr "Cảnh báo khả năng hoạt động"
-
-#: include/class_ldap.inc:277
+#: include/class_ldap.inc:390
 #, php-format
 msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 "Khả năng hoạt động của LDAP rất thấp: truy vấn lần cuối mất khoảng %.2fs!"
 
-#: include/class_ldap.inc:797
-#, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
+msgstr ""
+
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:985
 #, php-format
 msgid ""
 "Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1026
+#, php-format
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgstr ""
+
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "Trong khi chạy trên '%s' sử dụng LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "Trong khi chạy trên LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "Timestamp"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr "Y-m-d, H:i:s (Năm-tháng-ngày)"
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
+msgstr "Lỗi khi đang thêm một khóa vào. Hãy liên lạc với các nhà phát triển!"
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
+"Không thể tạo ra việc khóa thông tin trong cây LDAP.Xin hãy liên lạc với "
+"admin của bạn!"
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
-msgstr ""
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
+msgstr "LDAP server trả về: %s"
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
+"Tìm thấy nhiều khóa khác nhau để khóa đối tượng. Điều này không nên xảy ra -"
+" hãy dọn sạch các tham chiếu."
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "Danh sách các bộ phận"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "Bộ phận"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "Cứ hiệu chỉnh"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr ""
@@ -1898,127 +1993,142 @@ msgstr ""
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "Tổ chức"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "Bộ phận"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "Các bộ phận"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "Properties"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "Các danh mục"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "Vị trí"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "Bang"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "Quốc Gia"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "Địa chỉ"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "Số điện thoại"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "Số fax"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "Tên"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2027,265 +2137,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "Vai trò"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "Trạng thái"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "Nhóm đối tượng"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "Nhóm "
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "Các đối tượng thành viên"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "Ủy thác hệ thống"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "Chế độ ủy thác"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "Đã vô hiệu"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "Truy cập hoàn toàn"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "Cho phép truy cập đến các máy chủ này"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "Danh sách các nhóm"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "Các thành viên"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "Vai trò"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2303,8 +2378,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr ""
 
@@ -2320,391 +2395,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "Các thành viên"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "Danh sách người dùng"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "Tên thật"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "Người dùng"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr "Áp dụng mẫu"
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "Người dùng"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr "Quản lý người dùng"
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr "Chứa các thiết lập cho các đối tượng: %s"
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr "Các vai trò kiểm soát truy cập"
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr "Không có cài đặt ACL cho mục này"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr "ACL cho các đối tượng sau: %s"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr "Hiệu chính mục ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr "Xác lập mục ACL"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr "Danh sách tất cả các mục ACL hiện có"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr "Tất cả các đối tượng hiện trong  cây thư mục con hiện tại"
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "đọc"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "viết"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
-msgstr "Hiển thị/ Ẩn các thiết lập cao cấp "
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
-msgstr "Tạo ra đối tượng"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
-msgstr "Dịch chuyển đối tượng"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
-msgstr "Xóa đối tượng"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
-msgstr "Hoàn thành đối tượng"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr "Bật chức năng snapshots"
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr "Gốc snapshot"
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "Tất cả các nhóm đối tượng"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2712,103 +2849,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr "Thuộc tính đăng nhập"
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2820,31 +2959,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2853,699 +2992,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr "Cấu hình"
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr "Xem và cảm nhận"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr "Theme"
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr "Múi giờ"
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
-msgstr "Bật chức năng snapshots"
-
-#: plugins/config/class_configInLdap.inc:136
-msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr "Gốc snapshot"
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
 "respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
+#: plugins/config/class_configInLdap.inc:112
 msgid "Password settings"
 msgstr "Thiết lập mật khẩu"
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr "Độ dài tối thiểu của mật khẩu"
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr "Sử dụng việc hết hạn tài khoản"
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr "Đăng nhập và phiên"
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr "Thực thi việc mã hóa các kết nối"
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr "Cảnh báo nếu một phiên chưa được mã hóa"
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr "Thời gian cho một phiên (một Session)"
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr "Kho lưu trữ người và nhóm"
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr "Thuộc tính DN người"
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr "Sá»­a lá»—i"
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr "Thời gian truy vấn LDAP tối đa"
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr "Đăng nhập thống kê LDAP"
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr "Cấp độ sửa lỗi"
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr "Hiển thị tóm tắt trên danh sách"
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr "Tự động"
+
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
-msgstr "Tự động"
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "Đăng nhập"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3553,36 +3782,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3590,16 +3946,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr "Phương pháp lập mật khẩu"
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3607,273 +3985,322 @@ msgstr ""
 msgid "Password"
 msgstr "Mật khẩu"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "Người dùng"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "Thông tin cá nhân"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "Họ"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "Tên"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "Số phòng"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr "Số phòng"
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "Điện thoại di động"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "Máy nhắn tin"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "Trang chá»§"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr "Ngôn ngữ muốn sử dụng"
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "Đại chỉ nhà theo bưu điện"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "Số điện thoại riêng"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr "Số điện thoại nhà"
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "Thông tin về tổ chức"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "Số phòng ban"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr "Số phòng làm việc"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "Số nhân viên"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr "Số nhân viên"
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "Loại nhân viên"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "Mã bưu điện"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "Bạn cần xác định mật khẩu hiện tại để có thể tiếp tục."
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "Mật khẩu mới"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "Mật khẩu mới và mật khẩu cũ quá giống nhau."
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "Các tham chiếu"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "Chào mừng %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr "Đã hoàn thành"
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr "Tiếp tục"
 
@@ -3945,10 +4372,6 @@ msgstr "Mật khẩu Admin"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "Trạng thái"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr "Tình trạng hiện tại"
@@ -3971,46 +4394,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr "Kết nối nặc danh với server '%s' thất bại!"
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr "Kết nối với vai trò người dùng '%s' thất bại!"
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr "Kết nối nặc danh đến server '%s' thành công."
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr "Xin hãy xác định người dùng và mật khẩu!"
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr "Kết nối với tư cách người dùng '%s' đến server '%s' thành công!"
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr "Kiểm tra các module và mở rộng của PHP"
 
@@ -4026,103 +4449,83 @@ msgstr "Kiểm tra cài đặt"
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr "Kiểm tra cơ bản cho khả năng tương thích và mở rộng PHP "
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr "Kiểm tra phiên bản PHP"
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr "PHP phải là phiên bản %s hoặc như trên."
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr "Xin hãy cập nhật cho một phiên bản hỗ trợ."
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
-msgid "FusionDirectory requires this module for the samba integration."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
+#: setup/class_setupStepChecks.inc:109
+msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr "mbstring"
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 "PHP sử dụng giá trị này để phần mềm thu dọn rác có thể sóa các phiên cũ đi."
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
@@ -4130,7 +4533,7 @@ msgstr ""
 "Thiết lập giá trị này đến một ngày sẽ ngăn cản việc mất đi các phiên và "
 "cookies trước khi chúng thực sự hết hạn."
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
@@ -4138,35 +4541,35 @@ msgstr ""
 "Tìm kiếm  'session.gc_maxlifetime' trong thư mục php.ini của bạn và thiết "
 "lập nó đển 86400 hoặc cao hơn."
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr "Tắt"
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 "Tìm kiếm  'session.auto_start' trong thư mục php.ini của bạn và đặt nó thành"
 " 'Off'."
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
@@ -4174,17 +4577,17 @@ msgstr ""
 "Lựa chọn này sẽ ảnh hưởng tới việc sử lý đầu vào PHP. Tắt chức năng này đi, "
 "để tăng khả năng hoạt động."
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 "Tìm kiếm 'implicit_flush' trong thư mục php.ini của bạn và chuyển nó sang "
 "'Off'."
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr "Thời gian chạy ít nhất là 30 giây."
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
@@ -4192,7 +4595,7 @@ msgstr ""
 "Tìm kiếm 'max_execution_time' trong thư mục php.ini của bạn và thiết lập nó "
 "đến '30' hoặc cao hơn."
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
@@ -4201,230 +4604,282 @@ msgstr ""
 " sẽ không gửi bất cứ thông tin nào về server bạn đang chạy trong trường hợp "
 "này."
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 "Tìm kiếm 'expose_php' trong thư much php.ini của bạn và chuyển nó thành "
 "'Off'."
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr "Di trú"
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr "Thanh tra LDAP"
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr "Kiểm tra những người dùng ẩn"
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr "Kiểm tra siêu admin"
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr "Kiểm tra người dùng bên ngoài cây con người"
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr "Kiểm tra nhóm bên ngoài cây nhóm"
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr "Kiểm tra các bộ phận ẩn"
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
-msgstr "Kiểm tra các số ID cuả người dùng (UID) được nhân bản"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
+msgstr "Kiểm tra các số ID của nhóm (GID) được nhân bản"
+
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr "Yêu cầu LDAP thất bại"
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "Thất bại"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
+#, php-format
+msgid ""
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:627
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
 "incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
 msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
-msgstr "Lỗi di trú"
-
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "Các nhóm"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr "Chuyển người dùng sang cây người dùng được cấu hình"
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
-msgstr "đến"
-
-#: setup/class_setupStepMigrate.inc:1097
+#: setup/class_setupStepMigrate.inc:1182
 msgid "The following references will be updated"
 msgstr "Tham chiếu sau sẽ được cập nhật"
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
-msgstr "Đã tìm thấy %s nhóm bên ngoài cây được cấu hình '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
+msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4439,7 +4894,7 @@ msgstr "Kết thúc - viết file cấu hình"
 msgid "Write configuration file"
 msgstr "Viết file cấu hình"
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
@@ -4447,15 +4902,15 @@ msgstr ""
 "File cấu hình của bạn hiện cả thế giới đều đọc được. Xin hãy cập nhật quyền "
 "truy cập file!"
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr "Cấu hình hiện tại không thể đọc được hoặc nó không tồn tại."
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4474,221 +4929,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr "Smarty"
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-"Không thể truy cập vào thư mục '%s' được xác định là thư mục soạn thảo!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr "Cấu hình PHP"
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr "Thay đổi mật khẩu"
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr "Mật khẩu của bạn chuẩn bị hết hạn, xin hãy thay đối mật khẩu của bạn!"
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr "Hết dung lượng bộ nhớ!"
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr "Vô hiệu việc kiểm tra ACL của người dùng"
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr "Plugin"
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "Đăng ký"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr "Lá»—i Smarty"
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "Xin hãy xác định một tên người dùng hợp lệ!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "Xin hãy xác định mật mã của bạn!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "Xin hãy kiểm tra kết hợp tên người dùng/mật khẩu."
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-"Tài khoản bị khóa. Xin hãy liên lạc với admin quản trị hệ thống của bạn!"
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-"Trình duyệt của bạn đã vô hiệu cookies. Xin hãy cho phép cookies vào và tải "
-"lại trang này trước khi đăng nhập!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4705,25 +4991,13 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
+msgstr "Hiển thị/ Ẩn các thiết lập cao cấp "
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
-msgstr ""
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
+msgstr "Hoàn thành đối tượng"
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
 msgid "There is one expired account"
@@ -4731,7 +5005,7 @@ msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4777,8 +5051,8 @@ msgid_plural "There are %1 users:"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
@@ -4787,7 +5061,7 @@ msgid_plural "%1 of them are locked"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4795,7 +5069,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 
@@ -4841,10 +5115,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr "Hiện tại"
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr "Sau khi di trú"
 
@@ -4866,7 +5142,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4911,12 +5187,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4978,7 +5254,12 @@ msgstr ""
 "Nếu bạn muốn biết việc gì sẽ được tiến hành khi di trú các entry được chọn "
 "này, hãy sử dụng phím 'hiển thị thay đổi 'để xem định dạng LDIF."
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr "Chọn tất"
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr "Hiển thị các thay đổi"
 
@@ -5089,14 +5370,28 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr ""
+"Trình duyệt của bạn đã vô hiệu cookies. Xin hãy cho phép cookies vào và tải "
+"lại trang này trước khi đăng nhập!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "Kích vào đây để đăng nhập"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5109,6 +5404,59 @@ msgstr ""
 "Vì thế nếu bạn chắc chắn hãy nhấn \"Xóa bỏ\" để tiếp tục hoặc'Hủy bỏ' để "
 "dừng lại."
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "Xuống"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "Các thao tác"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr "Tìm kiếm tại các cây con"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "Áp dụng bộ lọc"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5118,28 +5466,26 @@ msgstr ""
 msgid "Continue"
 msgstr "Tiếp tục"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "Phát hiện xung đột khóa"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5156,6 +5502,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "Ná»™p"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "Trang chính"
@@ -5174,6 +5525,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5186,22 +5541,24 @@ msgstr ""
 " kiếm của bạn vào các giá trị nhỏ hơn và sử dụng bộ lọc để có được các entry"
 " mà bạn đang tìm kiếm."
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "Xin hãy lựa chọn cách để phản ứng với phiên này"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
-msgstr "Lờ đi lỗi này và hiển thị tất cả các entry mà LDAP server trả về "
+msgid "Please choose the way to react for this session:"
+msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
-"Lờ lỗi này đi và hiển thị tất cả các entry mà phù hợp với giới hạn kích cỡ "
-"đã xác định và thay vào đó cho tôi sử dụng các bộ lọc "
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "Đặt"
diff --git a/locale/zh/fusiondirectory.po b/locale/zh/fusiondirectory.po
index 6c836a07d206060fa26996f43cadb58e8c9aabae..c91d81c858d09d7192dd9f1fe8f0dc8b39fb224b 100644
--- a/locale/zh/fusiondirectory.po
+++ b/locale/zh/fusiondirectory.po
@@ -11,139 +11,548 @@ msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
 "Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2021\n"
-"Language-Team: Chinese (https://www.transifex.com/fusiondirectory/teams/12202/zh/)\n"
+"Language-Team: Chinese (https://app.transifex.com/fusiondirectory/teams/12202/zh/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: zh\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
 msgstr "错误"
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "类型"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
+#, php-format
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/actions/class_Action.inc:166
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
-msgstr "XML 出错于 fusiondirectory.conf: %s ,行 %d"
+msgid "Not enough targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/actions/class_Action.inc:169
+#, php-format
+msgid "Too many targets (%d) passed for action \"%s\""
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "日期"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "描述"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
+msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
+#, php-format
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "对象"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "日期"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
+#, php-format
+msgid "Searches in %s"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
-msgstr "LDAP 错误"
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
+msgstr ""
+
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
+msgstr ""
+
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
+msgstr ""
+
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
+msgstr ""
+
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
+msgstr ""
+
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "模板"
+
+#: include/management/class_management.inc:211
+msgid "From template"
+msgstr ""
+
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "创建"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
+msgstr ""
+
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "编辑"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
+msgstr ""
+
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
+msgstr ""
+
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "粘贴"
 
-#: include/class_config.inc:325
+#: include/management/class_management.inc:277
+msgid "Apply template"
+msgstr ""
+
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "删除"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
+msgstr ""
+
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
+msgstr ""
+
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
+msgstr ""
+
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
+msgstr ""
+
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
+msgstr ""
+
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
+msgstr ""
+
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
+msgstr ""
+
+#: include/management/class_management.inc:917
+msgid "Archive success"
+msgstr ""
+
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
+msgstr ""
+
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
+msgstr ""
+
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
+msgstr ""
+
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
+msgstr ""
+
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
+msgstr ""
+
+#: include/management/class_managementListing.inc:400
+msgid "Go to root department"
+msgstr "转到根部门"
+
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
+msgid "Root"
+msgstr "æ ¹"
+
+#: include/management/class_managementListing.inc:408
+msgid "Go up one department"
+msgstr "向上跳转一个部门"
+
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "上"
+
+#: include/management/class_managementListing.inc:416
+msgid "Go to user's department"
+msgstr ""
+
+#: include/management/class_managementListing.inc:417
+msgid "Home"
+msgstr ""
+
+#: include/management/class_managementListing.inc:429
+msgid "Reload list"
+msgstr "重新加载列表"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
+msgstr ""
+
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
+msgstr ""
+
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "配置"
+
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr "XML 出错于 fusiondirectory.conf: %s ,行 %d"
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgstr ""
+
+#: include/class_config.inc:318
 msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/class_config.inc:348
 #, php-format
 msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/class_config.inc:884
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required variable \"%s\" is "
 "not set."
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/class_config.inc:900
 #, php-format
 msgid ""
 "The snapshot functionality is enabled, but the required compression module "
 "is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_config.inc:900
+#: include/class_config.inc:994
 msgid "All categories"
 msgstr ""
 
-#: include/class_config.inc:1042
+#: include/class_config.inc:1158
 msgid "My account"
 msgstr "我的账号"
 
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
+msgstr ""
+
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
+msgstr ""
+
+#: include/class_exceptions.inc:159
+#, php-format
+msgid "Unknown class \"%s\"!"
+msgstr ""
+
 #: include/exporter/class_PDF.php:61
 msgid "Page"
 msgstr ""
 
 #: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
 msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
+msgstr ""
+
+#: include/exporter/class_pdfExporter.inc:321
 msgid "PDF"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
+#: include/exporter/class_csvExporter.inc:118
 msgid "CSV"
 msgstr ""
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
+#: include/php_setup.inc:61 include/php_setup.inc:153
 msgid "File"
 msgstr "文件"
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
+#: include/php_setup.inc:63 include/php_setup.inc:153
 msgid "Line"
 msgstr "行"
 
@@ -167,1149 +576,856 @@ msgstr "静态"
 msgid "method"
 msgstr "方法"
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
 msgid "Trace"
 msgstr "跟踪"
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
-msgstr "类型"
-
-#: include/php_setup.inc:149
+#: include/php_setup.inc:154
 msgid "Arguments"
 msgstr "参数"
 
-#: include/php_setup.inc:247
+#: include/php_setup.inc:243
 msgid "Generating this page caused the PHP interpreter to raise some errors!"
 msgstr "生成这个页面导致 PHP 解析器发生一些错误!"
 
-#: include/php_setup.inc:252
+#: include/php_setup.inc:248
 msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/php_setup.inc:249
+msgid "Mail icon"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
-msgstr "切换信息"
-
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
-msgstr "上"
-
-#: include/class_listing.inc:312
-msgid "Down"
-msgstr "关闭"
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
-msgstr ""
-
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/php_setup.inc:249
+msgid "Send bug report"
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
-msgstr ""
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr "切换信息"
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
 msgstr ""
 
-#: include/class_listing.inc:1175
-msgid "Go to root department"
-msgstr "转到根部门"
-
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
-msgid "Root"
-msgstr "æ ¹"
-
-#: include/class_listing.inc:1183
-msgid "Go up one department"
-msgstr "向上跳转一个部门"
-
-#: include/class_listing.inc:1191
-msgid "Go to user's department"
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
-msgid "Home"
+#: include/class_template.inc:44
+msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_listing.inc:1198
-msgid "Reload list"
-msgstr "重新加载列表"
-
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
-msgstr "动作"
-
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
-msgstr ""
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "模板名称"
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
-msgstr "粘贴"
-
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
-msgstr "剪切条目"
-
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
-msgstr "拷贝条目"
-
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Login with user \"%s\" triggered error: %s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "登录"
+
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
+#, php-format
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/login/class_LoginMethod.inc:56
+#, php-format
+msgid ""
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
-msgstr "模板"
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "请输入一个有效的用户名!"
 
-#: include/class_template.inc:44
-msgid "Object template, used to create several objects with similar values"
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "请输入您的口令!"
+
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
-msgstr "模板名称"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAP 错误"
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_logging.inc:81
-#, php-format
-msgid "Logging failed: %s"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_logging.inc:103
-#, php-format
-msgid "Invalid option \"%s\" specified!"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginHTTPHeader.inc:49
+#, php-format
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid "Cannot change password, unknown user \"%s\""
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
-msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr "提交"
-
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-msgstr "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
-
-#: include/class_filter.inc:369
-msgid "Apply filter"
-msgstr "应用过滤器"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "邮件地址"
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
 msgstr ""
 
-#: include/class_filter.inc:404
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "Searches in %s"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid "The size limit of %d entries is exceed!"
-msgstr "超过了 %d 个条目的大小限制!"
+msgid "Found multiple accounts with login \"%s\""
+msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/class_passwordRecovery.inc:294
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
-msgstr "设置新的大小限制为 %s 并且如果限制依然超出还显示这条信息。"
-
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
-msgstr "配置"
-
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
-msgstr "不完整"
+msgid "There is no account using email \"%s\""
+msgstr ""
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:305
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:412
-#, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
-msgstr "致命错误:连接 LDAP 错误。服务器返回 '%s'。"
-
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/password-methods/class_passwordMethodSasl.inc:66
+#, php-format
+msgid "Cannot change password, unknown user \"%s\""
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
+msgid ""
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
-msgstr "警告"
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "不完整"
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
-msgstr "仍然继续"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
-msgstr "仍然编辑"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr "登录名"
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
-msgstr "允许"
-
-#: include/class_CopyPasteHandler.inc:266
-msgid "Cancel all"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:332
-msgid "Cannot paste"
-msgstr ""
-
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr "选择在子树中查询"
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
+#: include/class_pluglist.inc:580
 #, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
+#: include/class_CopyPasteHandler.inc:267
+msgid "Cancel all"
 msgstr ""
 
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
+#: include/class_CopyPasteHandler.inc:333
+msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
 msgstr "取消"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
 msgstr "好"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
 msgstr "应用"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
 msgstr "保存"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
 msgstr "添加"
 
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
 msgstr "删除"
 
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
-
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
 msgstr "返回"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
 msgstr "一月"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
 msgstr "二月"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
 msgstr "三月"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
 msgstr "四月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
 msgstr "五月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
 msgstr "六月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
 msgstr "七月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
 msgstr "八月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
 msgstr "九月"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
 msgstr "十月"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
 msgstr "十一月"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
 msgstr "十二月"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
-
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr "对象"
-
-#: include/class_msgPool.inc:701
-msgid "Upload failed!"
-msgstr ""
-
-#: include/class_msgPool.inc:704
-#, php-format
-msgid "Upload failed: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:715
-msgid "Communication failure with the infrastructure service!"
-msgstr ""
-
-#: include/class_msgPool.inc:717
-#, php-format
-msgid "Communication failure with the infrastructure service: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
-#, php-format
-msgid "This '%s' is still in use by this object: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:736
-#, php-format
-msgid "This '%s' is still in use."
-msgstr ""
-
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:748
-#, php-format
-msgid "File '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
-msgstr ""
-
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
-msgstr ""
-
-#: include/class_msgPool.inc:778
-#, php-format
-msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+
+#: include/class_msgPool.inc:556
+msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:788
+#: include/class_msgPool.inc:559
 #, php-format
-msgid "Cannot delete file '%s'!"
+msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/class_msgPool.inc:570
+msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:808
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Cannot delete folder '%s'!"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:818
+#: include/class_msgPool.inc:582
 #, php-format
 msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:828
+#: include/class_msgPool.inc:592
 #, php-format
 msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:848
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
+msgstr ""
+
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
 "Recursive dependency in the template fields: \"%1$s\" cannot depend on "
 "\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
-msgstr ""
-
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
-msgstr "名称"
-
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
-msgstr "描述"
-
-#: include/simpleplugin/class_simpleService.inc:113
+#: include/simpleplugin/class_simpleService.inc:118
 msgid "Get service status"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
+#: include/simpleplugin/class_simpleService.inc:119
 msgid "Start service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
+#: include/simpleplugin/class_simpleService.inc:120
 msgid "Stop service"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:116
+#: include/simpleplugin/class_simpleService.inc:121
 msgid "Restart service"
 msgstr ""
 
 #: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
 #: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
 msgid "Base"
 msgstr "位置"
 
@@ -1321,553 +1437,535 @@ msgstr ""
 msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
+msgstr ""
+
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "未知"
+
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr "日期"
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
 msgstr "上传"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
 msgstr "下载"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
-msgstr "删除"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
-msgstr "编辑"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
+msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
 msgstr "小时"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
 msgstr "天"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr "用户组"
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
-msgstr "未知"
-
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "警告"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
-msgstr "创建"
-
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
-msgstr "ACL"
-
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:118
+#: include/class_ldap.inc:137
 #, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
+msgstr ""
+
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
-msgstr "当操作 '%s' 使用 LDAP 服务器 '%s' 时"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
-msgstr "当操作  LDAP 服务器 '%s' 时"
+msgid "%s (while operating on LDAP server \"%s\")"
+msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr "日期"
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
-msgstr "部门列表"
-
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr "部门"
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "仍然编辑"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
 msgstr "域"
@@ -1876,127 +1974,142 @@ msgstr "域"
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
 msgstr "组织/公司"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "部门"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
 msgstr "部门"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
 msgstr "部门"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
 msgstr "属性"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
 msgstr "分类"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
 msgstr "位置"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
 msgstr "州/省"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
 msgstr "国家"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
 msgstr "住址"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
 msgstr "电话"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
 msgstr "传真"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "名称"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2005,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:203
-#, php-format
-msgid "Action called without error(result was \"%s\")"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr "角色"
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr "Posix"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
+#, php-format
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "状态"
+
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
-msgstr "显示主要组"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
-msgstr "显示 samba 用户组"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
+msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
 msgstr "对象组"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
 msgstr "组"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
 msgstr "所有者"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
 msgstr "成员对象"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
 msgstr "信赖的系统"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
 msgstr "信赖模式"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
 msgstr "禁用"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
 msgstr "完全访问权限"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
 msgstr "允许访问这些主机"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr "组列表"
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "成员"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "角色"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2281,8 +2359,8 @@ msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
 msgstr "电话号码"
 
@@ -2298,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
 msgstr "模式"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr "成员"
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr "用户列表"
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr "å§“"
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr "名"
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr "用户"
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr "编辑用户"
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
 msgstr "用户"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
-msgstr "读"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
-msgstr "写"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
+msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
 msgstr "对象组"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2690,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2798,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2831,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
 msgstr "语言"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:217
 msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
+#: plugins/config/class_configInLdap.inc:222
 msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port"
 msgstr "端口"
 
-#: plugins/config/class_configInLdap.inc:271
+#: plugins/config/class_configInLdap.inc:227
 msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
+#: plugins/config/class_configInLdap.inc:232
 msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:343
 msgid "Miscellaneous"
 msgstr "杂项"
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
-msgstr "钩子"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
+msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "登录名"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
 msgstr "邮件"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
 msgstr "导入"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3531,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3568,16 +3927,38 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
@@ -3585,273 +3966,322 @@ msgstr ""
 msgid "Password"
 msgstr "口令"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "用户"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
 msgstr "个人信息"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
 msgstr "å§“"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
 msgstr "名"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
 msgstr "房间号"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
 msgstr "手机"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
 msgstr "呼机"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
 msgstr "个人主页"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
 msgstr "显示名称"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
 msgstr "住宅地址"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
 msgstr "私人电话"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
 msgstr "组织信息"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
 msgstr "ç§°è°“"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
 msgstr "部门编号"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
 msgstr "员工编号"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
 msgstr "员工类别"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
 msgstr "邮编"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
 msgstr "您需要输入当前口令才能继续。"
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
 msgstr "新口令"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
 msgstr "输入的新口令和当前口令非常相似。"
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
 msgstr "参考"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
 msgstr "欢迎 %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3923,10 +4353,6 @@ msgstr "管理员口令"
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr "状态"
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3949,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
 msgstr "重试"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
 msgstr "刷新"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4004,387 +4430,419 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
-msgid ""
-"FusionDirectory requires this module to communicate with different types of "
-"servers and protocols."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
+#: setup/class_setupStepChecks.inc:85
+msgid ""
+"FusionDirectory requires this module to communicate with different types of "
+"servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
+#: setup/class_setupStepChecks.inc:109
 msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
 msgstr "失败"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
 msgstr "用户组"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1336
+#, php-format
+msgid "Size limit of %d hit. Please check this manually"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1371
+#, php-format
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1373
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1469
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
@@ -4399,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4432,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr "目录 '%s' 作为编译目录无法访问!"
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr "邮件地址"
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr "登录"
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr "请输入一个有效的用户名!"
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr "请输入您的口令!"
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr "请检查用户名/口令。"
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr "您的浏览器已经禁用 cookies。请启用 cookies 并在登录前重新加载本页面!"
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr "过滤器"
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4659,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr "显示模板"
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4685,7 +4966,7 @@ msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4731,8 +5012,8 @@ msgid_plural "There are %1 users:"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
@@ -4741,7 +5022,7 @@ msgid_plural "%1 of them are locked"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4749,7 +5030,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 
@@ -4794,10 +5075,12 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
@@ -4819,7 +5102,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4863,12 +5146,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4928,7 +5211,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -5037,14 +5325,26 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr "您的浏览器已经禁用 cookies。请启用 cookies 并在登录前重新加载本页面!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
 msgstr "点击这里登录"
 
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
+msgstr ""
+
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
 msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5055,6 +5355,59 @@ msgstr ""
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
 msgstr "所以,如果您确定,请按“删除”继续,否则按“取消”退出。"
 
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "关闭"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "动作"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "过滤器"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "应用过滤器"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5064,28 +5417,26 @@ msgstr ""
 msgid "Continue"
 msgstr "ç»§ç»­"
 
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
-
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
 msgstr "检测到锁定冲突"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5102,6 +5453,11 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "提交"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
 msgstr "首页"
@@ -5120,6 +5476,10 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
@@ -5128,20 +5488,24 @@ msgid ""
 msgstr ""
 "大小限制选项会让 LDAP 操作更快,以免使 LDAP 服务器过载。最简单让大数据库处理不发成长时间超时的办法是,将查询缩小到更少并且使用过滤器。"
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr "请选择响应这个会话的方法"
-
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
-msgstr "忽略错误并显示 LDAP 服务器返回的所有条目"
+msgid "Please choose the way to react for this session:"
+msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
-msgstr "忽略错误并显示在定义限制长度内的所有条目,并让我使用过滤器。"
+msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
 msgid "Set"
 msgstr "设置"
diff --git a/locale/zh_TW/fusiondirectory.po b/locale/zh_TW/fusiondirectory.po
index b5b96a2899f56521fc6dc21e63021ad168557473..4b6e49e1c799734d3858a2f45248d00c7fda4aea 100644
--- a/locale/zh_TW/fusiondirectory.po
+++ b/locale/zh_TW/fusiondirectory.po
@@ -3,1996 +3,2113 @@
 # This file is distributed under the same license as the FusionDirectory package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 # 
+# Translators:
+# fusiondirectory <contact@fusiondirectory.org>, 2023
+# 
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: FusionDirectory VERSION\n"
 "Report-Msgid-Bugs-To: bugs@fusiondirectory.org\n"
-"POT-Creation-Date: 2022-07-28 16:55+0000\n"
-"PO-Revision-Date: 2016-08-29 14:52+0000\n"
-"Language-Team: Chinese (Taiwan) (https://www.transifex.com/fusiondirectory/teams/12202/zh_TW/)\n"
+"POT-Creation-Date: 2023-04-18 17:26+0000\n"
+"PO-Revision-Date: 2018-08-13 19:47+0000\n"
+"Last-Translator: fusiondirectory <contact@fusiondirectory.org>, 2023\n"
+"Language-Team: Chinese (Taiwan) (https://app.transifex.com/fusiondirectory/teams/12202/zh_TW/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: zh_TW\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: include/class_msg_dialog.inc:136 include/class_msg_dialog.inc:172
-#: include/class_config.inc:354 include/class_listing.inc:530
-#: include/class_SnapshotHandler.inc:408 include/class_SnapshotHandler.inc:412
-#: include/password-methods/class_password-methods-sasl.inc:65
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: include/class_msgPool.inc:220 include/class_msgPool.inc:240
-#: include/class_msgPool.inc:270 include/class_msgPool.inc:688
-#: include/class_msgPool.inc:717
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:89
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:91
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
-#: include/simpleplugin/attributes/class_FileAttribute.inc:366
-#: include/simpleplugin/attributes/class_FileAttribute.inc:377
-#: include/simpleplugin/class_simplePlugin.inc:697
-#: include/simpleplugin/class_simpleTabs.inc:73
-#: include/simpleplugin/class_multiPlugin.inc:78
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:192 html/index.php:465
-#: html/index.php:479 html/index.php:489 html/index.php:543 html/index.php:553
-#: setup/setup_checks.tpl.c:8 ihtml/themes/breezy/msg_dialog.tpl.c:2
+#: include/class_msg_dialog.inc:150 include/class_msgPool.inc:543
+#: include/simpleplugin/class_simplePlugin.inc:700
+#: include/errors/class_FusionDirectoryError.inc:56
+#: include/errors/class_SimplePluginError.inc:140
+#: include/errors/class_SimplePluginHookError.inc:78
+#: include/errors/class_FatalError.inc:74 setup/setup_checks.tpl.c:8
+#: ihtml/themes/breezy/msg_dialog.tpl.c:2
 msgid "Error"
+msgstr "错误"
+
+#: include/management/class_ManagementConfigurationDialog.inc:57
+msgid "Management configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:61
+msgid "Columns"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:62
+msgid "Columns displayed for this management list"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+#: include/php_setup.inc:153
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
+msgid "Type"
+msgstr "类型"
+
+#: include/management/class_ManagementConfigurationDialog.inc:66
+msgid "Type of column"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid "Attribute"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:71
+msgid ""
+"LDAP attributes to display, comma separated. Special values \"nameAttr\" and"
+" \"mainAttr\" also work."
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Label"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:75
+msgid "Column title"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid "Persistent"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:86
+msgid ""
+"Should this configuration be saved in the LDAP as your default configuration"
+" for this management page"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid "Forget my persistent configuration"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:92
+msgid ""
+"Delete the persistent configuration for this management page so that the "
+"default one is used"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:93
+#: include/management/class_ManagementConfigurationDialog.inc:105
+msgid "Forget"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid "Global default"
+msgstr ""
+
+#: include/management/class_ManagementConfigurationDialog.inc:98
+msgid ""
+"Should this configuration be saved in the LDAP as the default configuration "
+"for this management page for all users"
 msgstr ""
 
-#: include/class_msg_dialog.inc:177
-msgid "Please fix the above error and reload the page."
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid "Forget global default"
 msgstr ""
 
-#: include/class_config.inc:151
+#: include/management/class_ManagementConfigurationDialog.inc:104
+msgid ""
+"Delete the global default configuration for this management page so that the"
+" default one is used"
+msgstr ""
+
+#: include/management/actions/class_Action.inc:162
 #, php-format
-msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgid "You are not allowed to execute action \"%s\" on target \"%s\""
 msgstr ""
 
-#: include/class_config.inc:154 include/class_config.inc:287
-#: include/class_config.inc:775 include/class_config.inc:787
-#: include/class_timezone.inc:51
-#: include/password-methods/class_password-methods-sha.inc:63
-#: include/password-methods/class_password-methods-ssha.inc:67
-#: include/password-methods/class_password-methods-ssha.inc:83
-#: include/functions.inc:594 html/class_passwordRecovery.inc:141
-#: html/main.php:206 html/index.php:153
-msgid "Configuration error"
+#: include/management/actions/class_Action.inc:166
+#, php-format
+msgid "Not enough targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:283
+#: include/management/actions/class_Action.inc:169
 #, php-format
-msgid ""
-"It seems you are trying to decode something which is not encoded : %s<br/>\n"
-"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
+msgid "Too many targets (%d) passed for action \"%s\""
 msgstr ""
 
-#: include/class_config.inc:325 include/class_SnapshotHandler.inc:66
-#: include/class_SnapshotHandler.inc:251 include/class_SnapshotHandler.inc:281
-#: include/class_SnapshotHandler.inc:297 include/class_SnapshotHandler.inc:420
-#: include/class_SnapshotHandler.inc:423
-#: include/password-methods/class_password-methods.inc:199
-#: include/functions.inc:438 include/functions.inc:612
-#: include/functions.inc:659 include/functions.inc:767
-#: include/simpleplugin/attributes/class_SetAttribute.inc:743
-#: include/class_ldap.inc:856 include/class_ldap.inc:1207
-#: plugins/config/class_recoveryConfig.inc:137
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:90
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:121
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:185
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:63
-#: plugins/addons/dashboard/class_dashBoard.inc:78
-#: setup/class_setupStepConfig.inc:108 setup/class_setupStepMigrate.inc:459
-#: setup/class_setupStepMigrate.inc:1075 html/index.php:379
-msgid "LDAP error"
+#: include/management/snapshot/class_SnapshotAttribute.inc:43
+msgid "DN"
 msgstr ""
 
-#: include/class_config.inc:325
-msgid "Cannot bind to LDAP. Please contact the system administrator."
+#: include/management/snapshot/class_SnapshotAttribute.inc:44
+#: include/management/snapshot/class_SnapshotAttribute.inc:50
+#: include/simpleplugin/attributes/class_DateAttribute.inc:340
+msgid "Date"
+msgstr "日期"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:45
+#: include/management/snapshot/class_SnapshotAttribute.inc:51
+#: plugins/admin/departments/class_department.inc:71
+#: plugins/admin/groups/class_ogroup.inc:90
+#: plugins/admin/groups/class_roleGeneric.inc:91
+#: plugins/admin/aclrole/class_aclRole.inc:102
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/personal/generic/class_user.inc:108
+msgid "Description"
+msgstr "描述"
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:90
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:146
+msgid "Y-m-d, H:i:s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotAttribute.inc:107
+#: include/management/snapshot/class_SnapshotAttribute.inc:108
+msgid "Restore"
 msgstr ""
 
-#: include/class_config.inc:354
+#: include/management/snapshot/class_SnapshotHandler.inc:41
+msgid "Snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:42
+msgid "Snapshot handler"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:47
+msgid "Restore over an existing object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:48
+msgid "Restore a deleted object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:240
 #, php-format
-msgid "Location \"%s\" could not be found in the configuration file"
+msgid "Failed to create snapshot: %s"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:466
+msgid "There was a problem uncompressing snapshot data"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotHandler.inc:471
+msgid "Snapshot data could not be fetched"
 msgstr ""
 
-#: include/class_config.inc:776
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:45
+msgid "Restoring snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+#: include/class_msgPool.inc:540
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:2
+msgid "Object"
+msgstr "对象"
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:49
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:44
+msgid "DN of the object you are creating a snapshot of"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+#: plugins/config/class_snapshotConfig.inc:26
+msgid "Snapshots"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotRestoreDialog.inc:53
+msgid "Existing snapshots for this object"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:41
+msgid "Creating an object snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp"
+msgstr "日期"
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:48
+msgid "Timestamp of this snapshot creation"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:52
+msgid "Reason for creating this snapshot"
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:60
+msgid "dataSource - only available via web-service."
+msgstr ""
+
+#: include/management/snapshot/class_SnapshotCreateDialog.inc:63
+msgid "Origin / Source of the data"
+msgstr ""
+
+#: include/management/class_managementFilter.inc:149
 #, php-format
-msgid ""
-"The snapshot functionality is enabled, but the required variable \"%s\" is "
-"not set."
+msgid "Searches in %s"
 msgstr ""
 
-#: include/class_config.inc:788
+#: include/management/class_managementFilter.inc:239
 #, php-format
 msgid ""
-"The snapshot functionality is enabled, but the required compression module "
-"is missing. Please install \"%s\"."
+"Could not search for \"%s\" templates:\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:900
-msgid "All categories"
+#: include/management/class_managementFilter.inc:261
+#, php-format
+msgid ""
+"Could not search for \"%s\":\n"
+"%s"
 msgstr ""
 
-#: include/class_config.inc:1042
-msgid "My account"
+#: include/management/class_FixedFilterElement.inc:42
+msgid "Fixed"
 msgstr ""
 
-#: include/exporter/class_PDF.php:61
-msgid "Page"
+#: include/management/class_selectManagement.inc:65
+msgid "Please select the desired entries"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:58
-msgid "No PDF export possible: there is no FPDF library installed."
+#: include/management/columns/class_ObjectTypeColumn.inc:46
+#: include/management/class_managementListing.inc:221
+#, php-format
+msgid "%s template"
 msgstr ""
 
-#: include/exporter/class_pdfExporter.inc:196
-msgid "PDF"
+#: include/management/class_TabFilterElement.inc:80
+msgid "Tabs"
 msgstr ""
 
-#: include/exporter/class_cvsExporter.inc:93
-msgid "CSV"
-msgstr ""
+#: include/management/class_management.inc:207 include/class_template.inc:43
+#: ihtml/themes/breezy/management/filter.tpl.c:8
+#: ihtml/themes/breezy/template.tpl.c:5
+msgid "Template"
+msgstr "模板"
 
-#: include/php_setup.inc:61 include/php_setup.inc:148
-msgid "File"
+#: include/management/class_management.inc:211
+msgid "From template"
 msgstr ""
 
-#: include/php_setup.inc:63 include/php_setup.inc:148
-msgid "Line"
+#: include/management/class_management.inc:221
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:66
+#: setup/class_setupStepMigrate.inc:857
+msgid "Create"
+msgstr "创建"
+
+#: include/management/class_management.inc:236
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:81
+msgid "Export list"
 msgstr ""
 
-#: include/php_setup.inc:69
-msgid "PHP error"
+#: include/management/class_management.inc:243
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:109
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:110
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:120
+#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:121
+#: include/simpleplugin/attributes/class_SetAttribute.inc:583
+#: include/simpleplugin/attributes/class_SetAttribute.inc:584
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:88
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
+msgid "Edit"
+msgstr "编辑"
+
+#: include/management/class_management.inc:252
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:97
+msgid "Cut"
 msgstr ""
 
-#: include/php_setup.inc:78
-msgid "class"
+#: include/management/class_management.inc:259
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:104
+msgid "Copy"
 msgstr ""
 
-#: include/php_setup.inc:86
-msgid "function"
+#: include/management/class_management.inc:266
+#: include/class_CopyPasteHandler.inc:331
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:111
+msgid "Paste"
+msgstr "粘贴"
+
+#: include/management/class_management.inc:277
+msgid "Apply template"
 msgstr ""
 
-#: include/php_setup.inc:92
-msgid "static"
+#: include/management/class_management.inc:297
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:119
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:120
+#: include/simpleplugin/attributes/class_FileAttribute.inc:464
+#: include/simpleplugin/attributes/class_FileAttribute.inc:465
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:121
+msgid "Remove"
+msgstr "删除"
+
+#: include/management/class_management.inc:306
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:130
+msgid "Create snapshot"
 msgstr ""
 
-#: include/php_setup.inc:96
-msgid "method"
+#: include/management/class_management.inc:313
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:137
+msgid "Restore snapshot"
 msgstr ""
 
-#: include/php_setup.inc:147 ihtml/themes/breezy/msg_dialog.tpl.c:11
-msgid "Trace"
+#: include/management/class_management.inc:325
+msgid "Create an object from this template"
 msgstr ""
 
-#: include/php_setup.inc:148
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
-msgid "Type"
+#: include/management/class_management.inc:813
+msgid "Apply anyway"
 msgstr ""
 
-#: include/php_setup.inc:149
-msgid "Arguments"
+#: include/management/class_management.inc:831
+msgid "Applying a template to a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:247
-msgid "Generating this page caused the PHP interpreter to raise some errors!"
+#: include/management/class_management.inc:840
+msgid ""
+"All selected entries need to share the same type to be able to apply a "
+"template to them"
 msgstr ""
 
-#: include/php_setup.inc:252
-msgid "Send bug report to the FusionDirectory Team"
+#: include/management/class_management.inc:868
+msgid "Archive anyway"
 msgstr ""
 
-#: include/php_setup.inc:253
-msgid "Send bugreport"
+#: include/management/class_management.inc:878
+msgid "Archiving a template is not possible"
 msgstr ""
 
-#: include/php_setup.inc:258
-msgid "Toggle information"
+#: include/management/class_management.inc:917
+msgid "Archive success"
 msgstr ""
 
-#: include/class_listing.inc:312 include/class_listing.inc:1183
-#: include/class_listing.inc:1185
-msgid "Up"
+#: include/management/class_management.inc:918
+#, php-format
+msgid "%d entries were successfully archived"
 msgstr ""
 
-#: include/class_listing.inc:312
-msgid "Down"
+#: include/management/class_management.inc:1059
+msgid "Delete anyway"
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:479
-#: include/simpleplugin/attributes/class_SetAttribute.inc:480
-msgid "Sort up"
+#: include/management/class_management.inc:1207
+#, php-format
+msgid "You are not allowed to create a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:312
-#: include/simpleplugin/attributes/class_SetAttribute.inc:492
-#: include/simpleplugin/attributes/class_SetAttribute.inc:493
-msgid "Sort down"
+#: include/management/class_management.inc:1242
+#: include/management/class_management.inc:1336
+#: include/management/class_management.inc:1364
+#, php-format
+msgid "You are not allowed to restore a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:364 setup/setup_migrate_accounts.tpl.c:23
-msgid "Select all"
+#: include/management/class_management.inc:1381
+#, php-format
+msgid "You are not allowed to delete a snapshot for %s."
 msgstr ""
 
-#: include/class_listing.inc:567
-msgid "created by"
+#: include/management/class_managementListing.inc:233
+#, php-format
+msgid ""
+"The number of listed entries (%d) is greater than or too close to configured"
+" max_input_vars PHP ini setting (%d). Please change max_input_vars ini "
+"setting to a higher value."
 msgstr ""
 
-#: include/class_listing.inc:1175
+#: include/management/class_managementListing.inc:400
 msgid "Go to root department"
-msgstr ""
+msgstr "转到根部门"
 
-#: include/class_listing.inc:1175 include/class_listing.inc:1177
-#: include/class_baseSelector.inc:212
+#: include/management/class_managementListing.inc:401
+#: ihtml/themes/breezy/baseselector.tpl.c:2
 msgid "Root"
-msgstr ""
+msgstr "æ ¹"
 
-#: include/class_listing.inc:1183
+#: include/management/class_managementListing.inc:408
 msgid "Go up one department"
-msgstr ""
+msgstr "向上跳转一个部门"
 
-#: include/class_listing.inc:1191
+#: include/management/class_managementListing.inc:409
+#: ihtml/themes/breezy/management/list.tpl.c:5
+msgid "Up"
+msgstr "上"
+
+#: include/management/class_managementListing.inc:416
 msgid "Go to user's department"
 msgstr ""
 
-#: include/class_listing.inc:1191 include/class_listing.inc:1193
+#: include/management/class_managementListing.inc:417
 msgid "Home"
 msgstr ""
 
-#: include/class_listing.inc:1198
+#: include/management/class_managementListing.inc:429
 msgid "Reload list"
+msgstr "重新加载列表"
+
+#: include/management/class_managementListing.inc:430
+msgid "Reload"
 msgstr ""
 
-#: include/class_listing.inc:1342 include/simpleplugin/simple-list.xml:48
-#: plugins/admin/departments/dep-list.xml:37
-#: plugins/admin/groups/group-list.xml:54 plugins/admin/users/user-list.xml:62
-msgid "Actions"
+#: include/management/class_managementListing.inc:439
+msgid "Configure this management list"
 msgstr ""
 
-#: include/class_listing.inc:1655 include/class_listing.inc:1708
-msgid "Copy"
+#: include/management/class_managementListing.inc:440
+#: include/class_ldapSizeLimit.inc:134
+msgid "Configure"
+msgstr "配置"
+
+#: include/class_config.inc:146
+#, php-format
+msgid "XML error in fusiondirectory.conf: %s at line %d"
+msgstr "XML 出错于 fusiondirectory.conf: %s ,行 %d"
+
+#: include/class_config.inc:277
+#, php-format
+msgid ""
+"It seems you are trying to decode something which is not encoded : %s\n"
+"Please check you are not using a fusiondirectory.secrets file while your passwords are not encrypted."
 msgstr ""
 
-#: include/class_listing.inc:1661 include/class_listing.inc:1696
-msgid "Cut"
+#: include/class_config.inc:318
+msgid "Cannot bind to LDAP. Please contact the system administrator."
 msgstr ""
 
-#: include/class_listing.inc:1669 include/class_listing.inc:1671
-#: include/class_CopyPasteHandler.inc:330
-msgid "Paste"
+#: include/class_config.inc:348
+#, php-format
+msgid "Location \"%s\" could not be found in the configuration file"
 msgstr ""
 
-#: include/class_listing.inc:1696
-msgid "Cut this entry"
+#: include/class_config.inc:884
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required variable \"%s\" is "
+"not set."
 msgstr ""
 
-#: include/class_listing.inc:1708
-msgid "Copy this entry"
+#: include/class_config.inc:900
+#, php-format
+msgid ""
+"The snapshot functionality is enabled, but the required compression module "
+"is missing. Please install \"%s\"."
 msgstr ""
 
-#: include/class_listing.inc:1733 include/class_listing.inc:1735
-msgid "Restore snapshots"
+#: include/class_config.inc:994
+msgid "All categories"
 msgstr ""
 
-#: include/class_listing.inc:1749
-msgid "Export list"
+#: include/class_config.inc:1158
+msgid "My account"
+msgstr "我的账号"
+
+#: include/class_exceptions.inc:78
+#, php-format
+msgid "Non-existing type \"%s\"!"
 msgstr ""
 
-#: include/class_listing.inc:1781 include/class_listing.inc:1782
-#: include/class_listing.inc:1786
-msgid "Restore snapshot"
+#: include/class_exceptions.inc:99
+#, php-format
+msgid "Non-existing branch \"%s\"!"
 msgstr ""
 
-#: include/class_listing.inc:1794
-msgid "Create snapshot"
+#: include/class_exceptions.inc:120
+#, php-format
+msgid "Non-existing dn \"%s\"!"
 msgstr ""
 
-#: include/class_listing.inc:1795
-msgid "Create a new snapshot from this object"
+#: include/class_exceptions.inc:141
+msgid "Filter is empty"
 msgstr ""
 
-#: include/class_timezone.inc:52
+#: include/class_exceptions.inc:159
 #, php-format
-msgid "The timezone setting \"%s\" in your configuration is not valid."
+msgid "Unknown class \"%s\"!"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:40
-msgid "Snapshot"
+#: include/exporter/class_PDF.php:61
+msgid "Page"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:41
-msgid "Snapshot handler"
+#: include/exporter/class_pdfExporter.inc:58
+#: include/exporter/class_pdfExporter.inc:233
+msgid "No PDF export possible: there is no FPDF library installed."
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:46
-msgid "Restore over an existing object"
+#: include/exporter/class_pdfExporter.inc:244
+msgid "created by"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:47
-msgid "Restore a deleted object"
+#: include/exporter/class_pdfExporter.inc:321
+msgid "PDF"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:408
-msgid "There was a problem uncompressing snapshot data"
+#: include/exporter/class_csvExporter.inc:118
+msgid "CSV"
 msgstr ""
 
-#: include/class_SnapshotHandler.inc:412
-msgid "Snapshot data could not be fetched"
+#: include/php_setup.inc:61 include/php_setup.inc:153
+msgid "File"
+msgstr "文件"
+
+#: include/php_setup.inc:63 include/php_setup.inc:153
+msgid "Line"
+msgstr "行"
+
+#: include/php_setup.inc:69
+msgid "PHP error"
+msgstr "PHP 错误"
+
+#: include/php_setup.inc:78
+msgid "class"
+msgstr "ç±»"
+
+#: include/php_setup.inc:86
+msgid "function"
+msgstr "功能"
+
+#: include/php_setup.inc:92
+msgid "static"
+msgstr "静态"
+
+#: include/php_setup.inc:96
+msgid "method"
+msgstr "方法"
+
+#: include/php_setup.inc:152 ihtml/themes/breezy/msg_dialog.tpl.c:11
+msgid "Trace"
+msgstr "跟踪"
+
+#: include/php_setup.inc:154
+msgid "Arguments"
+msgstr "参数"
+
+#: include/php_setup.inc:243
+msgid "Generating this page caused the PHP interpreter to raise some errors!"
+msgstr "生成这个页面导致 PHP 解析器发生一些错误!"
+
+#: include/php_setup.inc:248
+msgid "Send bug report to the FusionDirectory Team"
 msgstr ""
 
-#: include/class_template.inc:43
-#: include/simpleplugin/class_simpleManagement.inc:295
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
-#: plugins/admin/users/user-list.xml:95 ihtml/themes/breezy/template.tpl.c:5
-msgid "Template"
+#: include/php_setup.inc:249
+msgid "Mail icon"
+msgstr ""
+
+#: include/php_setup.inc:249
+msgid "Send bug report"
+msgstr ""
+
+#: include/php_setup.inc:254
+msgid "Toggle information"
+msgstr "切换信息"
+
+#: include/php_setup.inc:303
+#, php-format
+msgid "Uncaught %s: %s"
+msgstr ""
+
+#: include/class_timezone.inc:52
+#, php-format
+msgid "The timezone setting \"%s\" in your configuration is not valid."
 msgstr ""
 
 #: include/class_template.inc:44
 msgid "Object template, used to create several objects with similar values"
 msgstr ""
 
-#: include/class_template.inc:49
-#: include/simpleplugin/class_simplePlugin.inc:348
-msgid "Template name"
+#: include/class_template.inc:49
+#: include/simpleplugin/class_simplePlugin.inc:356
+msgid "Template name"
+msgstr "模板名称"
+
+#: include/class_logging.inc:79
+#, php-format
+msgid "Logging failed: %s"
+msgstr ""
+
+#: include/class_logging.inc:165
+#, php-format
+msgid "Invalid option \"%s\" specified!"
+msgstr ""
+
+#: include/class_logging.inc:169
+msgid "Specified objectType is empty or invalid!"
+msgstr ""
+
+#: include/class_logging.inc:224
+#, php-format
+msgid "Failed to log event (%s - %s): %s"
+msgstr ""
+
+#: include/login/class_LoginCAS.inc:29
+#: plugins/config/class_configInLdap.inc:214
+msgid "CAS"
+msgstr ""
+
+#: include/login/class_LoginCAS.inc:92
+#, php-format
+msgid "CAS user \"%s\" could not be found in LDAP"
+msgstr ""
+
+#: include/login/class_LoginCAS.inc:99 include/login/class_LoginCAS.inc:122
+#: include/login/class_LoginHTTPHeader.inc:67
+#: include/login/class_LoginHTTPHeader.inc:90
+#, php-format
+msgid "Login with user \"%s\" triggered error: %s"
+msgstr ""
+
+#: include/login/class_LoginPost.inc:32
+msgid "HTML form"
 msgstr ""
 
-#: include/class_logging.inc:81 include/functions.inc:512
-#: include/functions.inc:584 include/functions.inc:705
-#: include/functions.inc:1683 include/functions.inc:1722
-#: include/functions.inc:1753 include/class_acl.inc:118
-#: include/class_ldap.inc:797 include/class_ldap.inc:822
-msgid "Internal error"
-msgstr ""
+#: include/login/class_LoginPost.inc:116 ihtml/themes/legacy/login.tpl.c:2
+#: ihtml/themes/legacy/login.tpl.c:44 ihtml/themes/breezy/secondfactor.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:2 ihtml/themes/breezy/login.tpl.c:44
+msgid "Sign in"
+msgstr "登录"
 
-#: include/class_logging.inc:81
+#: include/login/class_LoginPost.inc:126 include/class_standAlonePage.inc:216
 #, php-format
-msgid "Logging failed: %s"
+msgid "Warning: %sSession is not encrypted!%s"
 msgstr ""
 
-#: include/class_logging.inc:103
-#, php-format
-msgid "Invalid option \"%s\" specified!"
+#: include/login/class_LoginPost.inc:132
+msgid ""
+"Warning: The session lifetime configured in your fusiondirectory.conf will "
+"be overridden by php.ini settings."
 msgstr ""
 
-#: include/class_logging.inc:107
-msgid "Specified objectType is empty or invalid!"
+#: include/login/class_LoginPost.inc:188
+msgid "Second factor"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:65
-#, php-format
-msgid "Cannot change password, unknown user \"%s\""
+#: include/login/class_LoginMethod.inc:54
+msgid "LDAP schema check reported errors:"
 msgstr ""
 
-#: include/password-methods/class_password-methods-sasl.inc:92
-#: plugins/config/class_configInLdap.inc:584
+#: include/login/class_LoginMethod.inc:56
+#, php-format
 msgid ""
-"You need to fill saslRealm or saslExop in the configuration screen in order "
-"to use SASL"
+"LDAP schema error:\n"
+"%s"
 msgstr ""
 
-#: include/class_baseSelector.inc:275
-msgid "Submit"
-msgstr ""
+#: include/login/class_LoginMethod.inc:90
+msgid "Please specify a valid username!"
+msgstr "请输入一个有效的用户名!"
+
+#: include/login/class_LoginMethod.inc:93
+msgid "Please specify your password!"
+msgstr "请输入您的口令!"
 
-#: include/class_filter.inc:331 include/functions.inc:1545
-msgid "*ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+#: include/login/class_LoginMethod.inc:147 include/class_ldap.inc:214
+msgid "Account locked. Please contact your system administrator!"
 msgstr ""
 
-#: include/class_filter.inc:369
-msgid "Apply filter"
+#: include/login/class_LoginMethod.inc:187
+#: include/errors/class_SimplePluginLdapError.inc:91
+#: setup/class_setupStepMigrate.inc:1078
+msgid "LDAP error"
+msgstr "LDAP 错误"
+
+#: include/login/class_LoginMethod.inc:223 include/class_pluglist.inc:592
+msgid "An unrecoverable error occurred. Please contact your administator."
 msgstr ""
 
-#: include/class_filter.inc:380 include/class_msgPool.inc:51
-msgid "Search in subtrees"
+#: include/login/class_LoginMethod.inc:230 include/class_pluglist.inc:590
+msgid "Fatal error!"
 msgstr ""
 
-#: include/class_filter.inc:404
-#, php-format
-msgid "Searches in %s"
+#: include/login/class_LoginHTTPHeader.inc:29
+msgid "HTTP Header"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:114
+#: include/login/class_LoginHTTPHeader.inc:49
 #, php-format
-msgid "The size limit of %d entries is exceed!"
+msgid "No value found in HTTP header \"%s\""
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:115
+#: include/login/class_LoginHTTPHeader.inc:60
 #, php-format
-msgid ""
-"Set the new size limit to %s and show me this message if the limit still "
-"exceeds"
+msgid "Header user \"%s\" could not be found in LDAP"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:131
-msgid "Configure"
+#: include/login/class_LoginHTTPAuth.inc:29
+msgid "HTTP Basic Auth"
 msgstr ""
 
-#: include/class_ldapSizeLimit.inc:136
-msgid "incomplete"
+#: include/class_passwordRecovery.inc:90 ihtml/themes/legacy/recovery.tpl.c:77
+#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
+#: ihtml/themes/breezy/recovery.tpl.c:80
+msgid "Email address"
+msgstr "邮件地址"
+
+#: include/class_passwordRecovery.inc:124
+#: plugins/config/class_recoveryConfig.inc:27
+msgid "Password recovery"
 msgstr ""
 
-#: include/functions.inc:97
+#: include/class_passwordRecovery.inc:253
 #, php-format
-msgid "Fatal error: no class locations defined - please run '%s' to fix this"
+msgid "Did not find an account with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:116
+#: include/class_passwordRecovery.inc:256
 #, php-format
-msgid ""
-"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
+msgid "Found multiple accounts with login \"%s\""
 msgstr ""
 
-#: include/functions.inc:411 include/functions.inc:2310
-#: include/simpleplugin/class_simplePlugin.inc:468
-#: include/simpleplugin/class_simplePlugin.inc:473
-#: include/simpleplugin/class_simplePlugin.inc:485
-#: html/class_passwordRecovery.inc:118
-msgid "Fatal error"
+#: include/class_passwordRecovery.inc:294
+#, php-format
+msgid "There is no account using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:412
+#: include/class_passwordRecovery.inc:297
 #, php-format
-msgid "FATAL: Error when connecting the LDAP. Server said '%s'."
+msgid "There are several accounts using email \"%s\""
 msgstr ""
 
-#: include/functions.inc:472
-msgid ""
-"Login (uid) is not unique inside the LDAP tree. Please contact your "
-"administrator."
+#: include/class_passwordRecovery.inc:305
+#, php-format
+msgid "The user using email \"%s\" is locked. Please contact your administrator."
 msgstr ""
 
-#: include/functions.inc:532
-msgid "Authentication error"
+#: include/class_passwordRecovery.inc:360
+msgid "Contact your administrator, there was a problem with the mail server"
 msgstr ""
 
-#: include/functions.inc:533
-msgid ""
-"It seems your user password has expired. Please use <a "
-"href=\"recovery.php\">password recovery</a> to change it."
+#: include/class_passwordRecovery.inc:373
+msgid "This token is invalid"
 msgstr ""
 
-#: include/functions.inc:584 include/functions.inc:705
-msgid "Error while adding a lock. Contact the developers!"
+#: include/class_passwordRecovery.inc:437
+msgid "There was a problem with the mail server, confirmation email not sent"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/password-methods/class_passwordMethodSasl.inc:66
 #, php-format
+msgid "Cannot change password, unknown user \"%s\""
+msgstr ""
+
+#: include/password-methods/class_passwordMethodSasl.inc:97
+#: plugins/config/class_configInLdap.inc:555
 msgid ""
-"Cannot create locking information in LDAP tree. Please contact your "
-"administrator!"
+"You need to fill saslRealm or saslExop in the configuration screen in order "
+"to use SASL"
 msgstr ""
 
-#: include/functions.inc:594
+#: include/class_standAlonePage.inc:127
 #, php-format
-msgid "LDAP server returned: %s"
+msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
 msgstr ""
 
-#: include/functions.inc:783 setup/class_setupStepLdap.inc:216
-#: setup/class_setupStepMigrate.inc:580 setup/class_setupStepMigrate.inc:1028
-#: setup/class_setupStepMigrate.inc:1147 setup/class_setupStepMigrate.inc:1258
-#: setup/class_setupStepMigrate.inc:1333 setup/class_setupStepMigrate.inc:1377
-#: html/main.php:156 html/index.php:595 setup/setup_checks.tpl.c:11
-#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
-msgid "Warning"
+#: include/class_standAlonePage.inc:154 html/setup.php:74 html/index.php:115
+#, php-format
+msgid "Directory \"%s\" specified as compile directory is not accessible!"
 msgstr ""
 
-#: include/functions.inc:783
+#: include/class_ldapSizeLimit.inc:135
+msgid "incomplete"
+msgstr "不完整"
+
+#: include/class_ldapSizeLimit.inc:152
+#, php-format
 msgid ""
-"Found multiple locks for object to be locked. This should not happen - "
-"cleaning up multiple references."
+"Limit %d is greater than or too close to configured max_input_vars PHP ini "
+"setting of %d. Please change max_input_vars ini setting to a higher value if"
+" you wish to set the limit higher."
 msgstr ""
 
-#: include/functions.inc:1107
-msgid "Continue anyway"
+#: include/functions.inc:55
+#, php-format
+msgid "Fatal error: no class locations defined - please run '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1109
-msgid "Edit anyway"
+#: include/functions.inc:78
+#, php-format
+msgid ""
+"Fatal error: cannot instantiate class '%s' - try running '%s' to fix this"
 msgstr ""
 
-#: include/functions.inc:1111
+#: include/functions.inc:151
 #, php-format
-msgid "You're going to edit the LDAP entry/entries %s"
+msgid "%s 2002-%d %sThe FusionDirectory team, %s%s"
 msgstr ""
 
-#: include/functions.inc:1505
+#: include/functions.inc:783
 #, php-format
 msgid "%sB"
 msgstr ""
 
-#: include/functions.inc:1506
+#: include/functions.inc:784
 #, php-format
 msgid "%sKiB"
 msgstr ""
 
-#: include/functions.inc:1507
+#: include/functions.inc:785
 #, php-format
 msgid "%sMiB"
 msgstr ""
 
-#: include/functions.inc:1508
+#: include/functions.inc:786
 #, php-format
 msgid "%sGiB"
 msgstr ""
 
-#: include/functions.inc:1509
+#: include/functions.inc:787
 #, php-format
 msgid "%sTiB"
 msgstr ""
 
-#: include/functions.inc:1510
+#: include/functions.inc:788
 #, php-format
 msgid "%sPiB"
 msgstr ""
 
-#: include/functions.inc:1511
+#: include/functions.inc:789
 #, php-format
 msgid "%sEiB"
 msgstr ""
 
-#: include/functions.inc:1512
+#: include/functions.inc:790
 #, php-format
 msgid "%sZiB"
 msgstr ""
 
-#: include/functions.inc:1513
+#: include/functions.inc:791
 #, php-format
 msgid "%sYiB"
 msgstr ""
 
-#: include/functions.inc:1683
+#: include/functions.inc:924
 #, php-format
 msgid ""
-"File '%s' could not be deleted. Try fusiondirectory-setup --check-"
-"directories to fix permissions."
+"File \"%s\" could not be deleted. Try \"fusiondirectory-configuration-"
+"manager --check-directories\" to fix permissions."
 msgstr ""
 
-#: include/functions.inc:1722
-msgid "Cannot write to revision file!"
+#: include/functions.inc:962
+msgid "Cannot write to revision file:"
 msgstr ""
 
-#: include/functions.inc:1753
-msgid "Cannot read revision file!"
+#: include/functions.inc:979
+msgid "Cannot write to revision file!"
 msgstr ""
 
-#: include/functions.inc:1867
-msgid "LDAP warning"
+#: include/functions.inc:1006
+msgid "Cannot read revision file:"
 msgstr ""
 
-#: include/functions.inc:1867
+#: include/functions.inc:1147
 msgid "Cannot get schema information from server. No schema check possible!"
 msgstr ""
 
-#: include/functions.inc:1891
+#: include/functions.inc:1172
 msgid "Main FusionDirectory schema"
 msgstr ""
 
-#: include/functions.inc:1899
+#: include/functions.inc:1180
 msgid "Schema used to store FusionDirectory configuration"
 msgstr ""
 
-#: include/functions.inc:1907
+#: include/functions.inc:1188
 msgid "Used to store trust mode information in users or groups."
 msgstr ""
 
-#: include/functions.inc:1915
+#: include/functions.inc:1196
 msgid "Used to store templates."
 msgstr ""
 
-#: include/functions.inc:1924
+#: include/functions.inc:1205
 msgid "Used to store POSIX information."
 msgstr ""
 
-#: include/functions.inc:1932
+#: include/functions.inc:1213
 #, php-format
 msgid "Missing required object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1934
+#: include/functions.inc:1215
 #, php-format
 msgid "Missing optional object class \"%s\"!"
 msgstr ""
 
-#: include/functions.inc:1938
+#: include/functions.inc:1219
 #, php-format
 msgid "Class(es) available"
 msgstr ""
 
-#: include/functions.inc:1957
+#: include/functions.inc:1238
 msgid ""
 "You have installed the mixed groups plugin, but your schema configuration "
 "does not support this."
 msgstr ""
 
-#: include/functions.inc:1958
+#: include/functions.inc:1239
 msgid ""
 "In order to use mixed groups the objectClass \"posixGroup\" must be "
 "AUXILIARY"
 msgstr ""
 
-#: include/functions.inc:1961
+#: include/functions.inc:1242
 msgid ""
 "Your schema is configured to support mixed groups, but this plugin is not "
 "present."
 msgstr ""
 
-#: include/functions.inc:1962
+#: include/functions.inc:1243
 msgid "The objectClass \"posixGroup\" must be STRUCTURAL"
 msgstr ""
 
-#: include/functions.inc:2311
+#: include/functions.inc:1515
 #, php-format
-msgid "Cannot locate file '%s' - please run '%s' to fix this"
+msgid "Cannot locate file \"%s\" - please run \"%s\" to fix this"
 msgstr ""
 
-#: include/class_pluglist.inc:196
+#: include/class_pluglist.inc:209
 msgid "All objects in this category"
 msgstr ""
 
-#: include/select/userSelect/class_userSelect.inc:35
-#: plugins/admin/users/user-list.xml:49
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:63
-#: plugins/personal/generic/class_user.inc:389
-msgid "Login"
-msgstr ""
-
-#: include/class_CopyPasteHandler.inc:206
-#: include/simpleplugin/class_simpleTabs.inc:316
-#: include/simpleplugin/class_simpleManagement.inc:1042
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#: include/simpleplugin/class_simpleManagement.inc:1330
-#: plugins/admin/users/class_userManagement.inc:153
-msgid "Permission"
+#: include/class_pluglist.inc:580
+#, php-format
+msgid ""
+"Fatal error: Cannot find any plugin definitions for plugin \"%s\" (\"%s\" is"
+" not a file)!"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:266
+#: include/class_CopyPasteHandler.inc:267
 msgid "Cancel all"
 msgstr ""
 
-#: include/class_CopyPasteHandler.inc:332
+#: include/class_CopyPasteHandler.inc:333
 msgid "Cannot paste"
 msgstr ""
 
-#: include/class_msgPool.inc:43
-#, php-format
-msgid "Select to list objects of type '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:45
-#, php-format
-msgid "Select to list objects containig '%s'."
-msgstr ""
-
-#: include/class_msgPool.inc:47
-#, php-format
-msgid "Select to list objects that have '%s' enabled"
-msgstr ""
-
-#: include/class_msgPool.inc:49
-msgid "Select to search within subtrees"
-msgstr ""
-
-#: include/class_msgPool.inc:67
-msgid "This object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:69
-#, php-format
-msgid "This '%s' object will be deleted!"
-msgstr ""
-
-#: include/class_msgPool.inc:74
-#, php-format
-msgid "This object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:76
-#, php-format
-msgid "This '%s' object will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:81
-msgid "This object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:83
-#, php-format
-msgid "This '%s' object will be deleted:"
-msgstr ""
-
-#: include/class_msgPool.inc:87
-#, php-format
-msgid "These objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:89
-#, php-format
-msgid "These '%s' objects will be deleted: %s"
-msgstr ""
-
-#: include/class_msgPool.inc:101
+#: include/class_msgPool.inc:40
 msgid "You have no permission to delete this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:105 include/class_msgPool.inc:109
+#: include/class_msgPool.inc:44 include/class_msgPool.inc:48
 msgid "You have no permission to delete the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:112
+#: include/class_msgPool.inc:51
 msgid "You have no permission to delete these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:123
+#: include/class_msgPool.inc:62
 msgid "You have no permission to create this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:127 include/class_msgPool.inc:131
+#: include/class_msgPool.inc:66 include/class_msgPool.inc:70
 msgid "You have no permission to create the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:134
+#: include/class_msgPool.inc:73
 msgid "You have no permission to create these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:146
+#: include/class_msgPool.inc:85
 msgid "You have no permission to modify this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:151
+#: include/class_msgPool.inc:90
 #, php-format
 msgid "You have no permission to modify the field \"%s\" of object \"%s\""
 msgstr ""
 
-#: include/class_msgPool.inc:153 include/class_msgPool.inc:158
+#: include/class_msgPool.inc:92 include/class_msgPool.inc:97
 #, php-format
-msgid "You have no permission to modify the object:<br/>%s"
+msgid "You have no permission to modify the object:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:161
+#: include/class_msgPool.inc:100
 #, php-format
-msgid "You have no permission to modify these objects:<br/>%s"
+msgid "You have no permission to modify these objects:%s"
 msgstr ""
 
-#: include/class_msgPool.inc:172
+#: include/class_msgPool.inc:111
 msgid "You have no permission to view this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:176 include/class_msgPool.inc:180
+#: include/class_msgPool.inc:115 include/class_msgPool.inc:119
 msgid "You have no permission to view the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:183
+#: include/class_msgPool.inc:122
 msgid "You have no permission to view these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:194
+#: include/class_msgPool.inc:133
 msgid "You have no permission to move this object!"
 msgstr ""
 
-#: include/class_msgPool.inc:198 include/class_msgPool.inc:202
+#: include/class_msgPool.inc:137 include/class_msgPool.inc:141
 msgid "You have no permission to move the object:"
 msgstr ""
 
-#: include/class_msgPool.inc:205
+#: include/class_msgPool.inc:144
 msgid "You have no permission to move these objects:"
 msgstr ""
 
-#: include/class_msgPool.inc:223 include/class_msgPool.inc:243
-#: include/class_msgPool.inc:273
-msgid "Connection information"
-msgstr ""
-
-#: include/class_msgPool.inc:225
-#, php-format
-msgid "Cannot connect to %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:245
-#, php-format
-msgid "Cannot select %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:255
-#, php-format
-msgid "No %s server defined!"
-msgstr ""
-
-#: include/class_msgPool.inc:275
-#, php-format
-msgid "Cannot query %s database!"
-msgstr ""
-
-#: include/class_msgPool.inc:285
-#, php-format
-msgid "The field '%s' contains a reserved keyword!"
-msgstr ""
-
-#: include/class_msgPool.inc:297
-#, php-format
-msgid "Command specified as %s hook for plugin '%s' does not exist!"
-msgstr ""
-
-#: include/class_msgPool.inc:313
-#, php-format
-msgid "'%s' command is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:315
-#, php-format
-msgid "'%s' command for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:319
-#, php-format
-msgid "'%s' command (%s) is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:321
-#, php-format
-msgid "'%s' command (%s) for plugin %s is invalid!"
-msgstr ""
-
-#: include/class_msgPool.inc:339
+#: include/class_msgPool.inc:154
 #, php-format
-msgid "Cannot execute '%s' command!"
+msgid "The field \"%s\" contains a reserved keyword!"
 msgstr ""
 
-#: include/class_msgPool.inc:341
+#: include/class_msgPool.inc:170
 #, php-format
-msgid "Cannot execute '%s' command for plugin %s!"
+msgid "Cannot execute \"%s\" command!"
 msgstr ""
 
-#: include/class_msgPool.inc:345
+#: include/class_msgPool.inc:172
 #, php-format
-msgid "Cannot execute '%s' command (%s)!"
+msgid "Cannot execute \"%s\" command for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:347
+#: include/class_msgPool.inc:176
 #, php-format
-msgid "Cannot execute '%s' command (%s) for plugin %s!"
+msgid "Cannot execute \"%s\" command (%s)!"
 msgstr ""
 
-#: include/class_msgPool.inc:362
+#: include/class_msgPool.inc:178
 #, php-format
-msgid "Value for '%s' is too large!"
+msgid "Cannot execute \"%s\" command (%s) for plugin %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:364
+#: include/class_msgPool.inc:193
 #, php-format
-msgid "'%s' must be smaller than %s!"
+msgid "Value for \"%s\" is too large!"
 msgstr ""
 
-#: include/class_msgPool.inc:378
+#: include/class_msgPool.inc:195
 #, php-format
-msgid "Value for '%s' is too small!"
+msgid "\"%s\" must be smaller than %s!"
 msgstr ""
 
-#: include/class_msgPool.inc:380
+#: include/class_msgPool.inc:209
 #, php-format
-msgid "'%s' must be %d or above!"
+msgid "Value for \"%s\" is too small!"
 msgstr ""
 
-#: include/class_msgPool.inc:393
+#: include/class_msgPool.inc:211
 #, php-format
-msgid "'%s' depends on '%s' - please provide both values!"
+msgid "\"%s\" must be %d or above!"
 msgstr ""
 
-#: include/class_msgPool.inc:405
+#: include/class_msgPool.inc:224
 #, php-format
-msgid "There is already an entry with this '%s' attribute in the system!"
+msgid "\"%s\" depends on \"%s\" - please provide both values!"
 msgstr ""
 
-#: include/class_msgPool.inc:407
+#: include/class_msgPool.inc:236
 #, php-format
-msgid "The entry '%s' already use this '%s' attribute!"
+msgid "There is already an entry with this \"%s\" attribute in the system!"
 msgstr ""
 
-#: include/class_msgPool.inc:418
+#: include/class_msgPool.inc:238
 #, php-format
-msgid "The required field '%s' is empty!"
-msgstr ""
-
-#: include/class_msgPool.inc:436
-msgid "Example:"
+msgid "The entry \"%s\" already uses this \"%s\" attribute!"
 msgstr ""
 
-#: include/class_msgPool.inc:456 include/class_msgPool.inc:460
+#: include/class_msgPool.inc:249
 #, php-format
-msgid "The field '%s' contains invalid characters"
+msgid "The required field \"%s\" is empty!"
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:266
 #, php-format
-msgid "'%s' is not allowed:"
+msgid "The field \"%s\" contains an invalid value."
 msgstr ""
 
-#: include/class_msgPool.inc:457
+#: include/class_msgPool.inc:271
+#: include/errors/class_SimplePluginError.inc:137
 #, php-format
-msgid "'%s' are not allowed!"
+msgid "Example: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:471
+#: include/class_msgPool.inc:284
 #, php-format
 msgid "Missing %s PHP extension!"
 msgstr ""
 
-#: include/class_msgPool.inc:479 setup/setup_migrate_adminAccount.tpl.c:23
-#: setup/setup_migrate_accounts.tpl.c:32
+#: include/class_msgPool.inc:295 include/class_msgPool.inc:297
+#: setup/setup_migrate_adminAccount.tpl.c:23
+#: setup/setup_migrate_accounts.tpl.c:38
 #: ihtml/themes/breezy/msg_dialog.tpl.c:17
-#: ihtml/themes/breezy/islocked.tpl.c:17
+#: ihtml/themes/breezy/islocked.tpl.c:20
 msgid "Cancel"
-msgstr ""
+msgstr "取消"
 
-#: include/class_msgPool.inc:487 setup/class_setupStepMigrate.inc:138
-#: setup/setup_checks.tpl.c:5 ihtml/themes/breezy/msg_dialog.tpl.c:14
+#: include/class_msgPool.inc:309 include/class_msgPool.inc:311
+#: setup/class_setupStepMigrate.inc:148 setup/setup_checks.tpl.c:5
+#: ihtml/themes/breezy/msg_dialog.tpl.c:14
 msgid "Ok"
-msgstr ""
+msgstr "好"
 
-#: include/class_msgPool.inc:495 setup/setup_migrate_adminAccount.tpl.c:20
-#: setup/setup_migrate_accounts.tpl.c:29
+#: include/class_msgPool.inc:323 include/class_msgPool.inc:325
+#: setup/setup_migrate_adminAccount.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:35
 msgid "Apply"
-msgstr ""
+msgstr "应用"
 
-#: include/class_msgPool.inc:503
+#: include/class_msgPool.inc:337 include/class_msgPool.inc:339
 msgid "Save"
-msgstr ""
+msgstr "保存"
 
-#: include/class_msgPool.inc:513
-#, php-format
+#: include/class_msgPool.inc:351 include/class_msgPool.inc:353
 msgid "Add"
-msgstr ""
-
-#: include/class_msgPool.inc:513
-#, php-format
-msgid "Add %s"
-msgstr ""
+msgstr "添加"
 
-#: include/class_msgPool.inc:523
-#: include/simpleplugin/attributes/class_SetAttribute.inc:517
-#: include/simpleplugin/attributes/class_SetAttribute.inc:518
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
-#, php-format
+#: include/class_msgPool.inc:365 include/class_msgPool.inc:367
+#: include/simpleplugin/attributes/class_SetAttribute.inc:595
+#: include/simpleplugin/attributes/class_SetAttribute.inc:596
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Delete"
-msgstr ""
-
-#: include/class_msgPool.inc:523
-#, php-format
-msgid "Delete %s"
-msgstr ""
+msgstr "删除"
 
-#: include/class_msgPool.inc:533
-#, php-format
+#: include/class_msgPool.inc:379 include/class_msgPool.inc:381
 msgid "Edit..."
 msgstr ""
 
-#: include/class_msgPool.inc:533
-#, php-format
-msgid "Edit %s..."
-msgstr ""
-
-#: include/class_msgPool.inc:541
+#: include/class_msgPool.inc:393 include/class_msgPool.inc:395
 msgid "Back"
-msgstr ""
+msgstr "返回"
 
-#: include/class_msgPool.inc:570
+#: include/class_msgPool.inc:425
 #, php-format
 msgid "This account has no valid %s extensions!"
 msgstr ""
 
-#: include/class_msgPool.inc:583
+#: include/class_msgPool.inc:438
 #, php-format
 msgid ""
 "This account has %s settings enabled. You can disable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:588
+#: include/class_msgPool.inc:443
 #, php-format
 msgid ""
 "This account has %s settings enabled. To disable them, you'll need to remove"
 " the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:604
+#: include/class_msgPool.inc:459
 #, php-format
 msgid ""
 "This account has %s settings disabled. You can enable them by clicking "
 "below."
 msgstr ""
 
-#: include/class_msgPool.inc:606
+#: include/class_msgPool.inc:461
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to add "
 "the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:608
+#: include/class_msgPool.inc:463
 #, php-format
 msgid ""
 "This account has %s settings disabled. To enable them, you'll need to "
 "disable the %s settings first!"
 msgstr ""
 
-#: include/class_msgPool.inc:619
+#: include/class_msgPool.inc:474
 #, php-format
 msgid "Add %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:630
+#: include/class_msgPool.inc:485
 #, php-format
 msgid "Remove %s settings"
 msgstr ""
 
-#: include/class_msgPool.inc:638
+#: include/class_msgPool.inc:493
 msgid ""
 "Click the \"Edit\" button on the bottom right corner of the page to edit the"
 " fields"
 msgstr ""
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "January"
-msgstr ""
+msgstr "一月"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "February"
-msgstr ""
+msgstr "二月"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "March"
-msgstr ""
+msgstr "三月"
 
-#: include/class_msgPool.inc:646
+#: include/class_msgPool.inc:501
 msgid "April"
-msgstr ""
+msgstr "四月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "May"
-msgstr ""
+msgstr "五月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "June"
-msgstr ""
+msgstr "六月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "July"
-msgstr ""
+msgstr "七月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "August"
-msgstr ""
+msgstr "八月"
 
-#: include/class_msgPool.inc:647
+#: include/class_msgPool.inc:502
 msgid "September"
-msgstr ""
+msgstr "九月"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "October"
-msgstr ""
+msgstr "十月"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "November"
-msgstr ""
+msgstr "十一月"
 
-#: include/class_msgPool.inc:648
+#: include/class_msgPool.inc:503
 msgid "December"
-msgstr ""
+msgstr "十二月"
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Sunday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Monday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Tuesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Wednesday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Thursday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Friday"
 msgstr ""
 
-#: include/class_msgPool.inc:657
+#: include/class_msgPool.inc:512
 msgid "Saturday"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "read operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "add operation"
 msgstr ""
 
-#: include/class_msgPool.inc:674
+#: include/class_msgPool.inc:529
+#: include/errors/class_SimplePluginLdapError.inc:76
 msgid "modify operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "delete operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "search operation"
 msgstr ""
 
-#: include/class_msgPool.inc:675
+#: include/class_msgPool.inc:530
+#: include/errors/class_SimplePluginLdapError.inc:77
 msgid "authentication"
 msgstr ""
 
-#: include/class_msgPool.inc:678
+#: include/class_msgPool.inc:533
+#: include/errors/class_SimplePluginLdapError.inc:80
 #, php-format
 msgid "LDAP %s failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:680
+#: include/class_msgPool.inc:535
+#: include/errors/class_SimplePluginLdapError.inc:82
 msgid "LDAP operation failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:685 include/class_SnapshotDialogs.inc:43
-#: include/class_SnapshotDialogs.inc:261
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:342
-msgid "Object"
-msgstr ""
-
-#: include/class_msgPool.inc:701
+#: include/class_msgPool.inc:556
 msgid "Upload failed!"
 msgstr ""
 
-#: include/class_msgPool.inc:704
+#: include/class_msgPool.inc:559
 #, php-format
 msgid "Upload failed: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:715
+#: include/class_msgPool.inc:570
 msgid "Communication failure with the infrastructure service!"
 msgstr ""
 
-#: include/class_msgPool.inc:717
+#: include/class_msgPool.inc:572
 #, php-format
-msgid "Communication failure with the infrastructure service: %s"
+msgid ""
+"Communication failure with the infrastructure service:\n"
+"\n"
+"Error: %s"
 msgstr ""
 
-#: include/class_msgPool.inc:730 include/class_msgPool.inc:733
+#: include/class_msgPool.inc:582
 #, php-format
-msgid "This '%s' is still in use by this object: %s"
+msgid "Checking for %s support"
 msgstr ""
 
-#: include/class_msgPool.inc:736
+#: include/class_msgPool.inc:592
 #, php-format
-msgid "This '%s' is still in use."
+msgid "Install and activate the %s PHP module."
 msgstr ""
 
-#: include/class_msgPool.inc:738
-#, php-format
-msgid "This '%s' is still in use by these objects: %s"
+#: include/class_msgPool.inc:600
+msgid ""
+"The supplied base is not valid and has been reset to the previous value!"
 msgstr ""
 
-#: include/class_msgPool.inc:748
+#: include/class_templateHandling.inc:149
 #, php-format
-msgid "File '%s' does not exist!"
+msgid "\"%s\" was not found in attributes"
 msgstr ""
 
-#: include/class_msgPool.inc:758
-#, php-format
-msgid "Cannot open file '%s' for reading!"
+#: include/class_templateHandling.inc:349
+msgid "Invalid mode for \"a\" modifier, supported modes are \"uid\" and \"ascii\""
 msgstr ""
 
-#: include/class_msgPool.inc:768
-#, php-format
-msgid "Cannot open file '%s' for writing!"
+#: include/class_templateHandling.inc:506
+msgid "Missing id parameter for incremental modifier"
 msgstr ""
 
-#: include/class_msgPool.inc:778
+#: include/class_templateHandling.inc:688
 #, php-format
 msgid ""
-"The value for '%s' is currently unconfigured or invalid, please check your "
-"configuration file!"
+"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
+"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
 msgstr ""
 
-#: include/class_msgPool.inc:788
-#, php-format
-msgid "Cannot delete file '%s'!"
+#: include/simpleplugin/class_simpleService.inc:118
+msgid "Get service status"
 msgstr ""
 
-#: include/class_msgPool.inc:798
-#, php-format
-msgid "Cannot create folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:119
+msgid "Start service"
 msgstr ""
 
-#: include/class_msgPool.inc:808
-#, php-format
-msgid "Cannot delete folder '%s'!"
+#: include/simpleplugin/class_simpleService.inc:120
+msgid "Stop service"
 msgstr ""
 
-#: include/class_msgPool.inc:818
-#, php-format
-msgid "Checking for %s support"
+#: include/simpleplugin/class_simpleService.inc:121
+msgid "Restart service"
 msgstr ""
 
-#: include/class_msgPool.inc:828
-#, php-format
-msgid "Install and activate the %s PHP module."
-msgstr ""
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
+#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
+#: setup/class_setupStepLdap.inc:130
+#: ihtml/themes/breezy/management/management.tpl.c:2
+msgid "Base"
+msgstr "位置"
 
-#: include/class_msgPool.inc:838
-#, php-format
-msgid "Install and activate the %s Pear module."
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
+msgid "Object base"
 msgstr ""
 
-#: include/class_msgPool.inc:848
-#, php-format
-msgid ""
-"Cannot initialize class '%s'! Maybe there is a plugin missing in your "
-"FusionDirectory setup?"
+#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
+msgid "Base field value should always be a string"
 msgstr ""
 
-#: include/class_msgPool.inc:856
-msgid ""
-"The supplied base is not valid and has been reset to the previous value!"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "yes"
 msgstr ""
 
-#: include/class_templateHandling.inc:500
-#, php-format
-msgid ""
-"Recursive dependency in the template fields: \"%1$s\" cannot depend on "
-"\"%2$s\" as \"%2$s\" already depends on \"%1$s\""
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:98
+msgid "no"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:11
-msgid "Please select the desired entries"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:171
+#: include/simpleplugin/attributes/class_FileAttribute.inc:139
+#: include/simpleplugin/class_Attribute.inc:701
+#, php-format
+msgid "Attribute %s is disabled, its value could not be set"
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:32
-#: include/simpleplugin/simple-list.xml:32
-#: plugins/admin/departments/class_department.inc:173
-#: plugins/admin/groups/class_ogroup.inc:215
-#: plugins/admin/groups/group-list.xml:33
-#: plugins/admin/groups/class_roleGeneric.inc:86
-#: plugins/admin/aclrole/class_aclRole.inc:99
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:64
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:69
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
-#: setup/setup_migrate_adminAccount.tpl.c:8
-msgid "Name"
+#: include/simpleplugin/attributes/class_BooleanAttribute.inc:187
+#, php-format
+msgid "\"%s\" is not a valid value, should be \"%s\" or \"%s\""
 msgstr ""
 
-#: include/simpleplugin/simple-select-list.xml:40
-#: include/simpleplugin/simple-list.xml:40
-#: include/class_SnapshotDialogs.inc:144 include/class_SnapshotDialogs.inc:150
-#: plugins/admin/departments/dep-list.xml:29
-#: plugins/admin/departments/class_department.inc:72
-#: plugins/admin/groups/class_ogroup.inc:220
-#: plugins/admin/groups/group-list.xml:41
-#: plugins/admin/groups/class_roleGeneric.inc:91
-#: plugins/admin/aclrole/class_aclRole.inc:103
-#: plugins/personal/generic/class_user.inc:327
-msgid "Description"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:139
+#, php-format
+msgid "Unknown type : %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:113
-msgid "Get service status"
+#: include/simpleplugin/attributes/dialog/class_ObjectsAttribute.inc:146
+#, php-format
+msgid "Non existing dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:114
-msgid "Start service"
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:97
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:69
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:143
+msgid "None"
 msgstr ""
 
-#: include/simpleplugin/class_simpleService.inc:115
-msgid "Stop service"
-msgstr ""
+#: include/simpleplugin/attributes/dialog/class_ObjectAttribute.inc:99
+msgid "Unknown"
+msgstr "未知"
 
-#: include/simpleplugin/class_simpleService.inc:116
-msgid "Restart service"
+#: include/simpleplugin/attributes/dialog/class_DialogAttribute.inc:113
+msgid "Add (dialog)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:39
-#: setup/class_setupStepLdap.inc:53 setup/class_setupStepLdap.inc:122
-#: setup/class_setupStepLdap.inc:130 ihtml/themes/breezy/simple-list.tpl.c:2
-msgid "Base"
+#: include/simpleplugin/attributes/class_MailsAttribute.inc:109
+#, php-format
+msgid "%s (from list)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:42
-msgid "Object base"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:150
+#, php-format
+msgid "%s is older than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_BaseSelectorAttribute.inc:126
-msgid "Base field value should always be a string"
+#: include/simpleplugin/attributes/class_DateAttribute.inc:156
+#, php-format
+msgid "%s is newer than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:132
+#: include/simpleplugin/attributes/class_DateAttribute.inc:165
 #, php-format
-msgid "Error, incorrect date: %s"
+msgid "Incorrect date: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:200
-#: include/simpleplugin/attributes/class_DateAttribute.inc:274
+#: include/simpleplugin/attributes/class_DateAttribute.inc:242
+#: include/simpleplugin/attributes/class_DateAttribute.inc:316
 msgid "Hours"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:205
-#: include/simpleplugin/attributes/class_DateAttribute.inc:279
+#: include/simpleplugin/attributes/class_DateAttribute.inc:247
+#: include/simpleplugin/attributes/class_DateAttribute.inc:321
 msgid "Minutes"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:210
+#: include/simpleplugin/attributes/class_DateAttribute.inc:252
 msgid "Seconds"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_DateAttribute.inc:298
-#: include/class_SnapshotDialogs.inc:143 include/class_SnapshotDialogs.inc:149
-msgid "Date"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_DateAttribute.inc:304
+#: include/simpleplugin/attributes/class_DateAttribute.inc:346
 msgid "Time"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
 #: include/simpleplugin/attributes/class_FileAttribute.inc:36
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:46
+#: include/simpleplugin/attributes/class_FileAttribute.inc:56
 #, php-format
 msgid "Cannot read uploaded file: %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:33
+#: include/simpleplugin/attributes/class_FileAttribute.inc:37
 msgid "file is empty"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:36
+#: include/simpleplugin/attributes/class_FileAttribute.inc:47
 msgid "file not found"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:39
+#: include/simpleplugin/attributes/class_FileAttribute.inc:57
 msgid "file not readable"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:74
+#: include/simpleplugin/attributes/class_FileAttribute.inc:95
 #, php-format
 msgid "%s (%d bytes)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:102
-#: include/simpleplugin/class_Attribute.inc:641
-#, php-format
-msgid "Attribute %s is disabled, its value could not be set"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:107
-#, php-format
-msgid "Invalid base64 data for attribute %s"
+#: include/simpleplugin/attributes/class_FileAttribute.inc:147
+msgid "Invalid base64 data"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:165
-#: include/simpleplugin/attributes/class_FileAttribute.inc:418
-#: include/simpleplugin/attributes/class_FileAttribute.inc:419
+#: include/simpleplugin/attributes/class_FileAttribute.inc:206
+#: include/simpleplugin/attributes/class_FileAttribute.inc:454
+#: include/simpleplugin/attributes/class_FileAttribute.inc:455
 msgid "Upload"
-msgstr ""
+msgstr "上传"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:171
-#: include/simpleplugin/attributes/class_FileAttribute.inc:172
+#: include/simpleplugin/attributes/class_FileAttribute.inc:212
+#: include/simpleplugin/attributes/class_FileAttribute.inc:213
 msgid "Download"
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:368
-#, php-format
-msgid "Cannot set \"%s\" value, it contains invalid data: %s"
-msgstr ""
+msgstr "下载"
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:378
+#: include/simpleplugin/attributes/class_FileAttribute.inc:414
 msgid ""
 "Cannot save user picture, FusionDirectory requires the PHP module "
 "\"imagick\" to be installed!"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_FileAttribute.inc:395
+#: include/simpleplugin/attributes/class_IntAttribute.inc:51
 #, php-format
-msgid "Invalid data, Imagick error: \"%s\""
-msgstr ""
-
-#: include/simpleplugin/attributes/class_FileAttribute.inc:428
-#: include/simpleplugin/attributes/class_FileAttribute.inc:429
-#: include/simpleplugin/class_dialogAttributes.inc:780
-#: include/simpleplugin/class_dialogAttributes.inc:781
-#: include/simpleplugin/simple-list.xml:75
-#: include/simpleplugin/simple-list.xml:125
-#: plugins/admin/departments/dep-list.xml:67
-#: plugins/admin/departments/dep-list.xml:88
-#: plugins/admin/groups/group-list.xml:82
-#: plugins/admin/groups/group-list.xml:150
-#: plugins/admin/users/user-list.xml:115
-msgid "Remove"
+msgid "An integer between %d and %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:37
-msgid "Number"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:53
+#, php-format
+msgid "An integer larger than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:144
-#: include/simpleplugin/attributes/class_PhoneNumberAttribute.inc:145
-#: include/simpleplugin/attributes/class_SetAttribute.inc:507
-#: include/simpleplugin/attributes/class_SetAttribute.inc:508
-#: include/simpleplugin/class_dialogAttributes.inc:770
-#: include/simpleplugin/class_dialogAttributes.inc:771
-#: include/simpleplugin/simple-list.xml:67
-#: include/simpleplugin/simple-list.xml:112
-#: plugins/admin/departments/dep-list.xml:79
-#: plugins/admin/groups/group-list.xml:74
-#: plugins/admin/groups/group-list.xml:137
-#: plugins/admin/users/user-list.xml:108
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
-msgid "Edit"
+#: include/simpleplugin/attributes/class_IntAttribute.inc:55
+#, php-format
+msgid "An integer smaller than %d"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:50
+#: include/simpleplugin/attributes/class_IntAttribute.inc:86
 #, php-format
-msgid "An integer between %d and %d"
+msgid "\"%s\" is not an number"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:52
+#: include/simpleplugin/attributes/class_IntAttribute.inc:92
 #, php-format
-msgid "An integer larger than %d"
+msgid "%s is smaller than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:54
+#: include/simpleplugin/attributes/class_IntAttribute.inc:98
 #, php-format
-msgid "An integer smaller than %d"
+msgid "%s is larger than %s"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:156
+#: include/simpleplugin/attributes/class_IntAttribute.inc:176
 #, php-format
 msgid "A float between %f and %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:158
+#: include/simpleplugin/attributes/class_IntAttribute.inc:178
 #, php-format
 msgid "A float larger than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_IntAttribute.inc:160
+#: include/simpleplugin/attributes/class_IntAttribute.inc:180
 #, php-format
 msgid "A float smaller than %f"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:134
+#: include/simpleplugin/attributes/class_DisplayAttribute.inc:128
 #, php-format
-msgid "The value for multivaluated field \"%s\" is not an array"
+msgid "Invalid: %s"
+msgstr ""
+
+#: include/simpleplugin/attributes/class_SetAttribute.inc:158
+msgid "Value is not an array"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:228
-#: include/simpleplugin/class_Attribute.inc:594
+#: include/simpleplugin/attributes/class_SetAttribute.inc:259
+#: include/simpleplugin/class_Attribute.inc:649
 #, php-format
 msgid "%s (required)"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:352
+#: include/simpleplugin/attributes/class_SetAttribute.inc:411
 #, php-format
 msgid "SetAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SetAttribute.inc:601
-#, php-format
-msgid "Invalid value for %s"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:551
+#: include/simpleplugin/attributes/class_SetAttribute.inc:552
+#: ihtml/themes/breezy/management/list.tpl.c:11
+msgid "Sort up"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:66
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:127
-#: include/simpleplugin/class_dialogAttributes.inc:758
-msgid "None"
+#: include/simpleplugin/attributes/class_SetAttribute.inc:566
+#: include/simpleplugin/attributes/class_SetAttribute.inc:567
+#: ihtml/themes/breezy/management/list.tpl.c:14
+msgid "Sort down"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_SelectAttribute.inc:153
+#: include/simpleplugin/attributes/class_SelectAttribute.inc:171
 #, php-format
-msgid "The value \"%s\" for field \"%s\" is not in the list of possible choices"
+msgid "\"%s\" is not in the list of possible choices"
 msgstr ""
 
-#: include/simpleplugin/attributes/class_StringAttribute.inc:114
+#: include/simpleplugin/attributes/class_StringAttribute.inc:160
 #, php-format
 msgid "StringAttribute \"%s\" was set to a non-compatible value"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:345
+#: include/simpleplugin/class_simplePlugin.inc:353
 msgid "Template settings"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:348
+#: include/simpleplugin/class_simplePlugin.inc:356
 msgid "This is the name of the template"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:468
+#: include/simpleplugin/class_simplePlugin.inc:473
 msgid "Only main tab can compute dn"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:475
+#: include/simpleplugin/class_simplePlugin.inc:478
 #, php-format
 msgid "Could not compute dn: no parent tab class for \"%s\""
 msgstr ""
 
 #: include/simpleplugin/class_simplePlugin.inc:487
 #, php-format
-msgid ""
-"Could not compute dn: could not find objectType infos from tab class \"%s\""
+msgid "Could not compute dn: could not find objectType info from tab class \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1319
+#: include/simpleplugin/class_simplePlugin.inc:1407
 #, php-format
-msgid "There is already an entry with the same dn : %s"
+msgid "There is already an entry with the same dn: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1326
+#: include/simpleplugin/class_simplePlugin.inc:1423
 #, php-format
 msgid "The entry %s is not existing"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1525
+#: include/simpleplugin/class_simplePlugin.inc:1655
 msgid ""
-"The object has changed since opened in FusionDirectory. All changes that may"
-" be done by others will get lost if you save this entry!"
+"The object has changed since being opened in FusionDirectory. All changes "
+"that may be done by others will get lost if you save this entry!"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1789
+#: include/simpleplugin/class_simplePlugin.inc:1923
 #, php-format
 msgid "Service \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1791
+#: include/simpleplugin/class_simplePlugin.inc:1925
 #, php-format
 msgid "Tab \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1854
+#: include/simpleplugin/class_simplePlugin.inc:1988
 msgid "Failed to create a unique DN"
 msgstr ""
 
-#: include/simpleplugin/class_simplePlugin.inc:1946
+#: include/simpleplugin/class_simplePlugin.inc:2100
 #, php-format
 msgid "Unknown field \"%s\""
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:74
+#: include/simpleplugin/class_simplePlugin.inc:2196
+msgid "The time the entry was added"
+msgstr ""
+
+#: include/simpleplugin/class_simplePlugin.inc:2197
+msgid "The time the entry was last modified"
+msgstr ""
+
+#: include/simpleplugin/class_simpleTabs.inc:73
 #, php-format
 msgid ""
 "No plugin definitions found to initialize \"%s\", please check your "
 "configuration file."
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:396
+#: include/simpleplugin/class_simpleTabs.inc:438
 #, php-format
 msgid "Failed to compute DN for object: %s"
 msgstr ""
 
-#: include/simpleplugin/class_simpleTabs.inc:413
+#: include/simpleplugin/class_simpleTabs.inc:460
 #, php-format
 msgid "Move from \"%s\" to \"%s\" failed: %s"
 msgstr ""
 
-#: include/simpleplugin/class_Attribute.inc:907
-#, php-format
-msgid "Invalid: %s"
-msgstr ""
-
-#: include/simpleplugin/class_helpersAttribute.inc:268
+#: include/simpleplugin/class_helpersAttribute.inc:261
 msgid "B"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:269
+#: include/simpleplugin/class_helpersAttribute.inc:262
 msgid "KiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:270
+#: include/simpleplugin/class_helpersAttribute.inc:263
 msgid "MiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:271
+#: include/simpleplugin/class_helpersAttribute.inc:264
 msgid "GiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:272
+#: include/simpleplugin/class_helpersAttribute.inc:265
 msgid "TiB"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:286
+#: include/simpleplugin/class_helpersAttribute.inc:279
 msgid "seconds"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:287
+#: include/simpleplugin/class_helpersAttribute.inc:280
 msgid "minutes"
 msgstr ""
 
-#: include/simpleplugin/class_helpersAttribute.inc:288
+#: include/simpleplugin/class_helpersAttribute.inc:281
 msgid "hours"
-msgstr ""
+msgstr "小时"
 
-#: include/simpleplugin/class_helpersAttribute.inc:289
+#: include/simpleplugin/class_helpersAttribute.inc:282
 msgid "days"
-msgstr ""
+msgstr "天"
 
-#: include/simpleplugin/class_dialogAttributes.inc:254
-msgid "Add(dialog)"
-msgstr ""
+#: include/class_acl.inc:35 include/class_acl.inc:39
+msgid "ACL"
+msgstr "ACL"
 
-#: include/simpleplugin/class_dialogAttributes.inc:517
-#, php-format
-msgid "POSIX group %s"
+#: include/class_acl.inc:36
+msgid "Manage access control lists"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:519
-#: plugins/config/class_configInLdap.inc:479
-#, php-format
-msgid "Role %s"
+#: include/class_acl.inc:39
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:26
+msgid "ACL roles"
 msgstr ""
 
-#: include/simpleplugin/class_dialogAttributes.inc:521
-#: plugins/config/class_configInLdap.inc:472
+#: include/class_acl.inc:105
 #, php-format
-msgid "Group %s"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:559
-msgid "Group of user"
-msgstr ""
-
-#: include/simpleplugin/class_dialogAttributes.inc:760
-msgid "Unknown"
+msgid ""
+"Unkown ACL type \"%s\"!\n"
+"You might need to run \"fusiondirectory-configuration-manager --migrate-acls\" to migrate your acls to the new format."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:301
-#: plugins/admin/users/user-list.xml:87
-msgid "From template"
+#: include/class_acl.inc:161
+#, php-format
+msgid "Unknown entry '%s'!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:329
+#: include/class_acl.inc:164
 #, php-format
-msgid "%s template"
+msgid "All users"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:526
-#: include/simpleplugin/class_simpleManagement.inc:532
-#: plugins/admin/groups/class_groupManagement.inc:355
+#: include/class_userinfo.inc:241
 #, php-format
-msgid "Show %s"
+msgid ""
+"An ACL assignment for the connected user matched more than than the %d "
+"objects limit. This user will not have the ACL rights he should."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "Filter error"
+#: include/class_userinfo.inc:1071
+msgid ""
+"Login (uid) is not unique inside the LDAP tree. Please contact your "
+"administrator."
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:563
-msgid "The filter is incomplete!"
-msgstr ""
+#: include/errors/class_FusionDirectoryWarning.inc:28
+#: setup/class_setupStepMigrate.inc:632 setup/class_setupStepMigrate.inc:1034
+#: setup/class_setupStepMigrate.inc:1209 setup/class_setupStepMigrate.inc:1261
+#: setup/class_setupStepMigrate.inc:1376 setup/class_setupStepMigrate.inc:1468
+#: setup/setup_checks.tpl.c:11 ihtml/themes/legacy/login.tpl.c:38
+#: ihtml/themes/breezy/msg_dialog.tpl.c:5 ihtml/themes/breezy/islocked.tpl.c:5
+#: ihtml/themes/breezy/login.tpl.c:38
+msgid "Warning"
+msgstr "警告"
 
-#: include/simpleplugin/class_simpleManagement.inc:1107
-msgid "Permission error"
+#: include/errors/class_SimplePluginLdapError.inc:86
+msgid "Object:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1139
-#, php-format
-msgid "You are not allowed to create a snapshot for %s."
+#: include/errors/class_SimplePluginLdapError.inc:89
+msgid "Error:"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1188
-#: include/simpleplugin/class_simpleManagement.inc:1268
-#: include/simpleplugin/class_simpleManagement.inc:1286
-#, php-format
-msgid "You are not allowed to restore a snapshot for %s."
+#: include/errors/class_SimplePluginHookError.inc:70
+msgid "Trigger returned an error!"
 msgstr ""
 
-#: include/simpleplugin/class_simpleManagement.inc:1330
+#: include/errors/class_SimplePluginHookError.inc:73
 #, php-format
-msgid "You are not allowed to delete a snapshot for %s."
-msgstr ""
-
-#: include/simpleplugin/simple-list.xml:11
-msgid "NO LABEL"
+msgid "Exit code: %d"
 msgstr ""
 
-#: include/simpleplugin/simple-list.xml:59
-#: plugins/admin/departments/dep-list.xml:48
-#: plugins/admin/groups/group-list.xml:66 plugins/admin/users/user-list.xml:73
-#: setup/class_setupStepMigrate.inc:829
-msgid "Create"
+#: include/errors/class_SimplePluginCheckError.inc:37
+msgid "Invalid value:"
 msgstr ""
 
-#: include/class_acl.inc:35 include/class_acl.inc:39
-msgid "ACL"
+#: include/errors/class_FatalError.inc:67
+msgid "FusionDirectory Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:36
-msgid "Manage access control lists"
+#: include/errors/class_FatalError.inc:77
+msgid "Fatal Error"
 msgstr ""
 
-#: include/class_acl.inc:39
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:34
-msgid "ACL roles"
+#: include/class_ldap.inc:137
+#, php-format
+msgid "FATAL: Error when connecting to LDAP. Server said \"%s\"."
 msgstr ""
 
-#: include/class_acl.inc:118
-#, php-format
+#: include/class_ldap.inc:210
 msgid ""
-"Unkown ACL type '%s'!\n"
-"You might need to run \"fusiondirectory-setup --migrate-acls\" to migrate your acls to the new format."
+"It seems your user password has expired. Please use <a "
+"href=\"recovery.php\">password recovery</a> to change it."
 msgstr ""
 
-#: include/class_acl.inc:170
+#: include/class_ldap.inc:233
 #, php-format
-msgid "Unknown entry '%s'!"
+msgid "Unexpected ppolicy error \"%s\", please contact the administrator"
 msgstr ""
 
-#: include/class_acl.inc:173
+#: include/class_ldap.inc:390
 #, php-format
-msgid "All users"
+msgid "LDAP performance is poor: last query took about %.2fs!"
 msgstr ""
 
-#: include/class_ldap.inc:277
-msgid "Performance warning"
+#: include/class_ldap.inc:416
+msgid "Parsing LDAP result failed"
 msgstr ""
 
-#: include/class_ldap.inc:277
-#, php-format
-msgid "LDAP performance is poor: last query took about %.2fs!"
+#: include/class_ldap.inc:418
+msgid "No LDAP result to parse"
 msgstr ""
 
-#: include/class_ldap.inc:797
+#: include/class_ldap.inc:985
 #, php-format
-msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
+msgid ""
+"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
 msgstr ""
 
-#: include/class_ldap.inc:822
+#: include/class_ldap.inc:1026
 #, php-format
-msgid ""
-"Cannot automatically create subtrees with RDN \"%s\": no object class found!"
+msgid "Cannot automatically create subtrees with RDN \"%s\": not supported"
 msgstr ""
 
-#: include/class_ldap.inc:897
+#: include/class_ldap.inc:1077
 #, php-format
-msgid "while operating on '%s' using LDAP server '%s'"
+msgid "%s (%s, while operating on \"%s\" using LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:899
+#: include/class_ldap.inc:1082
 #, php-format
-msgid "while operating on LDAP server %s"
+msgid "%s (while operating on LDAP server \"%s\")"
 msgstr ""
 
-#: include/class_ldap.inc:1012
+#: include/class_ldap.inc:1196
 msgid "proc_open failed to execute ldapsearch"
 msgstr ""
 
-#: include/class_ldap.inc:1058
+#: include/class_ldap.inc:1223
 #, php-format
 msgid "Error line %s, first line of an entry cannot start with a space"
 msgstr ""
 
-#: include/class_ldap.inc:1076
+#: include/class_ldap.inc:1241
 #, php-format
 msgid "Error line %s, references to an external file are not supported"
 msgstr ""
 
-#: include/class_ldap.inc:1079
+#: include/class_ldap.inc:1244
 #, php-format
 msgid "Error line %s, attribute \"%s\" has no value"
 msgstr ""
 
-#: include/class_ldap.inc:1083
+#: include/class_ldap.inc:1248
 #, php-format
 msgid "Error line %s, an entry bloc can only have one dn"
 msgstr ""
 
-#: include/class_ldap.inc:1088
+#: include/class_ldap.inc:1253
 #, php-format
 msgid "Error line %s, an entry bloc should start with the dn"
 msgstr ""
 
-#: include/class_ldap.inc:1120
+#: include/class_ldap.inc:1311
 #, php-format
 msgid "Error while importing dn: \"%s\", please check your LDIF from line %s on!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:40
-msgid "Creating an object snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:43 include/class_SnapshotDialogs.inc:261
-msgid "DN of the object you are creating a snapshot of"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:47
-msgid "Timestamp of this snapshot creation"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:51
-msgid "Reason for creating this snapshot"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:105 include/class_SnapshotDialogs.inc:187
-msgid "Y-m-d, H:i:s"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:142
-msgid "DN"
-msgstr ""
-
-#: include/class_SnapshotDialogs.inc:204 include/class_SnapshotDialogs.inc:205
-msgid "Restore"
+#: include/class_Lock.inc:78
+msgid "Error while adding a lock. Contact the developers!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:257
-msgid "Restoring snapshots"
+#: include/class_Lock.inc:101
+msgid ""
+"Cannot create locking information in LDAP tree. Please contact your "
+"administrator!"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Snapshots"
+#: include/class_Lock.inc:102
+#, php-format
+msgid "LDAP server returned: %s"
 msgstr ""
 
-#: include/class_SnapshotDialogs.inc:265
-msgid "Existing snapshots for this object"
+#: include/class_Lock.inc:266
+msgid ""
+"Found multiple locks for object to be locked. This should not happen - "
+"cleaning up multiple references."
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:9
-msgid "List of departments"
+#: include/class_Lock.inc:302
+msgid "Timeout while waiting for lock!"
 msgstr ""
 
-#: plugins/admin/departments/dep-list.xml:21
-#: plugins/admin/departments/class_department.inc:33
-#: plugins/admin/departments/class_department.inc:39
-msgid "Department"
-msgstr ""
+#: include/class_Lock.inc:372
+msgid "Edit anyway"
+msgstr "仍然编辑"
 
+#: plugins/admin/departments/class_domain.inc:29
 #: plugins/admin/departments/class_domain.inc:30
-#: plugins/admin/departments/class_domain.inc:31
 #: plugins/admin/departments/class_domain.inc:34
 msgid "Domain"
-msgstr ""
+msgstr "域"
 
 #: plugins/admin/departments/class_domain.inc:51
 msgid "domain"
 msgstr ""
 
+#: plugins/admin/departments/class_organization.inc:29
 #: plugins/admin/departments/class_organization.inc:30
-#: plugins/admin/departments/class_organization.inc:31
-#: plugins/admin/departments/class_organization.inc:34
-#: plugins/personal/generic/class_user.inc:432
+#: plugins/admin/departments/class_organization.inc:35
+#: plugins/personal/generic/class_user.inc:213
 msgid "Organization"
-msgstr ""
+msgstr "组织/公司"
 
-#: plugins/admin/departments/class_organization.inc:51
+#: plugins/admin/departments/class_organization.inc:52
 msgid "organization"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:34
+#: plugins/admin/departments/class_department.inc:30
+#: plugins/admin/departments/class_department.inc:38
+msgid "Department"
+msgstr "部门"
+
+#: plugins/admin/departments/class_department.inc:31
 #: plugins/admin/departments/class_department.inc:35
-#: plugins/admin/departments/class_departmentManagement.inc:33
+#: plugins/admin/departments/class_departmentManagement.inc:29
 msgid "Departments"
-msgstr ""
+msgstr "部门"
 
-#: plugins/admin/departments/class_department.inc:57
+#: plugins/admin/departments/class_department.inc:56
 msgid "department"
-msgstr ""
+msgstr "部门"
 
-#: plugins/admin/departments/class_department.inc:63
-#: plugins/admin/groups/class_ogroup.inc:211
-#: plugins/admin/groups/group-list.xml:49
-#: plugins/admin/acl/class_aclAssignment.inc:38
-#: plugins/admin/users/user-list.xml:57
-#: plugins/admin/aclrole/class_aclRole.inc:95
+#: plugins/admin/departments/class_department.inc:62
+#: plugins/admin/groups/class_ogroup.inc:81
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:38
+#: plugins/admin/aclrole/class_aclRole.inc:94
 msgid "Properties"
-msgstr ""
+msgstr "属性"
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "Name of %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:67
+#: plugins/admin/departments/class_department.inc:66
 #, php-format
 msgid "A name for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:72
+#: plugins/admin/departments/class_department.inc:71
 #, php-format
 msgid "Short description of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 msgid "Category"
-msgstr ""
+msgstr "分类"
 
-#: plugins/admin/departments/class_department.inc:76
+#: plugins/admin/departments/class_department.inc:75
 #, php-format
 msgid "Category of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 msgid "Website"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:80
+#: plugins/admin/departments/class_department.inc:79
 #, php-format
 msgid "Website of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
-#: plugins/personal/generic/class_user.inc:452
+#: plugins/admin/departments/class_department.inc:83
+#: plugins/personal/generic/class_user.inc:233
 msgid "Manager"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:84
+#: plugins/admin/departments/class_department.inc:83
 #, php-format
 msgid "Manager of this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:90
-#: plugins/admin/departments/class_department.inc:96
-#: plugins/personal/generic/class_user.inc:342
+#: plugins/admin/departments/class_department.inc:89
+#: plugins/admin/departments/class_department.inc:95
+#: plugins/personal/generic/class_user.inc:123
 msgid "Location"
-msgstr ""
+msgstr "位置"
 
-#: plugins/admin/departments/class_department.inc:93
-#: plugins/personal/generic/class_user.inc:346
+#: plugins/admin/departments/class_department.inc:92
+#: plugins/personal/generic/class_user.inc:127
 msgid "State"
-msgstr ""
+msgstr "州/省"
 
-#: plugins/admin/departments/class_department.inc:99
+#: plugins/admin/departments/class_department.inc:98
 #: plugins/admin/departments/class_country.inc:29
 #: plugins/admin/departments/class_country.inc:30
-#: plugins/admin/departments/class_country.inc:33
+#: plugins/admin/departments/class_country.inc:35
 msgid "Country"
-msgstr ""
+msgstr "国家"
 
-#: plugins/admin/departments/class_department.inc:102
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/admin/departments/class_department.inc:101
+#: plugins/personal/generic/class_user.inc:131
 msgid "Address"
-msgstr ""
+msgstr "住址"
 
-#: plugins/admin/departments/class_department.inc:102
+#: plugins/admin/departments/class_department.inc:101
 #, php-format
 msgid "A postal address for this %s"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:106
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/admin/departments/class_department.inc:105
+#: plugins/personal/generic/class_user.inc:139
 msgid "Phone"
-msgstr ""
+msgstr "电话"
 
-#: plugins/admin/departments/class_department.inc:106
+#: plugins/admin/departments/class_department.inc:105
 msgid "Telephone number"
 msgstr ""
 
-#: plugins/admin/departments/class_department.inc:112
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/admin/departments/class_department.inc:111
+#: plugins/personal/generic/class_user.inc:155
 msgid "Fax"
-msgstr ""
+msgstr "传真"
 
-#: plugins/admin/departments/class_department.inc:112
+#: plugins/admin/departments/class_department.inc:111
 msgid "Facsimile telephone number"
 msgstr ""
 
+#: plugins/admin/departments/class_department.inc:172
+#: plugins/admin/groups/class_ogroup.inc:85
+#: plugins/admin/groups/class_roleGeneric.inc:86
+#: plugins/admin/aclrole/class_aclRole.inc:98
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:64
+#: plugins/addons/dashboard/class_dashboardUsers.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
+#: setup/setup_migrate_adminAccount.tpl.c:8
+msgid "Name"
+msgstr "名称"
+
+#: plugins/admin/departments/class_dcObject.inc:29
 #: plugins/admin/departments/class_dcObject.inc:30
-#: plugins/admin/departments/class_dcObject.inc:31
 #: plugins/admin/departments/class_dcObject.inc:34
 msgid "Domain Component"
 msgstr ""
@@ -2001,265 +2118,230 @@ msgstr ""
 msgid "domain component"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:50
+#: plugins/admin/departments/class_country.inc:52
 msgid "country"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "Country code"
 msgstr ""
 
-#: plugins/admin/departments/class_country.inc:56
+#: plugins/admin/departments/class_country.inc:58
 msgid "A two-letter country code from ISO 3166"
 msgstr ""
 
+#: plugins/admin/departments/class_locality.inc:29
 #: plugins/admin/departments/class_locality.inc:30
-#: plugins/admin/departments/class_locality.inc:31
-#: plugins/admin/departments/class_locality.inc:34
+#: plugins/admin/departments/class_locality.inc:35
 msgid "Locality"
 msgstr ""
 
-#: plugins/admin/departments/class_locality.inc:51
+#: plugins/admin/departments/class_locality.inc:52
 msgid "locality"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:34
+#: plugins/admin/departments/class_departmentManagement.inc:30
 msgid "Manage departments"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:35
+#: plugins/admin/departments/class_departmentManagement.inc:31
 msgid ""
 "Manage departments, countries, domain components, domains, localities and "
 "organization nodes,"
 msgstr ""
 
-#: plugins/admin/departments/class_departmentManagement.inc:37
+#: plugins/admin/departments/class_departmentManagement.inc:33
 msgid "Users and groups"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:35
-#: plugins/personal/roles/class_userRoles.inc:33
-msgid "Groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:36
-msgid "Manage groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:37
-msgid "Allows you to manage object groups, POSIX groups and roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#: plugins/admin/groups/class_groupManagement.inc:158
-#: plugins/admin/groups/class_groupManagement.inc:176
-msgid "Action canceled"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:155
-#, php-format
-msgid "System %s has no mac address defined, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:42
+#: plugins/admin/tasks/class_tasksManagement.inc:44
+#: plugins/config/class_tasksConfig.inc:26
+#: plugins/addons/tasks/class_tasks.inc:29
+#: plugins/addons/tasks/class_tasks.inc:30
+#: plugins/addons/tasks/class_tasks.inc:35
+msgid "Tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:158
-#, php-format
-msgid "Could not find system %s, cannot trigger action"
+#: plugins/admin/tasks/class_tasksManagement.inc:43
+msgid "Provide a mechanism to create and manage tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:176
-#, php-format
-msgid "System %s is currently installing"
+#: plugins/admin/tasks/class_tasksDashboard.inc:51
+#: plugins/admin/tasks/class_tasksDashboard.inc:53
+msgid "Tasks Dashboard"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:195
-#: plugins/admin/groups/class_groupManagement.inc:226
-msgid "Infrastructure service"
+#: plugins/admin/tasks/class_tasksDashboard.inc:52
+msgid "Provide a reporting mechanism for tasks"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#: plugins/admin/groups/class_groupManagement.inc:203
-msgid "Action triggered"
+#: plugins/admin/tasks/class_tasksDashboard.inc:55
+#: plugins/addons/dashboard/class_dashboard.inc:38
+msgid "Reporting"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:198
-#, php-format
-msgid "Action called without error(results were \"%s\")"
+#: plugins/admin/tasks/class_tasksDashboard.inc:68
+msgid "Renew the selected task"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:203
+#: plugins/admin/tasks/class_tasksDashboard.inc:95
 #, php-format
-msgid "Action called without error(result was \"%s\")"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-#: plugins/admin/groups/class_roleGeneric.inc:55
-#: plugins/admin/groups/class_roleGeneric.inc:59
-#: plugins/admin/acl/class_aclAssignment.inc:47
-#: plugins/admin/aclrole/class_aclRole.inc:77
-msgid "Role"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:263
-msgid "Edit role properties"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Posix"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:279
-msgid "Edit posix properties"
+msgid "Error updating: \"%s\" !."
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:322
-msgid "Show user groups"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:323
-msgid "Show organizational roles"
-msgstr ""
-
-#: plugins/admin/groups/class_groupManagement.inc:324
-msgid "Show application groups"
-msgstr ""
+#: plugins/admin/tasks/class_tasksDashboard.inc:128
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+#: setup/class_setupStepLdap.inc:86
+msgid "Status"
+msgstr "状态"
 
-#: plugins/admin/groups/class_groupManagement.inc:325
-msgid "Show groups of groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:34
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:35
+#: plugins/config/class_mailTemplateConfig.inc:40
+#: plugins/addons/tasks/class_tasksMail.inc:54
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:29
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:30
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:34
+msgid "Mail Template"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:326
-msgid "Show unidentified groups"
+#: plugins/admin/mailtemplate/class_mailTemplateManagement.inc:36
+msgid "Manages mails templates"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:329
-#: include/select/groupSelect/group-filter.tpl.c:5
-msgid "Show primary groups"
+#: plugins/admin/groups/class_groupManagement.inc:41
+#: plugins/personal/roles/class_userRoles.inc:33
+msgid "Groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:331
-#: include/select/groupSelect/group-filter.tpl.c:11
-msgid "Show mail groups"
+#: plugins/admin/groups/class_groupManagement.inc:42
+msgid "Manage groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:334
-#: include/select/groupSelect/group-filter.tpl.c:8
-msgid "Show samba groups"
+#: plugins/admin/groups/class_groupManagement.inc:43
+msgid "Allows you to manage object groups, POSIX groups and roles"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:338
-msgid "Show DSA entries"
+#: plugins/admin/groups/class_groupManagement.inc:90
+msgid "Trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:344
-msgid "Show server groups"
+#: plugins/admin/groups/class_groupManagement.inc:96
+msgid "Schedule action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:345
-msgid "Show workstation groups"
+#: plugins/admin/groups/class_groupManagement.inc:136
+#, php-format
+msgid "System %s has no mac address defined, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:346
-msgid "Show terminal groups"
+#: plugins/admin/groups/class_groupManagement.inc:145
+#, php-format
+msgid "Could not find system %s, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:347
-msgid "Show printer groups"
+#: plugins/admin/groups/class_groupManagement.inc:169
+#, php-format
+msgid "System %s is currently installing, cannot trigger action"
 msgstr ""
 
-#: plugins/admin/groups/class_groupManagement.inc:348
-msgid "Show phone groups"
+#: plugins/admin/groups/class_groupManagement.inc:195
+#: plugins/admin/groups/class_groupManagement.inc:200
+msgid "Action triggered"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:61
+#: plugins/admin/groups/class_groupManagement.inc:195
 #, php-format
-msgid "Unknown type : %s"
+msgid "Action called without error (results were \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:69
+#: plugins/admin/groups/class_groupManagement.inc:200
 #, php-format
-msgid "Non existing dn: %s"
+msgid "Action called without error (result was \"%s\")"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:175
+#: plugins/admin/groups/class_ogroup.inc:44
 msgid "Object group"
-msgstr ""
+msgstr "对象组"
 
-#: plugins/admin/groups/class_ogroup.inc:176
+#: plugins/admin/groups/class_ogroup.inc:45
 msgid "Object group information"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:180
-#: plugins/admin/groups/class_ogroup.inc:181
+#: plugins/admin/groups/class_ogroup.inc:50
+#: plugins/admin/groups/class_ogroup.inc:51
 msgid "Group"
-msgstr ""
+msgstr "组"
 
-#: plugins/admin/groups/class_ogroup.inc:215
+#: plugins/admin/groups/class_ogroup.inc:85
 #: plugins/admin/groups/class_roleGeneric.inc:86
 msgid "Name of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:220
+#: plugins/admin/groups/class_ogroup.inc:90
 msgid "Short description of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:225
+#: plugins/admin/groups/class_ogroup.inc:95
 msgid "Owner"
-msgstr ""
+msgstr "所有者"
 
-#: plugins/admin/groups/class_ogroup.inc:231
+#: plugins/admin/groups/class_ogroup.inc:101
 msgid "Member objects"
-msgstr ""
+msgstr "成员对象"
 
-#: plugins/admin/groups/class_ogroup.inc:234
+#: plugins/admin/groups/class_ogroup.inc:104
 msgid "Objects member of this group"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:241
+#: plugins/admin/groups/class_ogroup.inc:111
 msgid "System trust"
-msgstr ""
+msgstr "信赖的系统"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Trust mode"
-msgstr ""
+msgstr "信赖模式"
 
-#: plugins/admin/groups/class_ogroup.inc:245
+#: plugins/admin/groups/class_ogroup.inc:115
 msgid "Type of authorization for those hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "disabled"
-msgstr ""
+msgstr "禁用"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "full access"
-msgstr ""
+msgstr "完全访问权限"
 
-#: plugins/admin/groups/class_ogroup.inc:249
+#: plugins/admin/groups/class_ogroup.inc:119
 msgid "allow access to these hosts"
-msgstr ""
+msgstr "允许访问这些主机"
 
-#: plugins/admin/groups/class_ogroup.inc:252
+#: plugins/admin/groups/class_ogroup.inc:122
 msgid "Only allow this group to connect to this list of hosts"
 msgstr ""
 
-#: plugins/admin/groups/class_ogroup.inc:346
+#: plugins/admin/groups/class_ogroup.inc:203
 msgid ""
 "Putting both workstations and terminals in the same group is not allowed"
 msgstr ""
 
-#: plugins/admin/groups/group-list.xml:11
-msgid "List of groups"
-msgstr ""
-
-#: plugins/admin/groups/group-list.xml:93
-msgid "Trigger action"
-msgstr ""
+#: plugins/admin/groups/class_GroupContentFilterElement.inc:69
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Members"
+msgstr "成员"
 
-#: plugins/admin/groups/group-list.xml:100
-msgid "Schedule action"
-msgstr ""
+#: plugins/admin/groups/class_roleGeneric.inc:53
+#: plugins/admin/groups/class_roleGeneric.inc:59
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
+#: plugins/admin/aclrole/class_aclRole.inc:75
+msgid "Role"
+msgstr "角色"
 
-#: plugins/admin/groups/class_roleGeneric.inc:56
+#: plugins/admin/groups/class_roleGeneric.inc:54
 msgid "Role information"
 msgstr ""
 
@@ -2270,17 +2352,17 @@ msgstr ""
 #: plugins/admin/groups/class_roleGeneric.inc:82
 #: ihtml/themes/breezy/msg_dialog.tpl.c:8
 msgid "Information"
-msgstr ""
+msgstr "提示信息"
 
 #: plugins/admin/groups/class_roleGeneric.inc:91
 msgid "Description of the role"
 msgstr ""
 
 #: plugins/admin/groups/class_roleGeneric.inc:95
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:65
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:71
+#: plugins/addons/dashboard/class_dashboardUsers.inc:65
+#: plugins/addons/dashboard/class_dashboardUsers.inc:71
 msgid "Phone number"
-msgstr ""
+msgstr "电话号码"
 
 #: plugins/admin/groups/class_roleGeneric.inc:99
 msgid "Fax number"
@@ -2294,391 +2376,453 @@ msgstr ""
 msgid "Add users for the role"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:26
+#: plugins/admin/acl/class_aclAssignment.inc:29
+msgid "ACL assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:42
+msgid "ACL Assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:43
+msgid "Access control roles assignment"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:64
+msgid "Assignments"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:68
+msgid "ACL role assignments for this base"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignment.inc:79
+#, php-format
+msgid "Assignments on object or subtree %s"
+msgstr ""
+
+#: plugins/admin/acl/class_ACLsAssignmentAttribute.inc:34
+#, php-format
+msgid ", and %d others"
+msgstr ""
+
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:26
 msgid "ACL Assignment Dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:27
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:27
 msgid "Access control roles assignment dialog"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
-#: plugins/config/class_configInLdap.inc:419
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
+#: plugins/config/class_hooksConfig.inc:67
+#: plugins/config/class_hooksConfig.inc:107
 msgid "Mode"
-msgstr ""
+msgstr "模式"
 
-#: plugins/admin/acl/class_aclAssignment.inc:41
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:41
 msgid "Is this applying on complete subtree or only the base?"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Subtree"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:44
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:44
 msgid "Base only"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:47
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:47
 msgid "Role to apply"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "For all users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:52
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:52
 msgid "Apply this ACL for all LDAP users"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:56
-msgid "Members"
-msgstr ""
-
-#: plugins/admin/acl/class_aclAssignment.inc:56
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:56
 msgid "Users or groups to assign this role to."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:190
-#, php-format
-msgid ", and %d others"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:62
+msgid "Advanced"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:270
-msgid "ACL assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:65
+msgid "Warning message"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:284
-#: plugins/admin/acl/class_aclManagement.inc:226
-msgid "ACL Assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:67
+msgid ""
+"These options allow you to restrict members or targets by LDAP filter. The "
+"member filter cannot use masks, and is safe to return any number of results "
+"as it will only be applied to the logged in user. For target filter, please "
+"avoid using a filter returning too many results, and if using template "
+"masks, avoid doing so on user-editable fields."
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:285
-msgid "Access control roles assignment"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "Member filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:304
-msgid "Assignments"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:70
+msgid "LDAP filter which a member must match to actually get the rights"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:308
-msgid "ACL role assignments for this base"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid "Target filter"
 msgstr ""
 
-#: plugins/admin/acl/class_aclAssignment.inc:319
-#, php-format
-msgid "Assignments on object or subtree %s"
+#: plugins/admin/acl/class_aclAssignmentDialogWindow.inc:74
+msgid ""
+"LDAP filter which a dn must match to actually be concerned. May use template"
+" masks for user fields. Example: (manager=%dn%)."
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:31
-#: plugins/admin/acl/class_aclManagement.inc:32
-#: plugins/admin/acl/class_aclManagement.inc:45
+#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:34
+#: plugins/admin/acl/class_aclManagement.inc:47
 msgid "ACL assignment creation"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:33
+#: plugins/admin/acl/class_aclManagement.inc:35
 msgid "Create an ACL assignment on an arbitrary dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "Dn"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:49
+#: plugins/admin/acl/class_aclManagement.inc:51
 msgid "DN you wish to add assignments for"
 msgstr ""
 
 #: plugins/admin/acl/class_aclManagement.inc:110
-msgid "The dn you entered could not be found in the LDAP"
+msgid "The dn you entered could not be found in LDAP"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:140
+#: plugins/admin/acl/class_aclManagement.inc:146
 msgid "ACL assignments"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:141
+#: plugins/admin/acl/class_aclManagement.inc:147
 msgid "ACL assignments management"
 msgstr ""
 
-#: plugins/admin/acl/class_aclManagement.inc:142
+#: plugins/admin/acl/class_aclManagement.inc:148
 msgid "Manage ACL roles assignments to users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:11
-msgid "List of users"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:33
-msgid "Surname"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:41
-msgid "Given name"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:79
-#: plugins/personal/generic/class_user.inc:278
-#: plugins/personal/generic/class_user.inc:284
-msgid "User"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:127
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Lock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:135
+#: plugins/admin/users/class_LockAction.inc:27
 msgid "Unlock users"
 msgstr ""
 
-#: plugins/admin/users/user-list.xml:146
-msgid "Apply template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:177
-msgid "New user from template"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:189
-msgid "Edit user"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:198
-msgid "%{filter:lockLabel(userPassword)}"
-msgstr ""
-
-#: plugins/admin/users/user-list.xml:212
-msgid "Remove user"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:42
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:27
-#: setup/class_setupStepMigrate.inc:816
+#: plugins/admin/users/class_userManagement.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:27
+#: setup/class_setupStepMigrate.inc:844
 msgid "Users"
-msgstr ""
+msgstr "用户"
 
-#: plugins/admin/users/class_userManagement.inc:43
+#: plugins/admin/users/class_userManagement.inc:41
 msgid "Manage users"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:44
+#: plugins/admin/users/class_userManagement.inc:42
 msgid "Manage user accounts and their properties"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:178
-#: plugins/admin/users/class_userManagement.inc:201
-msgid "Account locking"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:179
+#: plugins/admin/users/class_userManagement.inc:116
 #, php-format
 msgid ""
 "Password method \"%s\" does not support locking. Account \"%s\" has not been"
 " locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:202
+#: plugins/admin/users/class_userManagement.inc:140
 #, php-format
 msgid ""
 "Locking failed using password method \"%s\". Account \"%s\" has not been "
 "locked!"
 msgstr ""
 
-#: plugins/admin/users/class_userManagement.inc:228
-msgid "Unlock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:230
-msgid "Lock account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:285
-msgid "User account"
-msgstr ""
-
-#: plugins/admin/users/class_userManagement.inc:255
-#: plugins/personal/generic/class_user.inc:279
-msgid "User account information"
-msgstr ""
-
 #: plugins/admin/aclrole/class_aclRole.inc:38
 #, php-format
 msgid "Contains settings for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:78
+#: plugins/admin/aclrole/class_aclRole.inc:76
 msgid "Access control roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:81
+#: plugins/admin/aclrole/class_aclRole.inc:80
 msgid "ACL role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:99
+#: plugins/admin/aclrole/class_aclRole.inc:98
 msgid "A name for this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:103
+#: plugins/admin/aclrole/class_aclRole.inc:102
 msgid "Short description of this role"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:109
+#: plugins/admin/aclrole/class_aclRole.inc:108
 msgid "ACLs"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRole.inc:113
+#: plugins/admin/aclrole/class_aclRole.inc:112
 msgid "ACLs which are part of this group"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:186
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
 msgid "No ACL settings for this category"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:188
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:204
 #, php-format
 msgid "ACL for these objects: %s"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:192
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:208
 msgid "Edit category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:194
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:210
 msgid "Reset category ACL"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:202
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:218
 msgid "List of available ACL categories"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:215
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:277
 msgid "All objects in current subtree"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:217
+#: plugins/admin/aclrole/class_aclEditionDialog.inc:305
 #, php-format
 msgid "Edit ACL for \"%s\""
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:258
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:358
-msgid "read"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:27
+msgid "ACL roles management"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:260
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:359
-msgid "write"
+#: plugins/admin/aclrole/class_aclRoleManagement.inc:28
+msgid "Manage ACL roles"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:345
-msgid "Show/hide advanced settings"
+#: plugins/config/class_tasksConfig.inc:27
+msgid "FusionDirectory Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:350
-msgid "Create objects"
+#: plugins/config/class_tasksConfig.inc:38
+msgid "Tasks Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:351
-msgid "Move objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Tasks RDN"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:352
-msgid "Remove objects"
+#: plugins/config/class_tasksConfig.inc:41
+msgid "Branch in which Tasks will be stored"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:354
-msgid "Grant permission to owner"
+#: plugins/config/class_tasksConfig.inc:48
+msgid "Mail Anti-Spam Configuration"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclEditionDialog.inc:363
-msgid "Complete object"
+#: plugins/config/class_tasksConfig.inc:51
+msgid "Last Sent Mail"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:35
-msgid "ACL roles management"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Maximum number of e-mails processed per time"
 msgstr ""
 
-#: plugins/admin/aclrole/class_aclRoleManagement.inc:36
-msgid "Manage ACL roles"
+#: plugins/config/class_tasksConfig.inc:55
+msgid "Select max emails to be proccessed"
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Time interval between e-mails processing (Minutes) "
+msgstr ""
+
+#: plugins/config/class_tasksConfig.inc:59
+msgid "Select min interval time between emails processing"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:26
+msgid "mail template configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:27
+msgid "FusionDirectory mail template plugin configuration"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Mail Template RDN"
+msgstr ""
+
+#: plugins/config/class_mailTemplateConfig.inc:43
+msgid "Branch in which mails templates will be stored"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:27
+msgid "FusionDirectory Snapshot Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:40
+msgid "Snapshots Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid "Enable snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:43
+msgid ""
+"This enables you to save certain states of entries and restore them later "
+"on."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid "Enable automatic snapshots"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:48
+msgid ""
+"This enables you to automatically create a snapshot upon saving if any "
+"modifications have been found."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "Snapshot base"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:53
+msgid "The base where snapshots should be stored inside the LDAP directory."
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:60
+msgid "Snapshots Advance Configuration"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:63
+msgid "Set the minimum number of snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Retention time in days"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:28
+#: plugins/config/class_snapshotConfig.inc:67
+msgid "Set the retention time in days for a snapshots to be kept"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:73
+msgid "List of available sources / origin of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / source of data"
+msgstr ""
+
+#: plugins/config/class_snapshotConfig.inc:77
+msgid "Origin / Source of data"
+msgstr ""
+
+#: plugins/config/class_mainPluginsConfig.inc:26
 msgid "Plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:29
+#: plugins/config/class_mainPluginsConfig.inc:27
 msgid "FusionDirectory plugins configuration"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:42
+#: plugins/config/class_mainPluginsConfig.inc:41
 msgid "Object groups"
-msgstr ""
+msgstr "对象组"
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Groups RDN"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:45
+#: plugins/config/class_mainPluginsConfig.inc:44
 msgid "Branch in which object groups will be stored"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:52
+#: plugins/config/class_mainPluginsConfig.inc:51
 msgid "SASL"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
-msgid "Force to ask for password"
+#: plugins/config/class_mainPluginsConfig.inc:54
+msgid "Force asking for a password"
 msgstr ""
 
-#: plugins/config/class_mainPluginsConfig.inc:55
+#: plugins/config/class_mainPluginsConfig.inc:54
 msgid ""
-"Useful if you add a hook using password value when SASL user passwords are "
-"edited"
+"Useful if you add a trigger using password value when SASL user passwords "
+"are edited"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:28
+#: plugins/config/class_dashBoardConfig.inc:26
 msgid "Dashboard configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:29
+#: plugins/config/class_dashBoardConfig.inc:27
 msgid "FusionDirectory dashboard plugin configuration"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:42
+#: plugins/config/class_dashBoardConfig.inc:41
 msgid "Dashboard name schema"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:45
+#: plugins/config/class_dashBoardConfig.inc:44
 msgid "Number of digits to use after prefix"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:51
+#: plugins/config/class_dashBoardConfig.inc:50
 msgid "Prefixes to be used for computer ids"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:59
+#: plugins/config/class_dashBoardConfig.inc:58
 msgid "Dashboard expired users"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid "Number of days"
 msgstr ""
 
-#: plugins/config/class_dashBoardConfig.inc:62
+#: plugins/config/class_dashBoardConfig.inc:61
 msgid ""
 "Number of days before expiration needed for an account to show in the "
 "dashboard next expired accounts list"
 msgstr ""
 
 #: plugins/config/class_pluginsConfigInLdap.inc:28
+#: plugins/addons/dashboard/class_pluginsManager.inc:26
+#: plugins/addons/dashboard/class_pluginsManager.inc:38
 msgid "Plugins"
 msgstr ""
 
@@ -2686,103 +2830,105 @@ msgstr ""
 msgid "Configuration for plugins"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:28
-#: html/class_passwordRecovery.inc:357
-msgid "Password recovery"
+#: plugins/config/class_recoveryConfig.inc:26
+msgid "Recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:29
+#: plugins/config/class_recoveryConfig.inc:28
 msgid "Settings for the password recovery feature"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:40
+#: plugins/config/class_recoveryConfig.inc:41
 msgid "Password recovery settings"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:45
+#: plugins/config/class_recoveryConfig.inc:46
 msgid "Activate password recovery"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:46
-msgid "Whether to activate or not password recovery feature"
+#: plugins/config/class_recoveryConfig.inc:47
+msgid "Whether to activate the password recovery feature or not"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:51
+#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/addons/tasks/class_tasksMail.inc:61
+#: plugins/addons/tasks/class_tasksMail.inc:64
 msgid "Sender email address"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:52
+#: plugins/config/class_recoveryConfig.inc:53
+#: plugins/addons/tasks/class_tasksMail.inc:65
 msgid "Email address from which mails will be sent"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:58
+#: plugins/config/class_recoveryConfig.inc:59
 msgid "Link validity (minutes)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:59
+#: plugins/config/class_recoveryConfig.inc:60
 msgid "Number of minutes before a recovery link expires"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:65
+#: plugins/config/class_recoveryConfig.inc:66
 msgid "Salt for tokens"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:66
+#: plugins/config/class_recoveryConfig.inc:67
 msgid ""
 "Just a security measure, you can put anything in there, even random "
 "characters"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:72
+#: plugins/config/class_recoveryConfig.inc:73
 msgid "Allow the use of alternate addresses"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:73
+#: plugins/config/class_recoveryConfig.inc:74
 msgid ""
-"Users will also be able to enter one of theirs alternate addresses to "
-"recover their password"
+"Users will also be able to enter one of their alternate addresses to recover"
+" their password"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
-#: plugins/config/class_configInLdap.inc:193
+#: plugins/config/class_recoveryConfig.inc:79
+#: plugins/config/class_configInLdap.inc:159
 msgid "Login attribute"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:78
+#: plugins/config/class_recoveryConfig.inc:79
 msgid ""
 "Usually uid, but you can use something else for instance in case of SSO"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:85
+#: plugins/config/class_recoveryConfig.inc:86
 msgid "First email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:88
-#: plugins/config/class_recoveryConfig.inc:107
+#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:108
 msgid "Subject"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:89
+#: plugins/config/class_recoveryConfig.inc:90
 msgid "Subject of the first email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:92
+#: plugins/config/class_recoveryConfig.inc:93
 msgid "[FusionDirectory] Password recovery link"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:95
+#: plugins/config/class_recoveryConfig.inc:96
 #, php-format
 msgid "Body (first %s is login, second is link)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:96
+#: plugins/config/class_recoveryConfig.inc:97
 #, php-format
 msgid ""
 "Body of the first email, sent when the user ask for a new password. Use %s "
 "for the login and the recovery link."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:99
+#: plugins/config/class_recoveryConfig.inc:100
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2794,31 +2940,31 @@ msgid ""
 "This link is only valid for 10 minutes."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:104
+#: plugins/config/class_recoveryConfig.inc:105
 msgid "Second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:108
+#: plugins/config/class_recoveryConfig.inc:109
 msgid "Subject of the second email"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:111
+#: plugins/config/class_recoveryConfig.inc:112
 msgid "[FusionDirectory] Password recovery successful"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:114
+#: plugins/config/class_recoveryConfig.inc:115
 #, php-format
 msgid "Body (%s is login)"
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:115
+#: plugins/config/class_recoveryConfig.inc:116
 #, php-format
 msgid ""
 "Body of the second email, sent to confirm the password has been changed. Use"
 " %s for the user login."
 msgstr ""
 
-#: plugins/config/class_recoveryConfig.inc:118
+#: plugins/config/class_recoveryConfig.inc:119
 #, php-format
 msgid ""
 "Hello,\n"
@@ -2827,699 +2973,789 @@ msgid ""
 "Your login is still %s."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:56
-#: plugins/config/class_configInLdap.inc:70
+#: plugins/config/class_hooksConfig.inc:27
+#: plugins/config/class_hooksConfig.inc:48
+#: plugins/config/class_hooksConfig.inc:87
+msgid "Triggers"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:28
+msgid "Triggers configuration"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:52
+msgid "Display trigger output"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:53
+msgid ""
+"When enabled successful trigger execution output is displayed to the user "
+"using a dialog."
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:58
+msgid "Triggers that are called when specific actions happens"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+#: plugins/config/class_hooksConfig.inc:106
+msgid "Tab"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:62
+msgid "The tab that this trigger concerns"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:67
+msgid "When to call this command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+#: plugins/config/class_hooksConfig.inc:108
+msgid "Deactivated"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:74
+msgid "Use this to temporarily deactivate a trigger"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+#: plugins/config/class_hooksConfig.inc:109
+msgid "Command"
+msgstr ""
+
+#: plugins/config/class_hooksConfig.inc:80
+msgid "The command that will be called"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:27
+#: plugins/config/class_configInLdap.inc:42
 msgid "Configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:57
-#: plugins/config/class_configInLdap.inc:62
+#: plugins/config/class_configInLdap.inc:28
+#: plugins/config/class_configInLdap.inc:34
 msgid "FusionDirectory configuration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:58
+#: plugins/config/class_configInLdap.inc:29
 msgid "Configuration screen of FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:88
+#: plugins/config/class_configInLdap.inc:56
 msgid "Look and feel"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid "Language"
-msgstr ""
+msgstr "语言"
 
-#: plugins/config/class_configInLdap.inc:91
+#: plugins/config/class_configInLdap.inc:59
 msgid ""
 "Language of the application. If 'automatic' or not available, the one asked "
 "by the browser will be used. This setting can be overriden per user."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:96
+#: plugins/config/class_configInLdap.inc:64
 msgid "Theme to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:102
+#: plugins/config/class_configInLdap.inc:70
 msgid "Timezone to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:110
+#: plugins/config/class_configInLdap.inc:79
 msgid "Core settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "LDAP size limit"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:113
+#: plugins/config/class_configInLdap.inc:82
 msgid "Defines the number of entries to get from LDAP by default."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:118
+#: plugins/config/class_configInLdap.inc:87
 msgid "Edit locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:119
+#: plugins/config/class_configInLdap.inc:88
 msgid ""
 "Check if a entry currently being edited has been modified outside of "
 "FusionDirectory in the meantime."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:124
+#: plugins/config/class_configInLdap.inc:93
 msgid "Enable logging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:125
+#: plugins/config/class_configInLdap.inc:94
 msgid "Event logging on FusionDirectory side."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:130
+#: plugins/config/class_configInLdap.inc:99
 msgid "Schema validation"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:131
+#: plugins/config/class_configInLdap.inc:100
 msgid "Enables schema checking during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
-msgid "Enable snapshots"
+#: plugins/config/class_configInLdap.inc:105
+msgid "Wildcard foreign keys"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:136
+#: plugins/config/class_configInLdap.inc:105
 msgid ""
-"This enables you to save certain states of entries and restore them later "
-"on."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "Snapshot base"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:141
-msgid "The base where snapshots should be stored inside of the LDAP."
+"Enables wildcard searches like member=* when moving a whole department. This"
+" will open all existing groups and roles to make sure foreign keys are "
+"respected. Slow on big trees."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid "Wildcard foreign keys"
+#: plugins/config/class_configInLdap.inc:112
+msgid "Password settings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:146
-msgid ""
-"Enables wildcard searches like member=* when moving a whole departement. "
-"This will open all existing groups and roles to make sure foreign keys are "
-"respected. Slow on big trees."
+#: plugins/config/class_configInLdap.inc:116
+msgid "Allowed password hashes"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:153
-msgid "Password settings"
+#: plugins/config/class_configInLdap.inc:116
+msgid "Password hashes which may be used for user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Password default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:156
+#: plugins/config/class_configInLdap.inc:122
 msgid "Default hash to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force default hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:161
+#: plugins/config/class_configInLdap.inc:127
 msgid "Force the use of the default password hash"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Password minimum length"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:165
+#: plugins/config/class_configInLdap.inc:131
 msgid "Minimum length of user passwords"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Password minimum differs"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:170
+#: plugins/config/class_configInLdap.inc:136
 msgid "Minimum number of different characters from last password"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:175
+#: plugins/config/class_configInLdap.inc:141
 msgid "Use account expiration"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:176
+#: plugins/config/class_configInLdap.inc:142
 msgid ""
 "Enables shadow attribute tests during the login to FusionDirectory and "
 "forces password renewal or account locking"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:180
+#: plugins/config/class_configInLdap.inc:146
 msgid "SASL Realm"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "SASL Exop"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:184
+#: plugins/config/class_configInLdap.inc:150
 msgid "Attribute to be stored in the userPassword attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:190
+#: plugins/config/class_configInLdap.inc:156
 msgid "Login and session"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:194
+#: plugins/config/class_configInLdap.inc:160
 msgid "Which LDAP attribute should be used as the login name during login."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:200
+#: plugins/config/class_configInLdap.inc:166
 msgid "Enforce encrypted connections"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:201
+#: plugins/config/class_configInLdap.inc:167
 msgid ""
 "Enables PHP security checks to force encrypted access (https) to the web "
 "interface."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:205
+#: plugins/config/class_configInLdap.inc:171
 msgid "Warn if session is not encrypted"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:206
+#: plugins/config/class_configInLdap.inc:172
 msgid "will display a warning to the user when http is used instead of https."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Session lifetime"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:211
+#: plugins/config/class_configInLdap.inc:177
 msgid "Defines when a session will expire in seconds (0 to disable)."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:216
-msgid "HTTP Basic authentication"
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:216
-msgid "Use HTTP Basic authentication protocol instead of the login form."
-msgstr ""
-
-#: plugins/config/class_configInLdap.inc:221
-msgid "HTTP Header authentication"
+#: plugins/config/class_configInLdap.inc:182
+msgid "Login method"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:221
-msgid "Use HTTP Header authentication instead of the login form."
+#: plugins/config/class_configInLdap.inc:183
+msgid "Which login method should be used for connecting to FusionDirectory"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Header name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:226
+#: plugins/config/class_configInLdap.inc:187
 msgid "Name of the header containing user identifier."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:233
+#: plugins/config/class_configInLdap.inc:194
 msgid "SSL"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Key path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:236
+#: plugins/config/class_configInLdap.inc:197
 msgid "Path to FusionDirectory private key. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:241
+#: plugins/config/class_configInLdap.inc:202
 msgid "Path to FusionDirectory certificate. Unused for now."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
-#: plugins/config/class_configInLdap.inc:261
+#: plugins/config/class_configInLdap.inc:207
+#: plugins/config/class_configInLdap.inc:217
 msgid "CA certificate path"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:246
+#: plugins/config/class_configInLdap.inc:207
 msgid "Path to the CA certificate. Used for validating Argonaut Server host."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:253
-msgid "CAS"
+#: plugins/config/class_configInLdap.inc:217
+msgid "Path to the CA certificate of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "Enable CAS"
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:256
-msgid "CAS login will be used instead of LDAP bind"
+#: plugins/config/class_configInLdap.inc:222
+msgid "Host of the CAS server"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:261
-msgid "Path to the CA certificate of the CAS server"
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port"
+msgstr "端口"
+
+#: plugins/config/class_configInLdap.inc:227
+msgid "Port the CAS server is listening on"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:266
-msgid "Host of the CAS server"
+#: plugins/config/class_configInLdap.inc:232
+msgid "CAS context to be used"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Verbose error"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:271
-msgid "Port the CAS server is listening on"
+#: plugins/config/class_configInLdap.inc:237
+msgid "Activate verbose errors in phpCAS. Avoid in production."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Library CAS 1.6"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:241
+msgid "Activate if library CAS >= 1.6 is being used."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context"
+#: plugins/config/class_configInLdap.inc:245
+msgid "Client service"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:276
-msgid "CAS context to be used"
+#: plugins/config/class_configInLdap.inc:245
+msgid "The client service name"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:283
+#: plugins/config/class_configInLdap.inc:251
 msgid "People and group storage"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
+#: plugins/config/class_configInLdap.inc:255
 msgid "People DN attribute"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:287
-msgid "Attribute to use at the beginning of users dn"
+#: plugins/config/class_configInLdap.inc:255
+msgid "Attribute to use at the beginning of the user dn"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "CN pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:292
+#: plugins/config/class_configInLdap.inc:260
 msgid "The pattern to use to build the common name field"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:297
+#: plugins/config/class_configInLdap.inc:265
+msgid "Mandatory first name"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:266
+msgid "Whether first name (givenName) should be a mandatory field on users"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:271
 msgid "Strict naming policy"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:298
+#: plugins/config/class_configInLdap.inc:272
 msgid "Enables strict checking of user and group names"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "Users RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:303
+#: plugins/config/class_configInLdap.inc:277
 msgid "The branch where users are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "ACL role RDN"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:308
+#: plugins/config/class_configInLdap.inc:282
 msgid "The branch where ACL roles are stored."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid "Restrict role members"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:313
+#: plugins/config/class_configInLdap.inc:287
 msgid ""
 "When enabled only users from the same branch or members of groups from the "
 "same branch can be added to a role."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid "Separate address fields"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:317
+#: plugins/config/class_configInLdap.inc:291
 msgid ""
 "Expose street, postOfficeBox and postalCode fields instead of postalAddress."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid "Postal address pattern"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:321
+#: plugins/config/class_configInLdap.inc:295
 msgid ""
 "When using separate address fields, you can use a pattern to fill "
 "postalAddress field."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:327
+#: plugins/config/class_configInLdap.inc:299
+msgid "Avatar max size"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:299
+msgid ""
+"Maximum user picture width and height in pixels. Bigger uploaded pictures "
+"will be resized."
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:306
 msgid "Debugging"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:330
-msgid "Display errors"
+#: plugins/config/class_configInLdap.inc:309
+msgid "Display PHP errors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:331
+#: plugins/config/class_configInLdap.inc:310
 msgid ""
 "Shows PHP errors in the upper part of the screen. This should be disabled in"
-" productive deployments, because there might be some passwords in it."
+" production deployments, because it may contain passwords."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid "Maximum LDAP query time"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:335
+#: plugins/config/class_configInLdap.inc:314
 msgid ""
 "Stop LDAP actions if there is no answer within the specified number of "
 "seconds."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:340
+#: plugins/config/class_configInLdap.inc:319
 msgid "Log LDAP statistics"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:341
+#: plugins/config/class_configInLdap.inc:320
 msgid ""
 "Track LDAP timing statistics to the syslog. This may help to find indexing "
 "problems or bad search filters."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:346
+#: plugins/config/class_configInLdap.inc:325
 msgid "Debug level"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:347
+#: plugins/config/class_configInLdap.inc:326
 msgid "Display certain information on each page load."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:359
-msgid "Miscellaneous"
+#: plugins/config/class_configInLdap.inc:336
+msgid "Log debug messages"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:337
+msgid "Sends debug output to syslog as well"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:362
+#: plugins/config/class_configInLdap.inc:343
+msgid "Miscellaneous"
+msgstr "杂项"
+
+#: plugins/config/class_configInLdap.inc:346
 msgid "Display summary in listings"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:363
+#: plugins/config/class_configInLdap.inc:347
 msgid ""
 "Determines whether a status bar will be shown on the bottom of lists, "
 "displaying a short summary of type and number of elements in the list."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:368
+#: plugins/config/class_configInLdap.inc:352
 msgid "Show ACL tab on all objects"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:369
+#: plugins/config/class_configInLdap.inc:353
 msgid ""
 "For very specific ACL rights setting where you might need to give right on a"
 " single object."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available department categories"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:374
+#: plugins/config/class_configInLdap.inc:358
 msgid "Available categories in the departments dropdown"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:381
+#: plugins/config/class_configInLdap.inc:365
 msgid "Use this to hide some menu entry to specific groups of users"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:385
+#: plugins/config/class_configInLdap.inc:369
 msgid "Group or role"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:390
+#: plugins/config/class_configInLdap.inc:374
 msgid "Plugin to blacklist"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:396
+#: plugins/config/class_configInLdap.inc:380
 msgid "Plugin menu blacklist"
 msgstr ""
 
+#: plugins/config/class_configInLdap.inc:389
+msgid "ACL target filter limit"
+msgstr ""
+
+#: plugins/config/class_configInLdap.inc:389
+msgid ""
+"Defines the maximum number of entries an ACL target filter is allowed to "
+"return"
+msgstr ""
+
 #: plugins/config/class_configInLdap.inc:405
-#: plugins/config/class_configInLdap.inc:433
-msgid "Hooks"
+#: setup/class_setupStepLanguage.inc:82
+msgid "Automatic"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:410
-msgid "Hooks that are called when specific actions happens"
+#: plugins/config/class_configInLdap.inc:427
+#, php-format
+msgid "Group %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "Tab"
+#: plugins/config/class_configInLdap.inc:434
+#, php-format
+msgid "Role %s"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:414
-msgid "The tab that this hook concerns"
+#: plugins/config/class_configInLdap.inc:561
+#, php-format
+msgid ""
+"It seems the selected language \"%s\" is not installed on the system. Please"
+" install it or select an other one."
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:419
-msgid "When to call this command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:27
+msgid "Plugins List"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "Command"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Version"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:426
-msgid "The command that will be called"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Authors"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:440
-msgid "Display hook output"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Origin"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:441
-msgid ""
-"When enabled successful hook execution output is displayed to the user using"
-" a dialog."
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Provider"
 msgstr ""
 
-#: plugins/config/class_configInLdap.inc:456
-#: setup/class_setupStepLanguage.inc:69
-msgid "Automatic"
+#: plugins/addons/dashboard/class_pluginsManager.inc:66
+msgid "Support URL"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:27
+#: plugins/addons/dashboard/class_dashboard.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:33
+msgid "Dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:29
+msgid "Statistics and various information"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:42
+msgid "See dashboard"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboard.inc:51
+#: plugins/addons/dashboard/main_stats.tpl.c:2
+msgid "Statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:28
+#: plugins/addons/dashboard/class_dashboard.inc:79
+#, php-format
+msgid ""
+"Statistics for type \"%s\" could not be computed because of the following "
+"error: %s"
+msgstr ""
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:28
 msgid "Statistics about users"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:40
+#: plugins/addons/dashboard/class_dashboardUsers.inc:40
 msgid "Users statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:45
+#: plugins/addons/dashboard/class_dashboardUsers.inc:45
 msgid "Groups statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:50
+#: plugins/addons/dashboard/class_dashboardUsers.inc:50
 #: plugins/addons/dashboard/users_accounts.tpl.c:8
 msgid "Expired accounts"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:66
+#: plugins/addons/dashboard/class_dashboardUsers.inc:63
+#: plugins/personal/generic/class_user.inc:170
+msgid "Login"
+msgstr "登录名"
+
+#: plugins/addons/dashboard/class_dashboardUsers.inc:66
 msgid "Expiration date"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:70
+#: plugins/addons/dashboard/class_dashboardUsers.inc:70
+#: plugins/addons/tasks/class_tasksGranular.inc:64
+#: plugins/addons/tasks/class_tasksGranular.inc:67
 #: ihtml/themes/legacy/recovery.tpl.c:83 ihtml/themes/breezy/recovery.tpl.c:83
 msgid "Email"
-msgstr ""
+msgstr "邮件"
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:91
+#: plugins/addons/dashboard/class_dashboardUsers.inc:91
 #, php-format
 msgid ""
 "User statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:122
+#: plugins/addons/dashboard/class_dashboardUsers.inc:126
 #, php-format
 msgid ""
 "Group statistics could not be computed because of the following LDAP error: "
 "%s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:186
+#: plugins/addons/dashboard/class_dashboardUsers.inc:194
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following LDAP"
 " error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:193
+#: plugins/addons/dashboard/class_dashboardUsers.inc:205
 #, php-format
 msgid ""
 "Expired user information could not be computed because of the following "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardUsers.inc:233
+#: plugins/addons/dashboard/class_dashboardUsers.inc:249
 #, php-format
 msgid "Not found (%s)"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:26
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:26
 msgid "Passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:27
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:27
 msgid "Statistics about passwords"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:39
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:39
 msgid "Passwords statistics"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoardPasswords.inc:64
+#: plugins/addons/dashboard/class_dashboardPasswords.inc:67
 #, php-format
 msgid ""
 "Password statistics could not be computed because of the following LDAP "
 "error: %s"
 msgstr ""
 
-#: plugins/addons/dashboard/class_dashBoard.inc:27
-#: plugins/addons/dashboard/class_dashBoard.inc:28
-#: plugins/addons/dashboard/class_dashBoard.inc:33
-msgid "Dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:29
-msgid "Statistics and various information"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:38
-msgid "Reporting"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:42
-msgid "See dashboard"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:51
-#: plugins/addons/dashboard/main_stats.tpl.c:2
-msgid "Statistics"
-msgstr ""
-
-#: plugins/addons/dashboard/class_dashBoard.inc:79
-#, php-format
-msgid ""
-"Statistics for type \"%s\" could not be computed because of the following "
-"error: %s"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:40
+#: plugins/addons/subscription/class_subscriptionInfo.inc:38
 msgid "Subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:41
-#: plugins/addons/subscription/class_subscriptionInfo.inc:47
-#: plugins/addons/subscription/class_subscriptionInfo.inc:63
+#: plugins/addons/subscription/class_subscriptionInfo.inc:39
+#: plugins/addons/subscription/class_subscriptionInfo.inc:45
+#: plugins/addons/subscription/class_subscriptionInfo.inc:60
 msgid "Subscription information"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:42
+#: plugins/addons/subscription/class_subscriptionInfo.inc:40
 msgid "Information about your FusionDirectory subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:69
+#: plugins/addons/subscription/class_subscriptionInfo.inc:66
 msgid "Information text for subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:73
+#: plugins/addons/subscription/class_subscriptionInfo.inc:70
 msgid "Subscription name"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:77
+#: plugins/addons/subscription/class_subscriptionInfo.inc:74
 msgid "Subscription id"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:81
+#: plugins/addons/subscription/class_subscriptionInfo.inc:78
 msgid "Subscription type"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:85
+#: plugins/addons/subscription/class_subscriptionInfo.inc:82
 msgid "Contract reference"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:89
+#: plugins/addons/subscription/class_subscriptionInfo.inc:86
 msgid "Start date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:94
+#: plugins/addons/subscription/class_subscriptionInfo.inc:91
 msgid "End date of this subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:101
+#: plugins/addons/subscription/class_subscriptionInfo.inc:98
 msgid "Import your subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:104
+#: plugins/addons/subscription/class_subscriptionInfo.inc:101
 msgid "Information text for expired subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:108
+#: plugins/addons/subscription/class_subscriptionInfo.inc:105
 msgid "Import subscription"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:114
+#: plugins/addons/subscription/class_subscriptionInfo.inc:111
 msgid "Import"
-msgstr ""
+msgstr "导入"
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:131
+#: plugins/addons/subscription/class_subscriptionInfo.inc:128
 #, php-format
 msgid ""
 "You do not have a valid subscription for this instance of FusionDirectory.\n"
 "Please visit %s for a list of available options."
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:136
+#: plugins/addons/subscription/class_subscriptionInfo.inc:133
 #, php-format
 msgid ""
 "Your subscription is expired for this instance of FusionDirectory.\n"
@@ -3527,36 +3763,163 @@ msgid ""
 msgstr ""
 
 #: plugins/addons/subscription/class_subscriptionInfo.inc:177
-#: plugins/addons/subscription/class_subscriptionInfo.inc:184
-#: plugins/addons/subscription/class_subscriptionInfo.inc:204
-msgid "Import error"
-msgstr ""
-
-#: plugins/addons/subscription/class_subscriptionInfo.inc:178
 msgid "No data. Did you forgot to upload a file?"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:185
+#: plugins/addons/subscription/class_subscriptionInfo.inc:184
 msgid "Failed to parse imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:192
+#: plugins/addons/subscription/class_subscriptionInfo.inc:191
 #, php-format
 msgid "Missing section \"%s\" in imported file"
 msgstr ""
 
-#: plugins/addons/subscription/class_subscriptionInfo.inc:197
+#: plugins/addons/subscription/class_subscriptionInfo.inc:196
 #, php-format
 msgid "Missing attribute \"%s\" in imported file"
 msgstr ""
 
+#: plugins/addons/tasks/class_tasksGranular.inc:28
+#: plugins/addons/tasks/class_tasksGranular.inc:53
+msgid "Tasks Granular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:29
+msgid "Granular tasks mangement allowing details reports"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:34
+msgid "TasksGranular"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+msgid "Task Granular Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:56
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Name for this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:65
+msgid "Email address to which messages will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:68
+msgid "Email address from which emails will be sent"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksGranular.inc:70
+#: plugins/addons/tasks/class_tasks.inc:55
+msgid "Schedule"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:48
+msgid "Tasks Generic | Saving will create un-modifiable subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:51
+msgid "Task Name"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:64
+msgid "Creation of Sub Tasks - Starting this task"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Activate SubTasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasks.inc:67
+msgid "Trigger the creation of this task and related subtasks"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:29
+msgid "Tasks Mail"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:30
+msgid "Tasks Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:51
+msgid "Task Mail Object"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:54
+msgid "Mail Template Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:69
+msgid "Recipients Users and/or Groups"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:72
+msgid "Users or groups to assign to this task."
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:78
+msgid "Type of e-mail address desired"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type - If not found, priority will apply"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:81
+msgid "Mail Type Object Selection"
+msgstr ""
+
+#: plugins/addons/tasks/class_tasksMail.inc:269
+#, php-format
+msgid "Error : \"%s\", already exist ! Editing existing tasks is forbidden."
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:48
+msgid "Mail Object"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:51
+msgid "Mail Template Name"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:55
+msgid "Mail Subject"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Mail Template Body"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:59
+msgid "Text to be sent to recipient"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:63
+msgid "Mail Signature"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Attachment"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:67
+msgid "Import a file for this e-mail"
+msgstr ""
+
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:71
+#: plugins/addons/mailtemplate/class_mailTemplate.inc:72
+msgid "Read Receipt"
+msgstr ""
+
 #: plugins/personal/roles/class_userRoles.inc:34
 msgid "Edit user's groups and roles"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:49
 #: plugins/personal/roles/class_userRoles.inc:53
-msgid "Groups membership"
+msgid "Group memberships"
 msgstr ""
 
 #: plugins/personal/roles/class_userRoles.inc:60
@@ -3564,290 +3927,361 @@ msgstr ""
 msgid "Roles membership"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/roles/class_userRoles.inc:207
+#: plugins/personal/roles/class_userRoles.inc:351
+#, php-format
+msgid "Could not remove membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:234
+#: plugins/personal/roles/class_userRoles.inc:400
+#, php-format
+msgid "Could not remove membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:327
+#, php-format
+msgid "Could not add membership to group %s: %s"
+msgstr ""
+
+#: plugins/personal/roles/class_userRoles.inc:376
+#, php-format
+msgid "Could not add membership to role %s: %s"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password method"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:46
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:44
 msgid "Password hash method to use"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:51
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
+#: plugins/personal/generic/class_user.inc:179
 #: setup/setup_migrate_adminAccount.tpl.c:14
 #: ihtml/themes/legacy/login.tpl.c:17 ihtml/themes/legacy/login.tpl.c:20
 #: ihtml/themes/legacy/login.tpl.c:23 ihtml/themes/breezy/login.tpl.c:17
 #: ihtml/themes/breezy/login.tpl.c:20 ihtml/themes/breezy/login.tpl.c:23
 msgid "Password"
-msgstr ""
+msgstr "口令"
 
-#: plugins/personal/generic/class_user.inc:51
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:49
 msgid "Password (Leave empty if you do not wish to change it)"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:55
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:53
 msgid "Same password as above, to avoid errors"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:298
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:61
+msgid "Whether accounts created with this template will be locked"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:285
+#, php-format
+msgid "Too many elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:290
+#, php-format
+msgid "Not enough elements in array value: %d instead of %d"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:295
+msgid "Array value for password field must have numeric keys"
+msgstr ""
+
+#: plugins/personal/generic/class_UserPasswordAttribute.inc:304
+msgid "Invalid value type for password field, must be array or string"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:53
+#: plugins/personal/generic/class_user.inc:61
+msgid "User"
+msgstr "用户"
+
+#: plugins/personal/generic/class_user.inc:54
+msgid "User account information"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:62
+msgid "User account"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:75
 msgid "User lock status"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:312
+#: plugins/personal/generic/class_user.inc:88
 msgid "Personal information"
-msgstr ""
+msgstr "个人信息"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name"
-msgstr ""
+msgstr "å§“"
 
-#: plugins/personal/generic/class_user.inc:317
+#: plugins/personal/generic/class_user.inc:93
 msgid "Last name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name"
-msgstr ""
+msgstr "名"
 
-#: plugins/personal/generic/class_user.inc:322
+#: plugins/personal/generic/class_user.inc:98
 msgid "First name of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:327
+#: plugins/personal/generic/class_user.inc:103
+msgid "Initials"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:103
+msgid ""
+"The initials of some or all of the individual's names, but not the "
+"surname(s)"
+msgstr ""
+
+#: plugins/personal/generic/class_user.inc:108
 msgid "Short description of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "Picture"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:331
+#: plugins/personal/generic/class_user.inc:112
 msgid "The avatar for this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:338
+#: plugins/personal/generic/class_user.inc:119
 msgid "Organizational contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:350
+#: plugins/personal/generic/class_user.inc:131
 msgid "Business postal address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room No."
-msgstr ""
+msgstr "房间号"
 
-#: plugins/personal/generic/class_user.inc:354
+#: plugins/personal/generic/class_user.inc:135
 msgid "Room number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:358
+#: plugins/personal/generic/class_user.inc:139
 msgid "Business phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Mobile"
-msgstr ""
+msgstr "手机"
 
-#: plugins/personal/generic/class_user.inc:364
+#: plugins/personal/generic/class_user.inc:145
 msgid "Business mobile number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Pager"
-msgstr ""
+msgstr "呼机"
 
-#: plugins/personal/generic/class_user.inc:370
+#: plugins/personal/generic/class_user.inc:151
 msgid "Business pager number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:374
+#: plugins/personal/generic/class_user.inc:155
 msgid "Business fax number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Homepage"
-msgstr ""
+msgstr "个人主页"
 
-#: plugins/personal/generic/class_user.inc:378
+#: plugins/personal/generic/class_user.inc:159
 msgid "Personal homepage"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:384
+#: plugins/personal/generic/class_user.inc:165
 msgid "Account information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:389
+#: plugins/personal/generic/class_user.inc:170
 msgid "Login of this user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:393
+#: plugins/personal/generic/class_user.inc:174
 #: setup/class_setupStepLanguage.inc:30
 msgid "Preferred language"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:398
+#: plugins/personal/generic/class_user.inc:179
 msgid "Password of the user"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:404
+#: plugins/personal/generic/class_user.inc:185
 msgid "Personal contact information"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Display name"
-msgstr ""
+msgstr "显示名称"
 
-#: plugins/personal/generic/class_user.inc:408
+#: plugins/personal/generic/class_user.inc:189
 msgid "Name this user should appear as. Used by Exchange."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:412
+#: plugins/personal/generic/class_user.inc:193
 msgid "Home postal address"
-msgstr ""
+msgstr "住宅地址"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Private phone"
-msgstr ""
+msgstr "私人电话"
 
-#: plugins/personal/generic/class_user.inc:416
+#: plugins/personal/generic/class_user.inc:197
 msgid "Home phone number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:422
+#: plugins/personal/generic/class_user.inc:203
 msgid "Organizational information"
-msgstr ""
+msgstr "组织信息"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid "Title"
-msgstr ""
+msgstr "ç§°è°“"
 
-#: plugins/personal/generic/class_user.inc:427
+#: plugins/personal/generic/class_user.inc:208
 msgid ""
 "Title of a person in their organizational context. Each title is one value "
 "of this multi-valued attribute"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Unit"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:436
+#: plugins/personal/generic/class_user.inc:217
 msgid "Organizational unit this user belongs to"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department No."
-msgstr ""
+msgstr "部门编号"
 
-#: plugins/personal/generic/class_user.inc:440
+#: plugins/personal/generic/class_user.inc:221
 msgid "Department number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee No."
-msgstr ""
+msgstr "员工编号"
 
-#: plugins/personal/generic/class_user.inc:444
+#: plugins/personal/generic/class_user.inc:225
 msgid "Employee number"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:448
+#: plugins/personal/generic/class_user.inc:229
 msgid "Employee type"
-msgstr ""
+msgstr "员工类别"
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:462
+#: plugins/personal/generic/class_user.inc:243
 msgid "Street part of the address"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:466
+#: plugins/personal/generic/class_user.inc:247
 msgid "Post office box"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:470
+#: plugins/personal/generic/class_user.inc:251
 msgid "Postal code"
-msgstr ""
+msgstr "邮编"
 
-#: plugins/personal/generic/class_user.inc:674
+#: plugins/personal/generic/class_user.inc:446
 #, php-format
-msgid "Ppolicy \"%s\" could not be found in the LDAP!"
+msgid "Ppolicy \"%s\" could not be found in LDAP!"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:677
+#: plugins/personal/generic/class_user.inc:476
 msgid "You are not allowed to change your own password"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:688
+#: plugins/personal/generic/class_user.inc:487
 #, php-format
 msgid "You must wait %d seconds before changing your password again"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:702
+#: plugins/personal/generic/class_user.inc:499
 msgid "Password is in history of old passwords"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:707
-#: plugins/personal/generic/class_user.inc:711
+#: plugins/personal/generic/class_user.inc:504
+#: plugins/personal/generic/class_user.inc:508
 msgid "Password is not being changed from existing value"
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:718
+#: plugins/personal/generic/class_user.inc:515
 msgid "You need to specify your current password in order to proceed."
-msgstr ""
+msgstr "您需要输入当前口令才能继续。"
 
-#: plugins/personal/generic/class_user.inc:720
+#: plugins/personal/generic/class_user.inc:517
 msgid ""
 "The passwords you've entered as \"New password\" and \"Repeated new "
 "password\" do not match."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:722
+#: plugins/personal/generic/class_user.inc:519
 #: ihtml/themes/legacy/recovery.tpl.c:23 ihtml/themes/legacy/recovery.tpl.c:26
 #: ihtml/themes/legacy/recovery.tpl.c:29 ihtml/themes/breezy/recovery.tpl.c:23
 #: ihtml/themes/breezy/recovery.tpl.c:26 ihtml/themes/breezy/recovery.tpl.c:29
 msgid "New password"
-msgstr ""
+msgstr "新口令"
 
-#: plugins/personal/generic/class_user.inc:724
+#: plugins/personal/generic/class_user.inc:521
 msgid "The password used as new and current are too similar."
-msgstr ""
+msgstr "输入的新口令和当前口令非常相似。"
 
-#: plugins/personal/generic/class_user.inc:726
+#: plugins/personal/generic/class_user.inc:523
 msgid "The password used as new is too short."
 msgstr ""
 
-#: plugins/personal/generic/class_user.inc:728
+#: plugins/personal/generic/class_user.inc:525
 msgid "The password contains possibly problematic Unicode characters!"
 msgstr ""
 
-#: plugins/generic/references/class_reference.inc:26
 #: plugins/generic/references/class_reference.inc:27
-#: plugins/generic/references/class_reference.inc:44
+#: plugins/generic/references/class_reference.inc:28
+#: plugins/generic/references/class_reference.inc:45
 msgid "References"
-msgstr ""
+msgstr "参考"
 
-#: plugins/generic/welcome/main.inc:25
+#: plugins/generic/welcome/main.inc:31
 #, php-format
 msgid "Welcome %s!"
-msgstr ""
+msgstr "欢迎 %s!"
 
-#: setup/class_setup.inc:194
+#: setup/class_setup.inc:189
 msgid "Completed"
 msgstr ""
 
-#: setup/class_setup.inc:237
+#: setup/class_setup.inc:232
 msgid "Next"
 msgstr ""
 
@@ -3870,7 +4304,7 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:39
 msgid "Location name"
-msgstr ""
+msgstr "位置名称"
 
 #: setup/class_setupStepLdap.inc:39
 msgid "Name of this connexion to show in the LDAP server list"
@@ -3909,20 +4343,16 @@ msgstr ""
 
 #: setup/class_setupStepLdap.inc:77
 msgid "Admin DN"
-msgstr ""
+msgstr "管理员 DN"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Admin password"
-msgstr ""
+msgstr "管理员口令"
 
 #: setup/class_setupStepLdap.inc:80
 msgid "Password for the admin account to use for binding to the LDAP"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:86
-msgid "Status"
-msgstr ""
-
 #: setup/class_setupStepLdap.inc:89
 msgid "Current status"
 msgstr ""
@@ -3945,46 +4375,46 @@ msgid ""
 "FusionDirectory."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:183
+#: setup/class_setupStepLdap.inc:186
 #, php-format
 msgid "Anonymous bind to server '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:185
+#: setup/class_setupStepLdap.inc:188
 #, php-format
 msgid "Bind as user '%s' failed!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:187
+#: setup/class_setupStepLdap.inc:190
 msgid "Retry"
-msgstr ""
+msgstr "重试"
 
-#: setup/class_setupStepLdap.inc:191
+#: setup/class_setupStepLdap.inc:194
 #, php-format
 msgid "Anonymous bind to server '%s' succeeded."
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:192 setup/class_setupStepLdap.inc:196
+#: setup/class_setupStepLdap.inc:195 setup/class_setupStepLdap.inc:199
 msgid "Refresh"
-msgstr ""
+msgstr "刷新"
 
-#: setup/class_setupStepLdap.inc:193
+#: setup/class_setupStepLdap.inc:196
 msgid "Please specify user and password!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:195
+#: setup/class_setupStepLdap.inc:198
 #, php-format
 msgid "Bind as user '%s' to server '%s' succeeded!"
 msgstr ""
 
-#: setup/class_setupStepLdap.inc:214 setup/class_setupStepLdap.inc:216
+#: setup/class_setupStepLdap.inc:216 setup/class_setupStepLdap.inc:220
 #, php-format
 msgid ""
 "%s\n"
 "Schema \"%s\": %s"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:211
+#: setup/class_setupStepChecks.inc:30 setup/class_setupStepMigrate.inc:225
 msgid "PHP module and extension checks"
 msgstr ""
 
@@ -4000,392 +4430,424 @@ msgstr ""
 msgid "Basic checks for PHP compatibility and extensions"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:67
+#: setup/class_setupStepChecks.inc:60
 msgid "Checking PHP version"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:68
+#: setup/class_setupStepChecks.inc:61
 #, php-format
 msgid "PHP must be of version %s or above."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:69
+#: setup/class_setupStepChecks.inc:62
 msgid "Please upgrade to a supported version."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:76
+#: setup/class_setupStepChecks.inc:69
 msgid "FusionDirectory requires this module to talk with your LDAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:84
+#: setup/class_setupStepChecks.inc:77
 msgid ""
 "FusionDirectory requires this module for an internationalized interface."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:92
+#: setup/class_setupStepChecks.inc:85
 msgid ""
 "FusionDirectory requires this module to communicate with different types of "
 "servers and protocols."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:99
-msgid "Checking cryptographically secure pseudo-random integers"
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:100
-msgid ""
-"You must use PHP>=7 or have openssl module activated so that FusionDirectory"
-" can generate cryptographically secure pseudo-random integers."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:101
-msgid "Please upgrade to PHP7 or activate openssl module."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:108
+#: setup/class_setupStepChecks.inc:93
 msgid ""
 "FusionDirectory requires this module to encode variables for javascript use."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:116
+#: setup/class_setupStepChecks.inc:101
 msgid ""
 "FusionDirectory requires this module to filters a variable with a specified "
 "filter."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:124
-msgid "FusionDirectory requires this module for the samba integration."
-msgstr ""
-
-#: setup/class_setupStepChecks.inc:132
-msgid ""
-"FusionDirectory requires either 'mhash' or the 'sha1' module to make use of "
-"SSHA encryption."
+#: setup/class_setupStepChecks.inc:109
+msgid "FusionDirectory requires this module for the samba integration."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:140
+#: setup/class_setupStepChecks.inc:117
 msgid "FusionDirectory requires this module to talk to an IMAP server."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:147
+#: setup/class_setupStepChecks.inc:124
 msgid "mbstring"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:148
+#: setup/class_setupStepChecks.inc:125
 msgid "FusionDirectory requires this module to handle unicode strings."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:154
+#: setup/class_setupStepChecks.inc:131
 msgid "imagick"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:155
+#: setup/class_setupStepChecks.inc:132
 msgid "FusionDirectory requires this extension to handle images."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:161
+#: setup/class_setupStepChecks.inc:138
 msgid "compression module"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:162
+#: setup/class_setupStepChecks.inc:139
 msgid "FusionDirectory requires this extension to handle snapshots."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:172
+#: setup/class_setupStepChecks.inc:149
 msgid "PHP uses this value for the garbage collector to delete old sessions."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:173
+#: setup/class_setupStepChecks.inc:150
 msgid ""
 "Setting this value to one day will prevent loosing session and cookies "
 "before they really timeout."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:151
 msgid ""
 "Search for 'session.gc_maxlifetime' in your php.ini and set it to 86400 or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:181 setup/class_setupStepChecks.inc:197
-#: setup/class_setupStepChecks.inc:213
+#: setup/class_setupStepChecks.inc:158 setup/class_setupStepChecks.inc:174
+#: setup/class_setupStepChecks.inc:190
 msgid "Off"
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:182
+#: setup/class_setupStepChecks.inc:159
 msgid ""
 "In Order to use FusionDirectory without any trouble, the session.auto_start "
 "option in your php.ini should be set to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:183
+#: setup/class_setupStepChecks.inc:160
 msgid "Search for 'session.auto_start' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:190
+#: setup/class_setupStepChecks.inc:167
 msgid ""
 "FusionDirectory needs at least 128MB of memory. Setting it below this limit "
 "may cause errors that are not reproducable! Increase it for larger setups."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:191
+#: setup/class_setupStepChecks.inc:168
 msgid ""
 "Search for 'memory_limit' in your php.ini and set it to '128M' or higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:198
+#: setup/class_setupStepChecks.inc:175
 msgid ""
 "This option influences the PHP output handling. Turn this Option off, to "
 "increase performance."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:199
+#: setup/class_setupStepChecks.inc:176
 msgid "Search for 'implicit_flush' in your php.ini and set it to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:206
+#: setup/class_setupStepChecks.inc:183
 msgid "The Execution time should be at least 30 seconds."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:207
+#: setup/class_setupStepChecks.inc:184
 msgid ""
 "Search for 'max_execution_time' in your php.ini and set it to '30' or "
 "higher."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:214
+#: setup/class_setupStepChecks.inc:191
 msgid ""
 "Increase the server security by setting expose_php to 'off'. PHP won't send "
 "any information about the server you are running in this case."
 msgstr ""
 
-#: setup/class_setupStepChecks.inc:215
+#: setup/class_setupStepChecks.inc:192
 msgid "Search for 'expose_php' in your php.ini and set if to 'Off'."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:162 setup/setup_migrate_baseOC.tpl.c:11
+#: setup/class_setupStepMigrate.inc:172 setup/setup_migrate_baseOC.tpl.c:11
 msgid "Migrate"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:228 setup/class_setupStepMigrate.inc:229
+#: setup/class_setupStepMigrate.inc:242 setup/class_setupStepMigrate.inc:243
 msgid "LDAP inspection"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:230
+#: setup/class_setupStepMigrate.inc:244
 msgid "Analyze your current LDAP for FusionDirectory compatibility"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:238
+#: setup/class_setupStepMigrate.inc:252
 msgid "Give all rights on users in the given branch"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:244
+#: setup/class_setupStepMigrate.inc:258
 msgid ""
 "Allow users to edit their own information (main tab and posix use only on "
 "base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:250
+#: setup/class_setupStepMigrate.inc:264
 msgid "Allow users to edit their own password (use only on base)"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:263
+#: setup/class_setupStepMigrate.inc:277
 msgid "Inspecting object classes in root object"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:264
+#: setup/class_setupStepMigrate.inc:278
 msgid "Checking permission for LDAP database"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:265
+#: setup/class_setupStepMigrate.inc:279
 msgid "Checking for invisible users"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:266
+#: setup/class_setupStepMigrate.inc:280
 msgid "Checking for super administrator"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:267
+#: setup/class_setupStepMigrate.inc:281
 msgid "Checking for default ACL roles and groups"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:268
+#: setup/class_setupStepMigrate.inc:282
 msgid "Checking for users outside the people tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:269
+#: setup/class_setupStepMigrate.inc:283
 msgid "Checking for groups outside the groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:270
+#: setup/class_setupStepMigrate.inc:284
 msgid "Checking for invisible departments"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:271
-msgid "Checking for duplicated UID numbers"
+#: setup/class_setupStepMigrate.inc:288
+msgid "Checking for POSIX groups outside the groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:289
+msgid "Checking for duplicate UID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:272
-msgid "Checking for duplicated GID numbers"
+#: setup/class_setupStepMigrate.inc:290
+msgid "Checking for duplicate GID numbers"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:334 setup/class_setupStepMigrate.inc:495
-#: setup/class_setupStepMigrate.inc:572 setup/class_setupStepMigrate.inc:720
-#: setup/class_setupStepMigrate.inc:925 setup/class_setupStepMigrate.inc:1001
-#: setup/class_setupStepMigrate.inc:1124 setup/class_setupStepMigrate.inc:1217
-#: setup/class_setupStepMigrate.inc:1307 setup/class_setupStepMigrate.inc:1351
+#: setup/class_setupStepMigrate.inc:361 setup/class_setupStepMigrate.inc:523
+#: setup/class_setupStepMigrate.inc:587 setup/class_setupStepMigrate.inc:771
+#: setup/class_setupStepMigrate.inc:957 setup/class_setupStepMigrate.inc:1064
+#: setup/class_setupStepMigrate.inc:1329 setup/class_setupStepMigrate.inc:1440
 msgid "LDAP query failed"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:335 setup/class_setupStepMigrate.inc:496
-#: setup/class_setupStepMigrate.inc:573 setup/class_setupStepMigrate.inc:721
-#: setup/class_setupStepMigrate.inc:926 setup/class_setupStepMigrate.inc:1002
-#: setup/class_setupStepMigrate.inc:1125 setup/class_setupStepMigrate.inc:1218
-#: setup/class_setupStepMigrate.inc:1308 setup/class_setupStepMigrate.inc:1352
+#: setup/class_setupStepMigrate.inc:362 setup/class_setupStepMigrate.inc:524
+#: setup/class_setupStepMigrate.inc:588 setup/class_setupStepMigrate.inc:772
+#: setup/class_setupStepMigrate.inc:958 setup/class_setupStepMigrate.inc:1065
+#: setup/class_setupStepMigrate.inc:1330 setup/class_setupStepMigrate.inc:1441
 msgid "Possibly the \"root object\" is missing."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:351 setup/class_setupStepMigrate.inc:374
-#: setup/class_setupStepMigrate.inc:425 setup/class_setupStepMigrate.inc:507
-#: setup/class_setupStepMigrate.inc:518 setup/class_setupStepMigrate.inc:827
+#: setup/class_setupStepMigrate.inc:378 setup/class_setupStepMigrate.inc:401
+#: setup/class_setupStepMigrate.inc:452 setup/class_setupStepMigrate.inc:535
+#: setup/class_setupStepMigrate.inc:546 setup/class_setupStepMigrate.inc:855
 msgid "Failed"
-msgstr ""
+msgstr "失败"
 
-#: setup/class_setupStepMigrate.inc:352
+#: setup/class_setupStepMigrate.inc:379
 #, php-format
 msgid "Missing FusionDirectory object class '%s'!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:353
+#: setup/class_setupStepMigrate.inc:380
 msgid "Please check your installation."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:375
+#: setup/class_setupStepMigrate.inc:402
 #, php-format
 msgid ""
 "Cannot handle the structural object type of your root object. Please try to "
 "add the object class '%s' manually."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:508
+#: setup/class_setupStepMigrate.inc:536
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your LDAP database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:519
+#: setup/class_setupStepMigrate.inc:547
 #, php-format
 msgid "The specified user \"%s\" does not have full access to your ldap database."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:582
+#: setup/class_setupStepMigrate.inc:622
 #, php-format
 msgid ""
-"Found %s user(s) that will not be visible in FusionDirectory or which are "
-"incomplete."
+"Found more than %d user(s) that will not be visible in FusionDirectory or "
+"which are incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:594 setup/class_setupStepMigrate.inc:605
-msgid "User migration"
+#: setup/class_setupStepMigrate.inc:627
+#, php-format
+msgid ""
+"Found %d user(s) that will not be visible in FusionDirectory or which are "
+"incomplete."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:692 setup/class_setupStepMigrate.inc:972
-msgid "Migration error"
+#: setup/class_setupStepMigrate.inc:643 setup/class_setupStepMigrate.inc:654
+msgid "User migration"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:694
+#: setup/class_setupStepMigrate.inc:742
 #, php-format
-msgid "Cannot migrate entry \"%s\":"
+msgid ""
+"Cannot migrate entry \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:819
+#: setup/class_setupStepMigrate.inc:847
 msgid "Groups"
-msgstr ""
+msgstr "用户组"
 
-#: setup/class_setupStepMigrate.inc:822
+#: setup/class_setupStepMigrate.inc:850
 msgid "Roles"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:828
-msgid "There is no FusionDirectory administrator account inside your LDAP."
+#: setup/class_setupStepMigrate.inc:856
+msgid ""
+"There is no FusionDirectory administrator account in your LDAP directory."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:866
+#: setup/class_setupStepMigrate.inc:891
 msgid "Gives all rights on all objects"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:940
+#: setup/class_setupStepMigrate.inc:972
 msgid "Default ACL roles have not been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:942
+#: setup/class_setupStepMigrate.inc:974
 msgid "Some default ACL roles are missing"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:944
+#: setup/class_setupStepMigrate.inc:976
 msgid "Default ACL roles have been inserted"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:974
+#: setup/class_setupStepMigrate.inc:1009
 #, php-format
-msgid "Cannot add ACL role \"%s\":"
+msgid ""
+"Cannot add ACL role \"%s\":\n"
+"\n"
+"%s"
 msgstr ""
 
 #: setup/class_setupStepMigrate.inc:1029
 #, php-format
-msgid "Found %s user(s) outside the configured tree \"%s\"."
+msgid "Found more than %d user(s) outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1043 setup/class_setupStepMigrate.inc:1057
+#: setup/class_setupStepMigrate.inc:1031
+#, php-format
+msgid "Found %d user(s) outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1072
+msgid "LDAP result parsing failed"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1127 setup/class_setupStepMigrate.inc:1141
 msgid "Move users into configured user tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1075
+#: setup/class_setupStepMigrate.inc:1159
 msgid "Cannot move entries to the requested department!"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "Entry will be moved from"
+#: setup/class_setupStepMigrate.inc:1172
+#, php-format
+msgid ""
+"Entry will be moved from:\n"
+"\t%s\n"
+"to:\n"
+"\t%s"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1087
-msgid "to"
+#: setup/class_setupStepMigrate.inc:1182
+msgid "The following references will be updated"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1097
-msgid "The following references will be updated"
+#: setup/class_setupStepMigrate.inc:1204
+#, php-format
+msgid "Found more than %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1148
+#: setup/class_setupStepMigrate.inc:1206
 #, php-format
-msgid "Found %s groups outside the configured tree '%s'."
+msgid "Found %d groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1162 setup/class_setupStepMigrate.inc:1176
+#: setup/class_setupStepMigrate.inc:1222 setup/class_setupStepMigrate.inc:1236
 msgid "Move groups into configured groups tree"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1259
+#: setup/class_setupStepMigrate.inc:1256
 #, php-format
-msgid "Found %s department(s) that will not be visible in FusionDirectory."
+msgid "Found more than %d POSIX groups outside the configured tree \"%s\"."
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1270 setup/class_setupStepMigrate.inc:1281
-msgid "Department migration"
+#: setup/class_setupStepMigrate.inc:1258
+#, php-format
+msgid "Found %d POSIX groups outside the configured tree \"%s\"."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1274 setup/class_setupStepMigrate.inc:1288
+msgid "Move POSIX groups into configured groups tree"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1335
+msgid "Size limit hit"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1334
+#: setup/class_setupStepMigrate.inc:1336
 #, php-format
-msgid "Found %s duplicate values for attribute \"uidNumber\":%s"
+msgid "Size limit of %d hit. Please check this manually"
 msgstr ""
 
-#: setup/class_setupStepMigrate.inc:1378
+#: setup/class_setupStepMigrate.inc:1371
 #, php-format
-msgid "Found %s duplicate values for attribute \"gidNumber\":%s"
+msgid ""
+"Found more than %d department(s) that will not be visible in "
+"FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1373
+#, php-format
+msgid "Found %d department(s) that will not be visible in FusionDirectory."
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1388 setup/class_setupStepMigrate.inc:1399
+msgid "Department migration"
+msgstr ""
+
+#: setup/class_setupStepMigrate.inc:1469
+#, php-format
+msgid "Found %d duplicate values for attribute \""
 msgstr ""
 
 #: setup/class_setupStepFinish.inc:40
 msgid "Finish"
-msgstr ""
+msgstr "完成"
 
 #: setup/class_setupStepFinish.inc:41
 msgid "Finish - write the configuration file"
@@ -4395,21 +4857,21 @@ msgstr ""
 msgid "Write configuration file"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:89
+#: setup/class_setupStepFinish.inc:84
 msgid ""
 "Your configuration file is currently world readable. Please update the file "
 "permissions!"
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:91
+#: setup/class_setupStepFinish.inc:86
 msgid "The configuration is currently not readable or it does not exists."
 msgstr ""
 
-#: setup/class_setupStepFinish.inc:96
+#: setup/class_setupStepFinish.inc:91
 #, php-format
 msgid ""
 "After downloading and placing the file under %s, please make sure that the "
-"user the webserver is running with is able to read %s, while other users "
+"user the web server is running with is able to read %s, while other users "
 "shouldn't."
 msgstr ""
 
@@ -4428,217 +4890,52 @@ msgid ""
 "can be overriden per user."
 msgstr ""
 
-#: html/setup.php:65
-msgid "Smarty"
-msgstr ""
-
-#: html/setup.php:65 html/class_passwordRecovery.inc:142
-#, php-format
-msgid "Directory '%s' specified as compile directory is not accessible!"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:119
-#, php-format
-msgid "FusionDirectory configuration %s/%s is not readable. Aborted."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:176 html/index.php:61
-#, php-format
-msgid "Warning: <a href=\"%s\">Session is not encrypted!</a>"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:311 ihtml/themes/legacy/recovery.tpl.c:77
-#: ihtml/themes/legacy/recovery.tpl.c:80 ihtml/themes/breezy/recovery.tpl.c:77
-#: ihtml/themes/breezy/recovery.tpl.c:80
-msgid "Email address"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:481
-#, php-format
-msgid "Did not find an account with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:484
-#, php-format
-msgid "Found multiple accounts with login \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:517
-#, php-format
-msgid "There is no account using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:520
-#, php-format
-msgid "There are several accounts using email \"%s\""
-msgstr ""
-
-#: html/class_passwordRecovery.inc:528
-#, php-format
-msgid "The user using email \"%s\" is locked. Please contact your administrator."
-msgstr ""
-
-#: html/class_passwordRecovery.inc:583
-msgid "Contact your administrator, there was a problem with mail server"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:596
-msgid "This token is invalid"
-msgstr ""
-
-#: html/class_passwordRecovery.inc:660
-msgid "There was a problem with mail server, confirmation email not sent"
-msgstr ""
-
-#: html/main.php:113
-msgid "PHP configuration"
-msgstr ""
-
-#: html/main.php:114
-msgid ""
-"Fatal error: Register globals is on. FusionDirectory will refuse to login "
-"unless this is fixed by an administrator."
-msgstr ""
-
-#: html/main.php:140
+#: html/main.php:127
 msgid "Password change"
 msgstr ""
 
-#: html/main.php:140
+#: html/main.php:127
 msgid "Your password is about to expire, please change your password!"
 msgstr ""
 
-#: html/main.php:156
+#: html/main.php:143
 msgid "Your password has expired, please set a new one."
 msgstr ""
 
-#: html/main.php:206
+#: html/main.php:180
 msgid "Running out of memory!"
 msgstr ""
 
-#: html/main.php:249
+#: html/main.php:196
 msgid "User ACL checks disabled"
 msgstr ""
 
-#: html/main.php:287
-msgid "Plugin"
-msgstr ""
-
-#: html/main.php:288
-#, php-format
-msgid ""
-"Fatal error: Cannot find any plugin definitions for plugin '%s' ('%s' is not"
-" a file)!"
-msgstr ""
-
-#: html/main.php:303
-msgid "Configuration Error"
-msgstr ""
-
-#: html/main.php:304
-#, php-format
+#: html/main.php:241
 msgid ""
 "Fatal error: not all POST variables have been transfered by PHP - please "
 "inform your administrator!"
 msgstr ""
 
-#: html/index.php:51 ihtml/themes/legacy/login.tpl.c:2
-#: ihtml/themes/legacy/login.tpl.c:38 ihtml/themes/breezy/login.tpl.c:2
-#: ihtml/themes/breezy/login.tpl.c:38
-msgid "Sign in"
-msgstr ""
-
-#: html/index.php:67
-msgid ""
-"Warning: The session lifetime configured in your fusiondirectory.conf will "
-"be overridden by php.ini settings."
-msgstr ""
-
-#: html/index.php:155
+#: html/index.php:92
 #, php-format
 msgid ""
 "FusionDirectory configuration %s/%s is not readable. Please run "
-"fusiondirectory-setup --check-config to fix this."
-msgstr ""
-
-#: html/index.php:176
-msgid "Smarty error"
-msgstr ""
-
-#: html/index.php:178
-#, php-format
-msgid "Directory \"%s\" specified as compile directory is not accessible!"
+"fusiondirectory-configuration-manager --check-config to fix this."
 msgstr ""
 
-#: html/index.php:216
+#: html/index.php:150
 msgid "Your FusionDirectory session has expired!"
 msgstr ""
 
-#: html/index.php:219
+#: html/index.php:153
 #, php-format
 msgid "Invalid plugin parameter \"%s\"!"
 msgstr ""
 
-#: html/index.php:222
+#: html/index.php:156
 msgid "No session found!"
 msgstr ""
 
-#: html/index.php:258
-msgid "LDAP schema check reported errors:"
-msgstr ""
-
-#: html/index.php:260
-msgid "LDAP schema error"
-msgstr ""
-
-#: html/index.php:287
-msgid "Please specify a valid username!"
-msgstr ""
-
-#: html/index.php:290
-msgid "Please specify your password!"
-msgstr ""
-
-#: html/index.php:309
-msgid "Please check the username/password combination."
-msgstr ""
-
-#: html/index.php:344
-msgid "Account locked. Please contact your system administrator!"
-msgstr ""
-
-#: html/index.php:467
-#, php-format
-msgid "No value found in HTTP header \"%s\""
-msgstr ""
-
-#: html/index.php:481
-#, php-format
-msgid "Header user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:491 html/index.php:555
-#, php-format
-msgid "Login with user \"%s\" triggered error: %s"
-msgstr ""
-
-#: html/index.php:545
-#, php-format
-msgid "CAS user \"%s\" could not be found in the LDAP"
-msgstr ""
-
-#: html/index.php:595
-msgid ""
-"Your browser has cookies disabled. Please enable cookies and reload this "
-"page before logging in!"
-msgstr ""
-
-#: include/select/groupSelect/group-filter.tpl.c:2
-#: plugins/admin/users/user-filter.tpl.c:2
-#: ihtml/themes/breezy/simple-filter.tpl.c:2
-msgid "Filter"
-msgstr ""
-
 #: plugins/admin/acl/remove.tpl.c:2
 msgid ""
 "Warning: you are about to delete the ACL assignments on the following "
@@ -4655,24 +4952,12 @@ msgstr ""
 msgid "Press 'Delete' to continue or 'Cancel' to abort."
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:5
-msgid "Show templates"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:8
-msgid "Show functional users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:11
-msgid "Show POSIX users"
-msgstr ""
-
-#: plugins/admin/users/user-filter.tpl.c:14
-msgid "Show Mail users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:5
+msgid "Show/hide advanced settings"
 msgstr ""
 
-#: plugins/admin/users/user-filter.tpl.c:17
-msgid "Show Samba users"
+#: plugins/admin/aclrole/acleditiondialog.tpl.c:8
+msgid "Complete object"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:2
@@ -4681,7 +4966,7 @@ msgid_plural "There are %1 expired accounts"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:5
-msgid "There is no expired account"
+msgid "There are no expired accounts"
 msgstr ""
 
 #: plugins/addons/dashboard/users_accounts.tpl.c:11
@@ -4727,8 +5012,8 @@ msgid_plural "There are %1 users:"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:5
-msgid "One of them use %1 method"
-msgid_plural "%2 of them use %1 method"
+msgid "One of them uses %1 method"
+msgid_plural "%2 of them use the %1 method"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:8
@@ -4737,7 +5022,7 @@ msgid_plural "%1 of them are locked"
 msgstr[0] ""
 
 #: plugins/addons/dashboard/pwd_stats.tpl.c:11
-msgid "None of them is locked"
+msgid "None of them are locked"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:5
@@ -4745,7 +5030,7 @@ msgid "There are no users"
 msgstr ""
 
 #: plugins/addons/dashboard/users_stats.tpl.c:8
-msgid "One of them have a %1 account"
+msgid "One of them has a %1 account"
 msgid_plural "%2 of them have a %1 account"
 msgstr[0] ""
 
@@ -4765,7 +5050,7 @@ msgstr ""
 
 #: plugins/generic/references/contents.tpl.c:8
 msgid "This object has no relationship to other objects."
-msgstr ""
+msgstr "这个对象和其他对象没有关系。"
 
 #: setup/setup_migrate_adminAccount.tpl.c:2
 msgid "Create a new FusionDirectory administrator account"
@@ -4779,7 +5064,7 @@ msgstr ""
 
 #: setup/setup_migrate_adminAccount.tpl.c:11
 msgid "User ID"
-msgstr ""
+msgstr "用户 ID"
 
 #: setup/setup_migrate_adminAccount.tpl.c:17
 msgid "Password (again)"
@@ -4790,16 +5075,18 @@ msgid "Add required object classes to the LDAP base"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:5 setup/setup_migrate_accounts.tpl.c:17
+#: setup/setup_migrate_accounts.tpl.c:23
 msgid "Current"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:8 setup/setup_migrate_accounts.tpl.c:20
+#: setup/setup_migrate_accounts.tpl.c:26
 msgid "After migration"
 msgstr ""
 
 #: setup/setup_migrate_baseOC.tpl.c:14
 msgid "Close"
-msgstr ""
+msgstr "关闭"
 
 #: setup/setup_checks.tpl.c:2
 msgid "show information"
@@ -4815,7 +5102,7 @@ msgstr ""
 
 #: setup/setup_welcome.tpl.c:2
 msgid ""
-"This seems to be the first time you start FusionDirectory - we didn't find "
+"This seems to be the first time you start FusionDirectory - we cannot find "
 "any configuration right now. This simple wizard intends to help you while "
 "setting it up."
 msgstr ""
@@ -4859,12 +5146,12 @@ msgstr ""
 #: setup/setup_welcome.tpl.c:32
 msgid ""
 "For security reasons you need to authenticate for the installation by "
-"creating the file '%1', containing the current session ID on the servers "
+"creating the file '%1', containing the current session ID on the server's "
 "local filesystem. This can be done by executing the following command:"
 msgstr ""
 
 #: setup/setup_welcome.tpl.c:35
-msgid "Click the 'Next' button when you've finished."
+msgid "Click the 'Next' button when you are done."
 msgstr ""
 
 #: setup/setup_migrate.tpl.c:2
@@ -4888,7 +5175,7 @@ msgstr ""
 
 #: setup/setup_finish.tpl.c:8
 msgid "Download configuration"
-msgstr ""
+msgstr "下载配置"
 
 #: setup/setup_finish.tpl.c:11
 msgid "Status: "
@@ -4924,7 +5211,12 @@ msgid ""
 "use the 'Show changes' button to see the LDIF."
 msgstr ""
 
-#: setup/setup_migrate_accounts.tpl.c:26
+#: setup/setup_migrate_accounts.tpl.c:29
+#: ihtml/themes/breezy/management/list.tpl.c:2
+msgid "Select all"
+msgstr ""
+
+#: setup/setup_migrate_accounts.tpl.c:32
 msgid "Show changes"
 msgstr ""
 
@@ -4953,7 +5245,7 @@ msgstr ""
 #: ihtml/themes/breezy/recovery.tpl.c:20 ihtml/themes/breezy/login.tpl.c:8
 #: ihtml/themes/breezy/login.tpl.c:11 ihtml/themes/breezy/login.tpl.c:14
 msgid "Username"
-msgstr ""
+msgstr "用户名"
 
 #: ihtml/themes/legacy/recovery.tpl.c:32 ihtml/themes/legacy/recovery.tpl.c:35
 #: ihtml/themes/legacy/recovery.tpl.c:38 ihtml/themes/breezy/recovery.tpl.c:32
@@ -4975,7 +5267,7 @@ msgstr ""
 #: ihtml/themes/breezy/recovery.tpl.c:92 ihtml/themes/breezy/login.tpl.c:29
 #: ihtml/themes/breezy/login.tpl.c:32 ihtml/themes/breezy/login.tpl.c:35
 msgid "Directory"
-msgstr ""
+msgstr "目录"
 
 #: ihtml/themes/legacy/recovery.tpl.c:53 ihtml/themes/legacy/recovery.tpl.c:98
 #: ihtml/themes/breezy/recovery.tpl.c:53 ihtml/themes/breezy/recovery.tpl.c:98
@@ -5033,7 +5325,18 @@ msgid "I forgot my password"
 msgstr ""
 
 #: ihtml/themes/legacy/login.tpl.c:41 ihtml/themes/breezy/login.tpl.c:41
+msgid ""
+"Your browser has cookies disabled. Please enable cookies and reload this "
+"page before logging in!"
+msgstr "您的浏览器已经禁用 cookies。请启用 cookies 并在登录前重新加载本页面!"
+
+#: ihtml/themes/legacy/login.tpl.c:47 ihtml/themes/breezy/secondfactor.tpl.c:8
+#: ihtml/themes/breezy/login.tpl.c:47
 msgid "Click here to log in"
+msgstr "点击这里登录"
+
+#: ihtml/themes/breezy/secondfactor.tpl.c:2
+msgid "Two factor authentication"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:2
@@ -5041,6 +5344,7 @@ msgid "Warning: you are about to delete the following objects"
 msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:5
+#: ihtml/themes/breezy/simple-archive.tpl.c:5
 #: ihtml/themes/breezy/restore-confirm.tpl.c:8
 msgid ""
 "Please double check if you really want to do this since there is no way for "
@@ -5049,8 +5353,61 @@ msgstr ""
 
 #: ihtml/themes/breezy/simple-remove.tpl.c:8
 msgid "So - if you're sure - press 'Delete' to continue or 'Cancel' to abort."
+msgstr "所以,如果您确定,请按“删除”继续,否则按“取消”退出。"
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:2
+msgid "Warning: you are about to archive the following objects"
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:8
+msgid ""
+"So - if you're sure - press 'Archive' to continue or 'Cancel' to abort."
+msgstr ""
+
+#: ihtml/themes/breezy/simple-archive.tpl.c:11
+msgid "Archive"
+msgstr ""
+
+#: ihtml/themes/breezy/management/list.tpl.c:8
+msgid "Down"
+msgstr "关闭"
+
+#: ihtml/themes/breezy/management/actionmenu.tpl.c:2
+msgid "Actions"
+msgstr "动作"
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:2
+msgid "Minimum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:5
+msgid "Newer than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:8
+msgid "Maximum date for %1"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter-element-date.tpl.c:11
+msgid "Older than"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:2
+msgid "Filter"
+msgstr "过滤器"
+
+#: ihtml/themes/breezy/management/filter.tpl.c:5
+msgid "Types"
+msgstr ""
+
+#: ihtml/themes/breezy/management/filter.tpl.c:11
+msgid "Search in subtrees"
 msgstr ""
 
+#: ihtml/themes/breezy/management/filter.tpl.c:14
+msgid "Apply filter"
+msgstr "应用过滤器"
+
 #: ihtml/themes/breezy/template.tpl.c:2
 msgid "Creating a new object using templates"
 msgstr ""
@@ -5058,30 +5415,28 @@ msgstr ""
 #: ihtml/themes/breezy/template.tpl.c:8
 #: ihtml/themes/breezy/restore-confirm.tpl.c:14
 msgid "Continue"
-msgstr ""
-
-#: ihtml/themes/breezy/copynotice.tpl.c:2
-msgid ""
-"&copy; 2002-%1 <a href=\"http://www.fusiondirectory.org\">The "
-"FusionDirectory team, %2</a>"
-msgstr ""
+msgstr "ç»§ç»­"
 
 #: ihtml/themes/breezy/islocked.tpl.c:2
 msgid "Locking conflict detected"
-msgstr ""
+msgstr "检测到锁定冲突"
 
 #: ihtml/themes/breezy/islocked.tpl.c:8
-msgid "\"%1\" has been locked by \"%2\" since %3"
+msgid "The following entries are locked:"
 msgstr ""
 
 #: ihtml/themes/breezy/islocked.tpl.c:11
+msgid "\"%1\" has been locked by \"%2\" since %3"
+msgstr ""
+
+#: ihtml/themes/breezy/islocked.tpl.c:14
 msgid ""
-"If this lock detection is false, the other person may have closed the "
-"webbrowser during the edit operation. You may want to take over the lock by "
+"If this lock detection is false, the other person may have closed the web "
+"browser during the edit operation. You may want to take over the lock by "
 "pressing the \"%1\" button."
 msgstr ""
 
-#: ihtml/themes/breezy/islocked.tpl.c:14
+#: ihtml/themes/breezy/islocked.tpl.c:17
 msgid "Read only"
 msgstr ""
 
@@ -5098,17 +5453,22 @@ msgid ""
 "So - if you're sure - press 'Continue' to continue or 'Cancel' to abort."
 msgstr ""
 
+#: ihtml/themes/breezy/baseselector.tpl.c:5
+#: ihtml/themes/breezy/baseselector.tpl.c:8
+msgid "Submit"
+msgstr "提交"
+
 #: ihtml/themes/breezy/framework.tpl.c:2
 msgid "Main"
-msgstr ""
+msgstr "首页"
 
 #: ihtml/themes/breezy/framework.tpl.c:5
 msgid "Sign out"
-msgstr ""
+msgstr "退出"
 
 #: ihtml/themes/breezy/framework.tpl.c:8
 msgid "Signed in:"
-msgstr ""
+msgstr "登录:"
 
 #: ihtml/themes/breezy/framework.tpl.c:11
 #, c-format
@@ -5116,27 +5476,36 @@ msgid "Session expires in %d!"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:2
+msgid "The size limit of %1 entries is exceeded!"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:5
 msgid ""
 "The size limit option makes LDAP operations faster and saves the LDAP server"
 " from getting too much load. The easiest way to handle big databases without"
 " long timeouts would be to limit your search to smaller values and use "
 "filters to get the entries you are looking for."
 msgstr ""
-
-#: ihtml/themes/breezy/sizelimit.tpl.c:5
-msgid "Please choose the way to react for this session"
-msgstr ""
+"大小限制选项会让 LDAP 操作更快,以免使 LDAP 服务器过载。最简单让大数据库处理不发成长时间超时的办法是,将查询缩小到更少并且使用过滤器。"
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:8
-msgid "ignore this error and show all entries the LDAP server returns"
+msgid "Please choose the way to react for this session:"
 msgstr ""
 
 #: ihtml/themes/breezy/sizelimit.tpl.c:11
+msgid "Ignore this error and show all entries the LDAP server returns"
+msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:14
 msgid ""
-"ignore this error and show all entries that fit into the defined sizelimit "
+"Ignore this error and show all entries that fit into the defined sizelimit "
 "and let me use filters instead"
 msgstr ""
 
-#: ihtml/themes/breezy/sizelimit.tpl.c:14
-msgid "Set"
+#: ihtml/themes/breezy/sizelimit.tpl.c:17
+msgid "Change the size limit to: "
 msgstr ""
+
+#: ihtml/themes/breezy/sizelimit.tpl.c:20
+msgid "Set"
+msgstr "设置"
diff --git a/plugins/addons/dashboard/class_dashBoard.inc b/plugins/addons/dashboard/class_dashboard.inc
similarity index 76%
rename from plugins/addons/dashboard/class_dashBoard.inc
rename to plugins/addons/dashboard/class_dashboard.inc
index 57cd0f47dbace4624c179be35a6c72122775ade7..0b958b9c4f8a6a586c9bc9822f6472119bfec176 100644
--- a/plugins/addons/dashboard/class_dashBoard.inc
+++ b/plugins/addons/dashboard/class_dashboard.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org)
   Copyright (C)  2010 Antoine Gallavardin
-  Copyright (C)  2011-2018 FusionDirectory
+  Copyright (C)  2011-2016 FusionDirectory project
 
   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
@@ -21,7 +21,7 @@
 
 class dashboard extends simplePlugin
 {
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Dashboard'),
@@ -31,12 +31,12 @@ class dashboard extends simplePlugin
       'plObjectType'  => [
         'dashboard' => [
           'name'      => _('Dashboard'),
-          'tabClass'  => 'tabs_dashboard',
+          'tabClass'  => 'dashboardTabs',
           'mainAttr'  => FALSE
         ]
       ],
-      'plSection'     => ['reporting' => ['name' => _('Reporting'), 'priority' => 30]],
-      'plPriority'    => 0,
+      'plSection'     => ['reporting' => ['name' => _('Reporting'), 'priority' => 40]],
+      'plPriority'    => 10,
 
       'plProvidedAcls'  => [
         'dashboard' => _('See dashboard')
@@ -44,7 +44,7 @@ class dashboard extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'stats' => [
@@ -74,11 +74,16 @@ class dashboard extends simplePlugin
         $nb = 0;
       } catch (FusionDirectoryException $e) {
         $nb = 0;
-        msg_dialog::display(
-          _('LDAP error'),
-          sprintf(_('Statistics for type "%s" could not be computed because of the following error: %s'), $type, $e->getMessage()),
-          ERROR_DIALOG
+        $error = new FusionDirectoryError(
+          htmlescape(sprintf(
+            _('Statistics for type "%s" could not be computed because of the following error: %s'),
+            $type,
+            $e->getMessage()
+          )),
+          0,
+          $e
         );
+        $error->display();
       }
       if ($nb == 0) {
         continue;
@@ -109,11 +114,25 @@ class dashboard extends simplePlugin
     usort($stats,
       function ($a, $b)
       {
-        return ($b['priority'] < $a['priority']);
+        return ($a['priority'] <=> $b['priority']);
       }
     );
 
     return $stats;
   }
+
+  static function mainInc ($classname = NULL, $entry_dn = NULL, $tabs = TRUE, $edit_mode = FALSE, $objectType = FALSE)
+  {
+    global $config;
+
+    if ($classname === NULL) {
+      $classname = get_called_class();
+    }
+
+    if ($entry_dn === NULL) {
+      $entry_dn = $config->current['BASE'];
+    }
+
+    parent::mainInc($classname, $entry_dn, $tabs, $edit_mode, $objectType);
+  }
 }
-?>
diff --git a/plugins/addons/dashboard/class_dashBoardPasswords.inc b/plugins/addons/dashboard/class_dashboardPasswords.inc
similarity index 54%
rename from plugins/addons/dashboard/class_dashBoardPasswords.inc
rename to plugins/addons/dashboard/class_dashboardPasswords.inc
index 86103501bbc004109d3a76750a0aabec47c8ae5a..888bfdf8288cdff1f0989affa756777cbf9049db 100644
--- a/plugins/addons/dashboard/class_dashBoardPasswords.inc
+++ b/plugins/addons/dashboard/class_dashboardPasswords.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org)
-  Copyright (C) 2016-2018 FusionDirectory
+  Copyright (C) 2016-2017 FusionDirectory project
 
   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
@@ -20,7 +20,7 @@
 
 class dashboardPassword extends simplePlugin
 {
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Passwords'),
@@ -32,7 +32,7 @@ class dashboardPassword extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'pwds' => [
@@ -54,45 +54,54 @@ class dashboardPassword extends simplePlugin
   {
     global $config;
 
-    $defaultMethod = $config->get_cfg_value('passwordDefaultHash', 'ssha');
-    $forceDefault = ($config->get_cfg_value('forcePasswordDefaultHash', 'FALSE') == 'TRUE');
+    $temp = passwordMethod::get_available_methods();
+
+    $allowedMethods = $config->get_cfg_value('passwordAllowedHashes', $temp['name']);
+    $defaultMethod  = $config->get_cfg_value('passwordDefaultHash', 'ssha');
+    $forceDefault   = ($config->get_cfg_value('forcePasswordDefaultHash', 'FALSE') == 'TRUE');
     try {
-      $users = objects::ls('user', 'userPassword', NULL, '', TRUE);
+      $users = objects::ls('user', ['userPassword' => '1', 'dn' => 'raw'], NULL, '', TRUE);
     } catch (LDAPFailureException $e) {
-      msg_dialog::display(
-        _('LDAP error'),
-        sprintf(_('Password statistics could not be computed because of the following LDAP error: %s'), $e->getMessage()),
-        ERROR_DIALOG
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('Password statistics could not be computed because of the following LDAP error: %s'),
+          $e->getMessage()
+        )),
+        0,
+        $e
       );
+      $error->display();
       $users = [];
     }
     $nb_accounts = count($users);
     $nb_locked_accounts = 0;
     $methods_stats = [];
-    foreach ($users as $userPassword) {
-      if (!empty($userPassword)) {
-        if (preg_match("/^\{[^\}]+\}!/", $userPassword)) {
-          $nb_locked_accounts++;
-        }
-        $method = passwordMethod::get_method($userPassword);
-        $methodClass = get_class($method);
-        if (!isset($methods_stats[$methodClass])) {
-          $methods_stats[$methodClass] = [
-            'nb' => 0,
-            'name' => $method->get_hash()
-          ];
-          if ($method->get_hash() == $defaultMethod) {
-            $methods_stats[$methodClass]['style'] = 'default';
-          } elseif ($method->get_hash() == 'clear') {
-            $methods_stats[$methodClass]['style'] = 'clear';
-          } elseif ($forceDefault) {
-            $methods_stats[$methodClass]['style'] = 'forbidden';
-          } else {
-            $methods_stats[$methodClass]['style'] = 'none';
-          }
+    foreach ($users as $attrs) {
+      $userPassword = '';
+      if (isset($attrs['userPassword'])) {
+        $userPassword = $attrs['userPassword'];
+      }
+      $method       = passwordMethod::get_method($userPassword);
+      $methodName   = $method->get_hash();
+      if ($method->is_locked('', $userPassword)) {
+        $nb_locked_accounts++;
+      }
+      if (!isset($methods_stats[$methodName])) {
+        $methods_stats[$methodName] = [
+          'nb'    => 0,
+          'name'  => $methodName,
+        ];
+        if ($methodName == $defaultMethod) {
+          $methods_stats[$methodName]['style'] = 'default';
+        } elseif ($methodName == 'clear') {
+          $methods_stats[$methodName]['style'] = 'clear';
+        } elseif ($forceDefault || !in_array($methodName, $allowedMethods)) {
+          $methods_stats[$methodName]['style'] = 'forbidden';
+        } else {
+          $methods_stats[$methodName]['style'] = 'none';
         }
-        $methods_stats[$methodClass]['nb']++;
       }
+      $methods_stats[$methodName]['nb']++;
     }
 
     return [
@@ -106,4 +115,3 @@ class dashboardPassword extends simplePlugin
     ];
   }
 }
-?>
diff --git a/plugins/addons/dashboard/tabs_dashBoard.inc b/plugins/addons/dashboard/class_dashboardTabs.inc
similarity index 92%
rename from plugins/addons/dashboard/tabs_dashBoard.inc
rename to plugins/addons/dashboard/class_dashboardTabs.inc
index 8b3e9788aa991208e98950e42c7beb92b5fce0cd..f8f12e8a3d4bd7b7487f57295ef6b6ec8bcd2d7b 100644
--- a/plugins/addons/dashboard/tabs_dashBoard.inc
+++ b/plugins/addons/dashboard/class_dashboardTabs.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -18,7 +18,7 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class tabs_dashboard extends simpleTabs_noSpecial
+class dashboardTabs extends simpleTabs_noSpecial
 {
   function __construct ($type, $dn, $copied_object = NULL)
   {
@@ -33,5 +33,3 @@ class tabs_dashboard extends simpleTabs_noSpecial
   {
   }
 }
-
-?>
diff --git a/plugins/addons/dashboard/class_dashBoardUsers.inc b/plugins/addons/dashboard/class_dashboardUsers.inc
similarity index 88%
rename from plugins/addons/dashboard/class_dashBoardUsers.inc
rename to plugins/addons/dashboard/class_dashboardUsers.inc
index 16ae0ea7c36cd30029d2273c915610922c9a68b5..b7a3856c774e661a89972f1f7bc37cb8faf6436c 100644
--- a/plugins/addons/dashboard/class_dashBoardUsers.inc
+++ b/plugins/addons/dashboard/class_dashboardUsers.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org)
   Copyright (C) 2010 Antoine Gallavardin
-  Copyright (C) 2011-2019 FusionDirectory project
+  Copyright (C) 2011-2016 FusionDirectory project
 
   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
@@ -21,7 +21,7 @@
 
 class dashboardUsers extends simplePlugin
 {
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Users'),
@@ -33,7 +33,7 @@ class dashboardUsers extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'userstats' => [
@@ -86,11 +86,15 @@ class dashboardUsers extends simplePlugin
       $nb_posix_accounts  = count(objects::ls('user', NULL, NULL, '(objectClass=posixAccount)',     TRUE));
       $nb_samba_accounts  = count(objects::ls('user', NULL, NULL, '(objectClass=sambaSamAccount)',  TRUE));
     } catch (LDAPFailureException $e) {
-      msg_dialog::display(
-        _('LDAP error'),
-        sprintf(_('User statistics could not be computed because of the following LDAP error: %s'), $e->getMessage()),
-        ERROR_DIALOG
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('User statistics could not be computed because of the following LDAP error: %s'),
+          $e->getMessage()
+        )),
+        0,
+        $e
       );
+      $error->display();
       $nb_accounts        = 0;
       $nb_mail_accounts   = 0;
       $nb_posix_accounts  = 0;
@@ -117,11 +121,15 @@ class dashboardUsers extends simplePlugin
       $nb_mail_groups   = count(objects::ls('group', NULL, NULL, '(objectClass=fdGroupMail)',     TRUE));
       $nb_samba_groups  = count(objects::ls('group', NULL, NULL, '(objectClass=sambaGroupMapping)', TRUE));
     } catch (LDAPFailureException $e) {
-      msg_dialog::display(
-        _('LDAP error'),
-        sprintf(_('Group statistics could not be computed because of the following LDAP error: %s'), $e->getMessage()),
-        ERROR_DIALOG
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('Group statistics could not be computed because of the following LDAP error: %s'),
+          $e->getMessage()
+        )),
+        0,
+        $e
       );
+      $error->display();
       $nb_groups        = 0;
       $nb_mail_groups   = 0;
       $nb_samba_groups  = 0;
@@ -181,18 +189,26 @@ class dashboardUsers extends simplePlugin
       }
       $users = objects::ls('user', $attributes, NULL, '(shadowExpire=*)', TRUE);
     } catch (LDAPFailureException $e) {
-      msg_dialog::display(
-        _('LDAP error'),
-        sprintf(_('Expired user information could not be computed because of the following LDAP error: %s'), $e->getMessage()),
-        ERROR_DIALOG
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('Expired user information could not be computed because of the following LDAP error: %s'),
+          $e->getMessage()
+        )),
+        0,
+        $e
       );
+      $error->display();
       $users = [];
     } catch (FusionDirectoryException $e) {
-      msg_dialog::display(
-        _('Error'),
-        sprintf(_('Expired user information could not be computed because of the following error: %s'), $e->getMessage()),
-        ERROR_DIALOG
+      $error = new FusionDirectoryError(
+        htmlescape(sprintf(
+          _('Expired user information could not be computed because of the following error: %s'),
+          $e->getMessage()
+        )),
+        0,
+        $e
       );
+      $error->display();
       $users = [];
     }
 
@@ -274,4 +290,3 @@ class dashboardUsers extends simplePlugin
     }
   }
 }
-?>
diff --git a/plugins/addons/dashboard/class_pluginsManager.inc b/plugins/addons/dashboard/class_pluginsManager.inc
new file mode 100644
index 0000000000000000000000000000000000000000..fdc8aa1599970fab9fb43630973c981e541b9d9d
--- /dev/null
+++ b/plugins/addons/dashboard/class_pluginsManager.inc
@@ -0,0 +1,85 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org)
+  Copyright (C) 2021 Antoine Gallavardin
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class pluginsManager extends simplePlugin
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('Plugins'),
+      'plDescription' => _('Plugins List'),
+      'plObjectType'  => ['dashboard'],
+
+      'plProvidedAcls'  => []
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      'plugins' => [
+        'name'  => _('Plugins'),
+        'attrs' => [new FakeAttribute('pluginsList')],
+        'template' => get_template_path('plugins_list.tpl', TRUE, dirname(__FILE__)),
+      ],
+    ];
+  }
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    parent::__construct($dn, $object, $parent, $mainTab);
+    // pluginsList refers to the FakeAttribute.
+    // The return of drawList in plugisns_list requires an attribute definition.
+    $this->pluginsList = $this->plugins_list();
+  }
+
+
+  function plugins_list ()
+  {
+    global $config;
+
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    $ldap->search('(objectClass=fdPluginManager)', ['cn','description','fdPluginManagerInfoVersion','fdPluginManagerInfoAuthors','fdPluginManagerInfoStatus','fdPluginManagerInfoOrigin','fdPluginManagerSupportProvider','fdPluginManagerSupportHomeUrl']);
+
+    $id   = 'pluginsStats';
+    $div  = new divSelectBox('rows'.$id);
+    $smarty = get_smarty();
+    $div->setHeight(300);
+    $div->setHeaders([_('Name'), _('Description'), _('Version'),_('Authors'),_('Status'),_('Origin'),_('Provider'),_('Support URL')]);
+
+    while ($plugin = $ldap->fetch()) {
+      $fields = [
+        ['string' => $plugin['cn'][0]],
+        ['string' => $plugin['description'][0]],
+        ['string' => $plugin['fdPluginManagerInfoVersion'][0]],
+        ['string' => $plugin['fdPluginManagerInfoAuthors'][0]],
+        ['string' => $plugin['fdPluginManagerInfoStatus'][0]],
+        ['string' => $plugin['fdPluginManagerInfoOrigin'][0]],
+        ['string' => $plugin['fdPluginManagerSupportProvider'][0]],
+        ['string' => $plugin['fdPluginManagerSupportHomeUrl'][0]],
+      ];
+
+      $div->addEntry($fields);
+    }
+
+    return $div->drawList();
+  }
+}
diff --git a/plugins/addons/dashboard/groups_stats.tpl b/plugins/addons/dashboard/groups_stats.tpl
index 2955b1f455b588d3101199eb4e3bbe9db72611e0..56452aae5570138bf3a1e9b7f642abdb2a241d6d 100644
--- a/plugins/addons/dashboard/groups_stats.tpl
+++ b/plugins/addons/dashboard/groups_stats.tpl
@@ -1,6 +1,6 @@
 <div id="{$sectionId}"  class="plugin-section">
   <span class="legend">
-    {$section}
+    {if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
   </span>
   <div>
     <img src="{$attributes.groups_stats.img|escape}" alt="group icon"/>
diff --git a/plugins/addons/dashboard/main.inc b/plugins/addons/dashboard/main.inc
deleted file mode 100644
index 2c6171ea73408eccf2fe5d921969b9724fcd0d1a..0000000000000000000000000000000000000000
--- a/plugins/addons/dashboard/main.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org)
-  Copyright (C) 2013-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-simplePlugin::mainInc('dashboard', '', TRUE, FALSE);
-?>
diff --git a/plugins/addons/dashboard/main_stats.tpl b/plugins/addons/dashboard/main_stats.tpl
index 336f09534baa692c7e95a51522bd83b63823654f..27ab1e8e9f55528ec970e61df1351e40ee0f7f84 100644
--- a/plugins/addons/dashboard/main_stats.tpl
+++ b/plugins/addons/dashboard/main_stats.tpl
@@ -7,9 +7,9 @@
     {foreach from=$attributes.stats item=stat}
     <li>
 {if isset($stat.href)}
-      <a href="{$stat.href}"><img style="vertical-align:middle;" src="{$stat.img|escape}" alt=""/>&nbsp;{$stat.name}&nbsp;: {$stat.nb}</a>
+      <a href="{$stat.href}"><img style="vertical-align:middle;" src="{$stat.img|escape}" alt=""/>&nbsp;{$stat.name|escape}&nbsp;: {$stat.nb|escape}</a>
 {else}
-      <img style="vertical-align:middle;" src="{$stat.img|escape}" alt=""/>&nbsp;{$stat.name}&nbsp;: {$stat.nb}
+      <img style="vertical-align:middle;" src="{$stat.img|escape}" alt=""/>&nbsp;{$stat.name|escape}&nbsp;: {$stat.nb|escape}
 {/if}
     </li>
     {/foreach}
diff --git a/plugins/addons/dashboard/plugins_list.tpl b/plugins/addons/dashboard/plugins_list.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..7ea1499497f5919abcfbf77658ce78b67b77191e
--- /dev/null
+++ b/plugins/addons/dashboard/plugins_list.tpl
@@ -0,0 +1,8 @@
+<div id="{$sectionId}" class="plugin-section fullwidth"">
+  <span class="legend">
+    {if $sectionIcon}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
+  </span>
+  <div>
+    {$attributes.pluginsList}
+  </div>
+</div>
diff --git a/plugins/addons/dashboard/pwd_stats.tpl b/plugins/addons/dashboard/pwd_stats.tpl
index fa830389da18919a9db2e0ea6adb56c2e0979e6e..247333b3fff4c80feb5d94d94f592eead756992e 100644
--- a/plugins/addons/dashboard/pwd_stats.tpl
+++ b/plugins/addons/dashboard/pwd_stats.tpl
@@ -1,6 +1,6 @@
 <div id="{$sectionId}"  class="plugin-section">
   <span class="legend">
-    {$section}
+    {if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
   </span>
   <div>
     <img src="{$attributes.pwds_stats.img|escape}" alt="user icon"/>
@@ -17,7 +17,7 @@
           {else}
             <li>
           {/if}
-            {t count=$method.nb 1=$method.name 2=$method.nb plural="%2 of them use %1 method"}One of them use %1 method{/t}
+            {t count=$method.nb 1=$method.name 2=$method.nb plural="%2 of them use the %1 method"}One of them uses %1 method{/t}
           </li>
         {/if}
       {/foreach}
@@ -25,7 +25,7 @@
         {if $attributes.pwds_stats.locked_accounts.nb > 0}
           {t count=$attributes.pwds_stats.locked_accounts.nb 1=$attributes.pwds_stats.locked_accounts.nb plural="%1 of them are locked"}One of them is locked{/t}
         {else}
-          {t}None of them is locked{/t}
+          {t}None of them are locked{/t}
         {/if}
       </li>
     </ul>
diff --git a/plugins/addons/dashboard/users_accounts.tpl b/plugins/addons/dashboard/users_accounts.tpl
index 5ae33ace330f994afa6c1cade8e95c9735551d14..e1cb316e5a9c2c0b3dcc21322a49048b5c45964e 100644
--- a/plugins/addons/dashboard/users_accounts.tpl
+++ b/plugins/addons/dashboard/users_accounts.tpl
@@ -1,13 +1,13 @@
 <div id="{$sectionId}"  class="plugin-section fullwidth">
   <span class="legend">
-    {$section}
+    {if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
   </span>
   <div>
     <h1>
     {if $attributes.expired.accounts|@count > 0}
       {t count=$attributes.expired.accounts|@count 1=$attributes.expired.accounts|@count plural="There are %1 expired accounts"}There is one expired account{/t}
     {else}
-      {t}There is no expired account{/t}
+      {t}There are no expired accounts{/t}
     {/if}
     </h1>
     {if $attributes.expired.accounts|@count > 0}
@@ -25,10 +25,10 @@
 
           <tr>
           {foreach from=$attributes.expired.columns.user item=colname}
-            <th>{$colname}</th>
+            <th>{$colname|escape}</th>
           {/foreach}
           {foreach from=$attributes.expired.columns.manager item=colname}
-            <th>{$colname}</th>
+            <th>{$colname|escape}</th>
           {/foreach}
           </tr>
         </thead>
@@ -36,13 +36,13 @@
           {foreach from=$attributes.expired.accounts item=account}
             <tr>
               {foreach from=$attributes.expired.columns.user key=colkey item=colname}
-                <td>{$account.$colkey}&nbsp;</td>
+                <td>{$account.$colkey|escape}&nbsp;</td>
               {/foreach}
               {foreach from=$attributes.expired.columns.manager key=colkey item=colname}
                 {if $colkey==manager_mail}
-                  <td><a href="mailto:{$account.$colkey}">{$account.$colkey}</a></td>
+                  <td><a href="mailto:{$account.$colkey|escape}">{$account.$colkey|escape}</a></td>
                 {else}
-                  <td>{$account.$colkey}&nbsp;</td>
+                  <td>{$account.$colkey|escape}&nbsp;</td>
                 {/if}
               {/foreach}
             </tr>
@@ -73,10 +73,10 @@
 
           <tr>
           {foreach from=$attributes.expired.columns.user item=colname}
-            <th>{$colname}</th>
+            <th>{$colname|escape}</th>
           {/foreach}
           {foreach from=$attributes.expired.columns.manager item=colname}
-            <th>{$colname}</th>
+            <th>{$colname|escape}</th>
           {/foreach}
           </tr>
         </thead>
@@ -84,13 +84,13 @@
           {foreach from=$attributes.expired.accounts_next_days item=account}
             <tr>
               {foreach from=$attributes.expired.columns.user key=colkey item=colname}
-                <td>&nbsp;{$account.$colkey}</td>
+                <td>&nbsp;{$account.$colkey|escape}</td>
               {/foreach}
               {foreach from=$attributes.expired.columns.manager key=colkey item=colname}
                 {if $colkey==manager_mail}
-                  <td><a href="mailto:{$account.$colkey}">{$account.$colkey}</a></td>
+                  <td><a href="mailto:{$account.$colkey|escape}">{$account.$colkey|escape}</a></td>
                 {else}
-                  <td>&nbsp;{$account.$colkey}</td>
+                  <td>&nbsp;{$account.$colkey|escape}</td>
                 {/if}
               {/foreach}
             </tr>
diff --git a/plugins/addons/dashboard/users_stats.tpl b/plugins/addons/dashboard/users_stats.tpl
index f86c17fd143e00bb11873ddabaa18f6ebfbea213..570414e058ba63b4aaf05136ecd8470a3d55280f 100644
--- a/plugins/addons/dashboard/users_stats.tpl
+++ b/plugins/addons/dashboard/users_stats.tpl
@@ -1,6 +1,6 @@
 <div id="{$sectionId}"  class="plugin-section">
   <span class="legend">
-    {$section}
+    {if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
   </span>
   <div>
     <img src="{$attributes.users_stats.img|escape}" alt="user icon"/>
@@ -13,7 +13,7 @@
       {foreach from=$attributes.users_stats.accounts item=acc}
         <li style="list-style-image:url({$acc.img|escape})">
         {if $acc.nb > 0}
-          {t count=$acc.nb 1=$acc.name 2=$acc.nb plural="%2 of them have a %1 account"}One of them have a %1 account{/t}
+          {t count=$acc.nb 1=$acc.name 2=$acc.nb plural="%2 of them have a %1 account"}One of them has a %1 account{/t}
         {else}
           {t 1=$acc.name}None of them have a %1 account{/t}
         {/if}
diff --git a/plugins/addons/mailtemplate/class_mailTemplate.inc b/plugins/addons/mailtemplate/class_mailTemplate.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e447ae0a36a7f732c34cb21cfe6b070aaa75f82c
--- /dev/null
+++ b/plugins/addons/mailtemplate/class_mailTemplate.inc
@@ -0,0 +1,88 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2022 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class mailTemplate extends simplePlugin
+{
+  var $displayHeader = FALSE;
+
+  public static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('Mail Template'),
+      'plDescription' => _('Mail Template'),
+      'plObjectClass' => ['fdMailTemplate'],
+      'plFilter'      => '(objectClass=fdMailTemplate)',
+      'plObjectType'  => ['mailTemplate' => [
+        'name'        => _('Mail Template'),
+        'ou'          => get_ou('mailTemplateRDN'),
+        'icon'        => 'geticon.php?context=applications&icon=mail-template&size=16',
+      ]],
+      'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    global $config;
+    return [
+      // Attributes are grouped by section
+      'mailTemplate' => [
+        'name'  => _('Mail Object'),
+        'attrs' => [
+        new StringAttribute(
+          _('Mail Template Name'), _('Mail Template Name'),
+          'cn', TRUE
+        ),
+        new StringAttribute(
+          _('Mail Subject'), _('Mail Subject'),
+          'fdMailTemplateSubject', TRUE
+        ),
+        new TextAreaAttribute(
+          _('Mail Template Body'), _('Text to be sent to recipient'),
+          'fdMailTemplateBody', TRUE
+        ),
+        new TextAreaAttribute(
+          _('Mail Signature'), _('Mail Signature'),
+          'fdMailTemplateSignature', FALSE
+        ),
+        new FileDownloadAttribute(
+          _('Attachment'), _('Import a file for this e-mail'),
+          'fdMailTemplateAttachment', FALSE, '', TRUE
+        ),
+        new BooleanAttribute(
+          _('Read Receipt'),
+          _('Read Receipt'),
+          'fdMailTemplateReadReceipt', FALSE
+        ),
+        ]
+      ],
+    ];
+  }
+
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+    parent::__construct($dn, $object, $parent, $mainTab);
+
+  }
+
+}
diff --git a/plugins/addons/subscription/class_subscriptionInfo.inc b/plugins/addons/subscription/class_subscriptionInfo.inc
index 4e381b623410e9a16fa877c667930953221f0d0d..f60b3ad85d9f87331bad86010341095a04dbee39 100644
--- a/plugins/addons/subscription/class_subscriptionInfo.inc
+++ b/plugins/addons/subscription/class_subscriptionInfo.inc
@@ -20,21 +20,19 @@
 
 class subscriptionInfo extends simplePlugin
 {
-  public $objectclasses = ['fdSubscriptionInformation'];
-
   /* ldap attribute => ini variable */
   public static $subscriptionAttributes = [
-    'fdSubscriptionName'                => 'Name',
-    'uid'                               => 'Id',
-    'fdSubscriptionType'                => 'Type',
-    'fdSubscriptionContractId'          => 'Contract',
-    'fdSubscriptionStartDate'           => 'StartDate',
-    'fdSubscriptionEndDate'             => 'EndDate',
+    'fdSubscriptionName'        => 'Name',
+    'uid'                       => 'Id',
+    'fdSubscriptionType'        => 'Type',
+    'fdSubscriptionContractId'  => 'Contract',
+    'fdSubscriptionStartDate'   => 'StartDate',
+    'fdSubscriptionEndDate'     => 'EndDate',
   ];
 
   public static $sectionName = 'FusionDirectory Subscription';
 
-  public static function plInfo ()
+  public static function plInfo (): array
   {
     return [
       'plShortName'   => _('Subscription'),
@@ -46,7 +44,6 @@ class subscriptionInfo extends simplePlugin
         'subscriptionInfo' => [
           'name'      => _('Subscription information'),
           'ou'        => get_ou('fusiondirectoryRDN'),
-          'filter'    => 'objectClass=fdSubscriptionInformation',
         ]
       ],
       'plSection'     => 'conf',
@@ -56,7 +53,7 @@ class subscriptionInfo extends simplePlugin
     ];
   }
 
-  public static function getAttributesInfo ()
+  public static function getAttributesInfo (): array
   {
     return [
       'info' => [
@@ -139,8 +136,10 @@ class subscriptionInfo extends simplePlugin
     $this->attributesAccess['fdSubscriptionTextExpired']->setAllowHTML(TRUE);
   }
 
-  function execute ()
+  public function update (): bool
   {
+    parent::update();
+
     if ($this->uid !== '') {
       $this->attributesAccess['fdSubscriptionText']->setVisible(FALSE);
       $this->attributesAccess['fdSubscriptionName']->setVisible(TRUE);
@@ -165,7 +164,7 @@ class subscriptionInfo extends simplePlugin
       $this->attributesAccess['fdSubscriptionTextExpired']->setVisible(FALSE);
     }
 
-    return parent::execute();
+    return TRUE;
   }
 
   public function handle_import ()
@@ -173,18 +172,18 @@ class subscriptionInfo extends simplePlugin
     $data = $this->import_file;
     if (empty($data)) {
       /* No file or empty file */
-      msg_dialog::display(
-        _('Import error'),
-        htmlescape(_('No data. Did you forgot to upload a file?')),
-        ERROR_DIALOG
+      $error = new SimplePluginError(
+        $this->attributesAccess['import_file'],
+        htmlescape(_('No data. Did you forgot to upload a file?'))
       );
+      $error->display();
     } elseif (($data = parse_ini_string($data, TRUE)) === FALSE) {
       /* Import of INI failed */
-      msg_dialog::display(
-        _('Import error'),
-        htmlescape(_('Failed to parse imported file')),
-        ERROR_DIALOG
+      $error = new SimplePluginError(
+        $this->attributesAccess['import_file'],
+        htmlescape(_('Failed to parse imported file'))
       );
+      $error->display();
     } else {
       /* Check content of ini file */
       $errorText = NULL;
@@ -200,27 +199,27 @@ class subscriptionInfo extends simplePlugin
         }
       }
       if ($errorText !== NULL) {
-        msg_dialog::display(
-          _('Import error'),
-          htmlescape($errorText),
-          ERROR_DIALOG
+        $error = new SimplePluginError(
+          $this->attributesAccess['import_file'],
+          htmlescape($errorText)
         );
+        $error->display();
       } else {
         /* Import data and save it to the LDAP */
         foreach (static::$subscriptionAttributes as $attr => $iniVar) {
-          $this->attributesAccess[$attr]->setValue(isset($data[$iniVar]) ? $data[$iniVar] : '');
+          $this->attributesAccess[$attr]->setValue($data[$iniVar] ?? '');
         }
         $errors = $this->parent->save();
-        if (empty($errors)) {
-          /* The object will stay open so it needs to appear as loaded from LDAP */
-          $this->is_account             = TRUE;
-          $this->initially_was_account  = TRUE;
-        } else {
+        if (count($errors) > 0) {
           msg_dialog::displayChecks($errors);
           /* Reset fields to LDAP value */
           foreach (array_keys(static::$subscriptionAttributes) as $attr) {
             $this->attributesAccess[$attr]->setValue($this->attributesAccess[$attr]->getInitialValue());
           }
+        } else {
+          /* The object will stay open so it needs to appear as loaded from LDAP */
+          $this->is_account             = TRUE;
+          $this->initially_was_account  = TRUE;
         }
       }
     }
@@ -232,10 +231,6 @@ class subscriptionInfo extends simplePlugin
   {
     global $config;
 
-    if ($classname === NULL) {
-      $classname = get_called_class();
-    }
-
     if ($entry_dn === NULL) {
       $entry_dn = 'cn=subscription,'.get_ou('fusiondirectoryRDN').$config->current['BASE'];
     }
diff --git a/plugins/addons/subscription/main.inc b/plugins/addons/subscription/main.inc
deleted file mode 100644
index 0d38b4186cb1390aa7769e98493fe8680ab8e4f0..0000000000000000000000000000000000000000
--- a/plugins/addons/subscription/main.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org)
-  Copyright (C) 2013-2021  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-subscriptionInfo::mainInc();
diff --git a/plugins/addons/tasks/class_tasks.inc b/plugins/addons/tasks/class_tasks.inc
new file mode 100644
index 0000000000000000000000000000000000000000..53ffe01da9d28b7676a73785954fa33972e63602
--- /dev/null
+++ b/plugins/addons/tasks/class_tasks.inc
@@ -0,0 +1,84 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2022 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class tasks extends simplePlugin
+{
+  protected $displayHeader = FALSE;
+
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('Tasks'),
+      'plDescription' => _('Tasks'),
+      'plObjectClass' => ['fdTasks'],
+      'plFilter'      => '(objectClass=fdTasks)',
+      'plPriority'    => 41,
+      'plObjectType'  => ['tasks' => [
+        'name'        => _('Tasks'),
+        'ou'          => get_ou('tasksRDN'),
+        'icon'        => 'geticon.php?context=applications&icon=tasks&size=16',
+      ]],
+      'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      // Attributes are grouped by section
+      'tasks' => [
+        'name'  => _('Tasks Generic | Saving will create un-modifiable subtasks'),
+        'attrs' => [
+        new StringAttribute(
+          _('Task Name'), _('Name for this task'),
+          'cn', TRUE
+        ),
+         new DateTimeAttribute(
+           _('Schedule'), '',
+           'fdTasksScheduleDate', FALSE
+           ),
+
+        new HiddenAttribute('fdTasksStatus', TRUE, '1', '', 'Status', 'Status of the task'),
+        new HiddenAttribute('fdTasksCreationDate', TRUE, date("Y-m-d h:i:sa"), '', 'StartDate', 'Start Date And Time Of A Task'),
+        ]
+      ],
+      'subTasks' => [
+        'name' => _('Creation of Sub Tasks - Starting this task'),
+        'attrs' => [
+          new BooleanAttribute(
+            _('Activate SubTasks'), _('Trigger the creation of this task and related subtasks'),
+            'fdSubTasksActivation', FALSE
+          ),
+        ]
+      ],
+    ];
+  }
+
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+    parent::__construct($dn, $object, $parent, $mainTab);
+
+    $this->attributesAccess['fdSubTasksActivation']->setInLdap(FALSE);
+  }
+
+}
diff --git a/plugins/addons/tasks/class_tasksGranular.inc b/plugins/addons/tasks/class_tasksGranular.inc
new file mode 100644
index 0000000000000000000000000000000000000000..bd5e4285e7100734746d887f789d5c2708302bd9
--- /dev/null
+++ b/plugins/addons/tasks/class_tasksGranular.inc
@@ -0,0 +1,84 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2022 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class tasksGranular extends simplePlugin
+{
+
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('Tasks Granular'),
+      'plDescription' => _('Granular tasks mangement allowing details reports'),
+      'plObjectClass' => ['fdTasksGranular'],
+      'plFilter'      => '(objectClass=fdTasksGranular)',
+      'plPriority'    => 41,
+      'plObjectType'  => ['tasksGranular' => [
+        'name'        => _('TasksGranular'),
+        'ou'          => get_ou('tasksRDN'),
+        'icon'        => 'geticon.php?context=applications&icon=tasks&size=16',
+      ]],
+      'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  /*
+   * Info : getAttributesInfo return is important for the management class.
+   * It is the return of that method which render the columns and data properly.
+   * Although not used by the interface directly, it is created by simpleTab during
+   * the save of mailTasks.
+   */
+  static function getAttributesInfo (): array
+  {
+    return [
+      // Attributes are grouped by section
+      'tasksGranular' => [
+        'name'  => _('Tasks Granular'),
+        'attrs' => [
+          new StringAttribute(
+            _('Task Granular Name'), _('Name for this task'),
+            'cn', TRUE
+          ),
+          new HiddenAttribute('fdTasksGranularStatus', TRUE, '1', '', 'Status', 'Status of the task'),
+          new HiddenAttribute('fdTasksGranularMaster', TRUE, '', '', 'Master CN', 'Name of the Master task'),
+          new HiddenAttribute('fdTasksGranularType', TRUE, '', '', 'Type', 'Type of the task'),
+          new HiddenAttribute('fdTasksGranularRef', TRUE, '', '', 'Type', 'Reference towards a required CN (mail template E.g'),
+          new MailAttribute(
+             _('Email'),
+             _('Email address to which messages will be sent'), 'fdTasksGranularMail', TRUE),
+          new MailAttribute(
+             _('Email'),
+             _('Email address from which emails will be sent'), 'fdTasksGranularMailFrom', TRUE),
+          new DateTimeAttribute(
+           _('Schedule'), '',
+           'fdTasksGranularSchedule', FALSE
+          )
+        ]
+      ]
+    ];
+  }
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+    parent::__construct($dn, $object, $parent, $mainTab);
+  }
+
+}
diff --git a/plugins/addons/tasks/class_tasksMail.inc b/plugins/addons/tasks/class_tasksMail.inc
new file mode 100644
index 0000000000000000000000000000000000000000..c657987c739e9eae0245701bf5871d447ca43173
--- /dev/null
+++ b/plugins/addons/tasks/class_tasksMail.inc
@@ -0,0 +1,275 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org)
+
+  Copyright (C) 2018-2022 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA
+*/
+
+class tasksMail extends simplePlugin
+{
+  protected $displayHeader = TRUE;
+
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('Tasks Mail'),
+      'plDescription' => _('Tasks Mail Object'),
+      'plIcon'        => 'geticon.php?context=applications&icon=tasks&size=16',
+      'plPriority'    => 42,
+      'plObjectClass' => ['fdTasksMail'],
+      'plFilter'      => '(objectClass=fdTasksMail)',
+      'plObjectType'  => ['tasks'],
+      'plConflicts'   => [''],
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo()),
+      'plForeignKeys'  => [
+        'fdTasksMailUsers' => [
+          ['user','dn','fdTasksMailUsers=%oldvalue%','*']
+        ]
+      ],
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      // Attributes are grouped by section
+      'taskMail' => [
+        'name'  => _('Task Mail Object'),
+        'attrs' => [
+          new SelectAttribute(
+            _('Mail Template'), _('Mail Template Object Selection'),
+            'fdTasksMailObject', FALSE
+          ),
+          new HiddenArrayAttribute('fdTasksEmailsFromDN', FALSE, ''),
+        ]
+      ],
+      'From Component' => [
+        'name'  => _('Sender email address'),
+        'attrs' => [
+           new MailAttribute(
+             _('Sender email address'),
+             _('Email address from which mails will be sent'), 'fdTasksEmailSender', TRUE, 'to.be@chang.ed'),
+        ]
+      ],
+      'UserGroupSelection' => [
+        'name'  => _('Recipients Users and/or Groups'),
+        'attrs' => [
+          new UsersGroupsRolesAttribute(
+            _('Members'), _('Users or groups to assign to this task.'),
+            'fdTasksMailUsers', TRUE
+          ),
+        ],
+      ],
+      'tasksMailType' => [
+        'name'  => _('Type of e-mail address desired'),
+        'attrs' => [
+          new SelectAttribute(
+            _('Mail Type - If not found, priority will apply'), _('Mail Type Object Selection'),
+            'fdTasksMailType', FALSE
+          ),
+        ],
+      ]
+    ];
+  }
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+    parent::__construct($dn, $object, $parent, $mainTab);
+
+    //Search within LDAP and retrieve all mail objects for current base.
+    $ldap = $config->get_ldap_link();
+    $ldap->cd($config->current['BASE']);
+    $ldap->search('(&(objectClass=fdMailTemplate))', ['cn']);
+    $tmpSearch = [];
+    while ($attrs = $ldap->fetch()) {
+      $tmpSearch[$attrs['cn'][0]] = $attrs['cn'][0];
+    }
+    asort($tmpSearch);
+    $this->attributesAccess['fdTasksMailObject']->setChoices(array_keys($tmpSearch), array_values($tmpSearch));
+
+    $mailAttrTypes = [
+      'mail'                      => 'mail - [gosaMailAccount primary]',
+      'gosaMailAlternateAddress'  => 'gosaMailAlternateAddress',
+      'gosaMailForwardingAddress' => 'gosaMailForwardingAddress',
+      'supannAutreMail'           => 'supannAutreMail',
+      'supannMailPerso'           => 'supannMailPerso',
+      'supannMailPrive'           => 'supannMailPrive'
+    ];
+
+    $this->attributesAccess['fdTasksMailType']->setChoices(array_keys($mailAttrTypes), array_values($mailAttrTypes));
+
+  }
+
+  /*
+   * Must return bool to be compliant with the interface
+   * Allows attributes values based on others to be updated before save.
+   */
+  public function update (): bool
+  {
+    parent::update();
+
+    // get the value of type mail desired and if null set default
+    $mailAttr  = $this->attributesAccess['fdTasksMailType']->getValue();
+    if (empty($mailAttr)) {
+      $mailAttr = 'mail';
+    }
+
+    // create a method which return the objectype and attribute names required
+    $mailObject = $this->getMailObject($mailAttr);
+
+    // send the objectype and attrs name to the below method
+    $this->setEmailsFromSelectedDN($mailObject, $mailAttr);
+
+    return TRUE;
+  }
+
+  /*
+   * Return the objectype searched for by setEmailFromSelectedDN
+   */
+  public function getMailObject (string $mailAttr) : string
+  {
+    switch ($mailAttr) {
+      case 'mail' :
+      case 'gosaMailAlternateAddress' :
+      case 'gosaMailForwardingAddress':
+        return 'gosaMailAccount';
+
+      case 'supannAutreMail' :
+      case 'supannMailPerso' :
+      case 'supannMailPrive' :
+        return 'supannPerson';
+
+      default :
+        return 'gosaMailAccount';
+    }
+  }
+
+   /*
+   * Populate the fdTasksEmailsFromDN attribute with related mails addresses.
+   */
+  public function setEmailsFromSelectedDN ($mailObject, $mailAttr) : void
+  {
+    global $config;
+
+    $ldap = $config->get_ldap_link();
+    $attributeValue = $this->attributesAccess['fdTasksMailUsers']->getValue();
+
+    if ($attributeValue && !empty($attributeValue)) {
+
+      $mailList = [];
+
+      foreach ($this->attributesAccess['fdTasksMailUsers']->getValue() as $dn) {
+
+        $ldap->cd($dn);
+
+        // filter and attributes should be equals to the arguments passed to this method
+        $filter = "(objectClass=$mailObject)";
+        $attrs = [$mailAttr];
+
+        $ldap->search($filter, $attrs);
+        $info = $ldap->fetch();
+
+        if (!empty($info[$mailAttr][0]) && isset($info[$mailAttr][0])) {
+          // In case of private supann mail, remove the prefix
+          $mailList[] = preg_replace('/.+?(?=supann)/', '', $info[$mailAttr][0]);
+
+          // A possible enhancement is to recall itself with another mailObject / attr
+        }
+      }
+      $this->attributesAccess['fdTasksEmailsFromDN']->setValue(array_values($mailList));
+    }
+  }
+
+  function save (): array
+  {
+    $execTasks = $this->parent->getBaseObject()->fdSubTasksActivation ?? NULL;
+
+    if ($execTasks) {
+      $this->generateSlaveTasks();
+    }
+
+    $errors = parent::save();
+    return $errors;
+  }
+
+  /*
+   * Generate slave tasks, carefull that main task cannot be changed cause subtasks are not updated.
+   * It would be dangerous to edit subs tasks if some are under processed already.
+   */
+  public function generateSlaveTasks ()
+  {
+    $emails = $this->attributesAccess['fdTasksEmailsFromDN']->getValue();
+    // Ref is supposed to be the mail object CN in this class
+    $ref  = $this->attributesAccess['fdTasksMailObject']->getValue();
+    $from = $this->attributesAccess['fdTasksEmailSender']->getValue();
+    // Incremental id allowing creation of different CN for sub tasks
+    $id = 0;
+
+    // Take the attribute from the other tabs - attribute cannot be null or unset by default
+    $schedule = $this->parent->getBaseObject()->fdTasksScheduleDate ?? NULL;
+
+    if (isset($emails) && !empty($emails)) {
+      foreach ($emails as $email) {
+        $id ++;
+
+        // Here we create the object taskGranular
+        $tabObject = objects::create('TasksGranular');
+
+        // remove 'dn' keeping only 'cn'
+        $rmDn = preg_replace('/(?=,).*/', '', $this->dn);
+
+        // only take the cn without dc
+        preg_match('/cn=(.*)/', $rmDn, $matches);
+
+        $subTaskName = $matches[1].'-SubTask-'.$id;
+
+        $values['tasksGranular'] = [
+          "cn"                      => $subTaskName,
+          "fdTasksGranularType"     => 'Mail Object',
+          "fdTasksGranularMaster"   => $this->dn,
+          "fdTasksGranularMail"     => $email,
+          "fdTasksGranularSchedule" => $schedule,
+          "fdTasksGranularRef"      => $ref,
+          "fdTasksGranularMailFrom" => $from
+        ];
+
+        foreach ($values as $tab => $tabvalues) {
+          if (!isset($tabObject->by_object[$tab])) {
+            echo "Error tab does not contains attributes values" .PHP_EOL;
+          }
+          $error = $tabObject->by_object[$tab]->deserializeValues($tabvalues);
+          if ($error !== TRUE) {
+            echo 'Error during deserializing' .$error .PHP_EOL;
+          }
+
+          $tabObject->current = $tab;
+          $tabObject->update();
+          $tabObject->loadTabs();
+        }
+
+        $errors = $tabObject->save();
+
+        // Showing errors should be better, enhancement here required.
+        if (!empty($errors)) {
+          $show_error = new SimplePluginError($this, htmlescape(sprintf(_('Error : "%s", already exist ! Editing existing tasks is forbidden.'), $subTaskName)));
+          $show_error->display();
+        }
+      }
+    }
+  }
+}
diff --git a/plugins/admin/acl/class_ACLsAssignmentAttribute.inc b/plugins/admin/acl/class_ACLsAssignmentAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..09d7913012f0950fb34e67ee8a7603caa2ff48b7
--- /dev/null
+++ b/plugins/admin/acl/class_ACLsAssignmentAttribute.inc
@@ -0,0 +1,111 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2013-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute
+{
+  protected $order        = TRUE;
+  protected $dialogClass  = 'ACLsAssignmentDialog';
+  protected $height       = 300;
+
+  protected function getAttributeArrayValue ($key, $value)
+  {
+    /* Convert text value to displayable array value */
+    sort($value['members']);
+    static $nbShown = 4;
+    $members = join(', ', array_slice($value['members'], 0, $nbShown));
+    if (count($value['members']) > $nbShown) {
+      $members .= sprintf(_(', and %d others'), (count($value['members']) - $nbShown));
+    }
+    $value['members'] = $members;
+    return $value;
+  }
+
+  function readValue ($value)
+  {
+    $acl = explode(':', $value);
+    return [$acl[0], [
+      'scope'         => $acl[1],
+      'role'          => base64_decode($acl[2]),
+      'members'       => array_map('base64_decode', explode(',', $acl[3])),
+      'userfilter'    => (isset($acl[4]) ? base64_decode($acl[4]) : ''),
+      'targetfilter'  => (isset($acl[5]) ? base64_decode($acl[5]) : ''),
+    ]];
+  }
+
+  function writeValue ($key, $value)
+  {
+    return $key.
+            ':'.$value['scope'].
+            ':'.base64_encode($value['role']).
+            ':'.join(',', array_map('base64_encode', $value['members'])).
+            ':'.base64_encode($value['userfilter']).
+            ':'.base64_encode($value['targetfilter']);
+  }
+
+  function foreignKeyUpdate ($oldvalue, $newvalue, array $source)
+  {
+    foreach ($this->value as $key => &$value) {
+      if ($source['FIELD'] == 'dn') {
+        if ($newvalue === NULL) {
+          if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $value['role'])) {
+            unset($this->value[$key]);
+          }
+          foreach ($value['members'] as $member_key => $member) {
+            if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $member)) {
+              unset($value['members'][$member_key]);
+            }
+          }
+          unset($member);
+        } elseif ($source['MODE'] == 'move') {
+          $value['role'] = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $value['role']);
+          foreach ($value['members'] as &$member) {
+            $member = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $member);
+          }
+          unset($member);
+        } elseif ($source['MODE'] == 'copy') {
+          /* Copied members are added */
+          foreach ($value['members'] as $member) {
+            if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $member)) {
+              $value['members'][] = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $member);
+            }
+          }
+        }
+      } else {
+        trigger_error('unknown source "'.$source['CLASS'].'" with field "'.$source['FIELD'].'"');
+      }
+    }
+    unset($value);
+  }
+
+  function foreignKeyCheck ($oldvalue, array $source): bool
+  {
+    foreach ($this->value as $value) {
+      if (
+          (($source['CLASS'] == 'aclRole') && ($value['role'] == $oldvalue)) ||
+          (in_array($source['CLASS'], ['user','posixGroup','roleGeneric']) && in_array($oldvalue, $value['members']))
+        ) {
+        return TRUE;
+      } elseif (!in_array($source['CLASS'], ['aclRole','user','posixGroup','roleGeneric'])) {
+        trigger_error('unknown source '.$source['CLASS']);
+      }
+    }
+    return FALSE;
+  }
+}
diff --git a/plugins/admin/acl/class_ACLsAssignmentDialog.inc b/plugins/admin/acl/class_ACLsAssignmentDialog.inc
new file mode 100644
index 0000000000000000000000000000000000000000..ef6c11837dfd158e6d7fb64dd5dd56d37908b20f
--- /dev/null
+++ b/plugins/admin/acl/class_ACLsAssignmentDialog.inc
@@ -0,0 +1,68 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2013-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class ACLsAssignmentDialog extends GenericDialog
+{
+  protected $initialAclValue;
+  protected $post_cancel = 'add_acl_cancel';
+  protected $post_finish = 'add_acl_finish';
+  protected $dialogClass = 'aclAssignmentDialogWindow';
+
+  function __construct ($simplePlugin, $attribute, $acl = NULL)
+  {
+    $isContainer = FALSE;
+    if (isset($simplePlugin->attrs['objectClass'])) {
+      if (count(array_intersect(
+                  $simplePlugin->attrs['objectClass'],
+                  ['organizationalUnit', 'organization', 'domain', 'country', 'locality'])
+                )) {
+        $isContainer = TRUE;
+      }
+    } else {
+      $isContainer = TRUE;
+    }
+    $this->attribute        = $attribute;
+    $this->dialog           = new $this->dialogClass($acl, $isContainer);
+    $this->dialog->dn       = $simplePlugin->dn;
+    $this->initialAclValue  = $acl;
+  }
+
+  function handleFinish ()
+  {
+    $this->dialog->readPost();
+    $this->dialog->update();
+    $messages = $this->dialog->check();
+    if (!empty($messages)) {
+      msg_dialog::displayChecks($messages);
+      return;
+    }
+    $this->attribute->addValue('', $this->dialog->getAclEntry());
+    unset($this->dialog);
+  }
+
+  function handleCancel ()
+  {
+    if ($this->initialAclValue !== NULL) {
+      $this->attribute->addValue('', $this->initialAclValue);
+    }
+    unset($this->dialog);
+  }
+}
diff --git a/plugins/admin/acl/class_aclAssignment.inc b/plugins/admin/acl/class_aclAssignment.inc
index 977152361f89861ffa1aa2ddc98f1d03f68e08b0..a8ec812198b827dbb57420872213a69214c3d399 100644
--- a/plugins/admin/acl/class_aclAssignment.inc
+++ b/plugins/admin/acl/class_aclAssignment.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2019  FusionDirectory
 
   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
@@ -18,257 +18,15 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class aclAssignmentDialogWindow extends simplePlugin
-{
-  static function plInfo ()
-  {
-    return [
-      'plShortName'   => _('ACL Assignment Dialog'),
-      'plDescription' => _('Access control roles assignment dialog'),
-      'plCategory'    => ['acl'],
-
-      'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
-    ];
-  }
-
-  static function getAttributesInfo ()
-  {
-    return [
-      'properties' => [
-        'name'  => _('Properties'),
-        'attrs' => [
-          new SelectAttribute(
-            _('Mode'), _('Is this applying on complete subtree or only the base?'),
-            'aclMode', TRUE,
-            ['subtree',    'base'], 'base',
-            [_('Subtree'), _('Base only')]
-          ),
-          new SelectAttribute(
-            _('Role'), _('Role to apply'),
-            'aclRole', TRUE,
-            []
-          ),
-          new BooleanAttribute(
-            _('For all users'), _('Apply this ACL for all LDAP users'),
-            'allUsers', FALSE
-          ),
-          new UsersGroupsRolesAttribute(
-            _('Members'), _('Users or groups to assign this role to.'),
-            'aclMembers', TRUE
-          )
-        ]
-      ],
-    ];
-  }
-
-  function __construct ($value, $isContainer = FALSE)
-  {
-    parent::__construct(NULL, NULL, NULL, TRUE);
-    if ($isContainer) {
-      $this->attributesAccess['aclMode']->setDefaultValue('subtree');
-    } else {
-      $this->attributesAccess['aclMode']->setDefaultValue('base');
-    }
-    $this->attributesAccess['aclMode']->resetToDefault();
-
-    $roles = objects::ls('aclRole', 'cn');
-    $this->attributesAccess['aclRole']->setChoices(array_keys($roles), array_values($roles));
-    $this->attributesAccess['allUsers']->setInLdap(FALSE);
-    $this->attributesAccess['allUsers']->setManagedAttributes(
-      [
-        'disable' => [
-          TRUE => ['aclMembers']
-        ]
-      ]
-    );
-
-    if ($value !== NULL) {
-      $this->aclMode    = $value['scope'];
-      $this->aclRole    = $value['role'];
-      $this->aclMembers = $value['members'];
-      if ($value['members'][0] == '*') {
-        $this->allUsers = TRUE;
-      }
-    }
-  }
-
-  function execute ()
-  {
-    $smarty = get_smarty();
-    $display = parent::execute();
-    if (!is_object($this->dialog)) {
-      $display .= $smarty->fetch('string:'.
-        '<p class="plugbottom">'.
-        '  <input type="submit" name="add_acl_finish" value="{msgPool type=addButton}"/>'.
-        '  &nbsp;'.
-        '  <input type="submit" name="add_acl_cancel" value="{msgPool type=cancelButton}"/>'.
-        '</p>');
-    }
-    return $display;
-  }
-
-  function getAclEntry ()
-  {
-    $entry = [
-      'scope'   => $this->aclMode,
-      'role'    => $this->aclRole,
-      'members' => $this->aclMembers,
-    ];
-    if ($this->allUsers) {
-      $entry['members'] = ['*'];
-    }
-    return $entry;
-  }
-}
-
-class ACLsAssignmentDialog extends GenericDialog
-{
-  protected $initialAclValue;
-  protected $post_cancel = 'add_acl_cancel';
-  protected $post_finish = 'add_acl_finish';
-  protected $dialogClass = 'aclAssignmentDialogWindow';
-
-  function __construct ($simplePlugin, $attribute, $acl = NULL)
-  {
-    $isContainer = FALSE;
-    if (isset($simplePlugin->attrs['objectClass'])) {
-      if (count(array_intersect(
-                  $simplePlugin->attrs['objectClass'],
-                  ['organizationalUnit', 'organization', 'domain', 'country', 'locality'])
-                )) {
-        $isContainer = TRUE;
-      }
-    } else {
-      $isContainer = TRUE;
-    }
-    $this->attribute        = $attribute;
-    $this->dialog           = new $this->dialogClass($acl, $isContainer);
-    $this->dialog->set_acl_base($simplePlugin->acl_base);
-    $this->initialAclValue  = $acl;
-  }
-
-  function dialog_execute ()
-  {
-    $this->dialog->save_object();
-    return $this->dialog->execute();
-  }
-
-  function handle_finish ()
-  {
-    $this->dialog->save_object();
-    $messages = $this->dialog->check();
-    if (!empty($messages)) {
-      msg_dialog::displayChecks($messages);
-      return $this->dialog->execute();
-    }
-    $this->attribute->addValue($this->dialog->getAclEntry());
-    return FALSE;
-  }
-
-  function handle_cancel ()
-  {
-    if ($this->initialAclValue !== NULL) {
-      $this->attribute->addValue($this->initialAclValue);
-    }
-    return FALSE;
-  }
-}
-
-class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute
-{
-  protected $order        = TRUE;
-  protected $dialogClass  = 'ACLsAssignmentDialog';
-  protected $height       = 300;
-
-  protected function getAttributeArrayValue ($key, $value)
-  {
-    /* Convert text value to displayable array value */
-    sort($value['members']);
-    static $nbShown = 4;
-    $members = join(', ', array_slice($value['members'], 0, $nbShown));
-    if (count($value['members']) > $nbShown) {
-      $members .= sprintf(_(', and %d others'), (count($value['members']) - $nbShown));
-    }
-    $value['members'] = $members;
-    return $value;
-  }
-
-  function readValue ($value)
-  {
-    $acl = explode(':', $value);
-    return [$acl[0], [
-      'scope'   => $acl[1],
-      'role'    => base64_decode($acl[2]),
-      'members' => array_map('base64_decode', explode(',', $acl[3])),
-    ]];
-  }
-
-  function writeValue ($key, $value)
-  {
-    return $key.':'.$value['scope'].':'.base64_encode($value['role']).':'.join(',', array_map('base64_encode', $value['members']));
-  }
-
-  function foreignKeyUpdate ($oldvalue, $newvalue, $source)
-  {
-    foreach ($this->value as $key => &$value) {
-      if ($source['FIELD'] == 'dn') {
-        if ($newvalue === NULL) {
-          if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $value['role'])) {
-            unset($this->value[$key]);
-          }
-          foreach ($value['members'] as $member_key => $member) {
-            if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $member)) {
-              unset($value['members'][$member_key]);
-            }
-          }
-          unset($member);
-        } elseif ($source['MODE'] == 'move') {
-          $value['role'] = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $value['role']);
-          foreach ($value['members'] as &$member) {
-            $member = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $member);
-          }
-          unset($member);
-        } elseif ($source['MODE'] == 'copy') {
-          /* Copied members are added */
-          foreach ($value['members'] as $member) {
-            if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $member)) {
-              $value['members'][] = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $member);
-            }
-          }
-        }
-      } else {
-        trigger_error('unknown source "'.$source['CLASS'].'" with field "'.$source['FIELD'].'"');
-      }
-    }
-    unset($value);
-  }
-
-  function foreignKeyCheck ($oldvalue, $source)
-  {
-    foreach ($this->value as $value) {
-      if (($source['CLASS'] == 'aclRole') && ($value['role'] == $oldvalue)) {
-        return TRUE;
-      } elseif (in_array($source['CLASS'], ['user','posixGroup','roleGeneric']) && in_array($oldvalue, $value['members'])) {
-        return TRUE;
-      } elseif (!in_array($source['CLASS'], ['aclRole','user','posixGroup','roleGeneric'])) {
-        trigger_error('unknown source '.$source['CLASS']);
-      }
-    }
-  }
-}
-
 class aclAssignment extends simplePlugin
 {
-  var $objectclasses  = ['gosaAcl'];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     global $config;
     $oc = [
       'aclAssignment' => [
         'aclCategory' => 'acl',
         'name'        => _('ACL assignment'),
-        'filter'      => 'objectClass=gosaAcl',
         'ou'          => '',
         'icon'        => 'geticon.php?context=categories&icon=acl&size=16',
         'tabClass'    => 'simpleTabs_noSpecial',
@@ -283,6 +41,8 @@ class aclAssignment extends simplePlugin
     return [
       'plShortName'   => _('ACL Assignment'),
       'plDescription' => _('Access control roles assignment'),
+      'plSmallIcon'   => 'geticon.php?context=categories&icon=acl&size=16',
+      'plObjectClass' => ['gosaAcl'],
       'plObjectType'  => $oc,
       'plForeignKeys'  => [
         'gosaAclEntry' => [
@@ -297,7 +57,7 @@ class aclAssignment extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'main' => [
@@ -319,12 +79,12 @@ class aclAssignment extends simplePlugin
     $this->attributesInfo['main']['name'] = sprintf(_('Assignments on object or subtree %s'), $this->dn);
   }
 
-  function compute_dn ()
+  function compute_dn (): string
   {
     return $this->dn;
   }
 
-  function save ()
+  function save (): array
   {
     $this->ignore_account = FALSE;
     $this->is_account = (count($this->gosaAclEntry) != 0);
@@ -355,7 +115,7 @@ class aclAssignment extends simplePlugin
     session::set('ui', $ui);
   }
 
-  function foreignKeyUpdate ($field, $oldvalue, $newvalue, $source)
+  function foreignKeyUpdate (string $field, $oldvalue, $newvalue, array $source)
   {
     /* Handle foreign keys only as the main tab so that they are not handled twice */
     if ($this->parent->getBaseObject() !== $this) {
diff --git a/plugins/admin/acl/class_aclAssignmentDialogWindow.inc b/plugins/admin/acl/class_aclAssignmentDialogWindow.inc
new file mode 100644
index 0000000000000000000000000000000000000000..40836188e8e6d7a871eab7a7a64d6a08dd2c2379
--- /dev/null
+++ b/plugins/admin/acl/class_aclAssignmentDialogWindow.inc
@@ -0,0 +1,144 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2013-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class aclAssignmentDialogWindow extends simplePlugin
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('ACL Assignment Dialog'),
+      'plDescription' => _('Access control roles assignment dialog'),
+      'plCategory'    => ['acl'],
+
+      'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      'properties' => [
+        'name'  => _('Properties'),
+        'attrs' => [
+          new SelectAttribute(
+            _('Mode'), _('Is this applying on complete subtree or only the base?'),
+            'aclMode', TRUE,
+            ['subtree',    'base'], 'base',
+            [_('Subtree'), _('Base only')]
+          ),
+          new SelectAttribute(
+            _('Role'), _('Role to apply'),
+            'aclRole', TRUE,
+            []
+          ),
+          new BooleanAttribute(
+            _('For all users'), _('Apply this ACL for all LDAP users'),
+            'allUsers', FALSE
+          ),
+          new UsersGroupsRolesAttribute(
+            _('Members'), _('Users or groups to assign this role to.'),
+            'aclMembers', TRUE
+          ),
+        ]
+      ],
+      'advanced' => [
+        'name'  => _('Advanced'),
+        'attrs' => [
+          new DisplayAttribute(
+            '', _('Warning message'),
+            'advancedWarning', FALSE,
+            _('These options allow you to restrict members or targets by LDAP filter. The member filter cannot use masks, and is safe to return any number of results as it will only be applied to the logged in user. For target filter, please avoid using a filter returning too many results, and if using template masks, avoid doing so on user-editable fields.')
+          ),
+          new StringAttribute(
+            _('Member filter'), _('LDAP filter which a member must match to actually get the rights'),
+            'aclUserFilter', FALSE
+          ),
+          new StringAttribute(
+            _('Target filter'), _('LDAP filter which a dn must match to actually be concerned. May use template masks for user fields. Example: (manager=%dn%).'),
+            'aclTargetFilter', FALSE
+          ),
+        ]
+      ],
+    ];
+  }
+
+  function __construct ($value, $isContainer = FALSE)
+  {
+    parent::__construct(NULL, NULL, NULL, TRUE);
+    if ($isContainer) {
+      $this->attributesAccess['aclMode']->setDefaultValue('subtree');
+    } else {
+      $this->attributesAccess['aclMode']->setDefaultValue('base');
+    }
+    $this->attributesAccess['aclMode']->resetToDefault();
+
+    $roles = objects::ls('aclRole', 'cn');
+    $this->attributesAccess['aclRole']->setChoices(array_keys($roles), array_values($roles));
+    $this->attributesAccess['allUsers']->setInLdap(FALSE);
+    $this->attributesAccess['allUsers']->setManagedAttributes(
+      [
+        'disable' => [
+          TRUE => ['aclMembers']
+        ]
+      ]
+    );
+
+    if ($value !== NULL) {
+      $this->aclMode    = $value['scope'];
+      $this->aclRole    = $value['role'];
+      $this->aclMembers = $value['members'];
+      if ($value['members'][0] == '*') {
+        $this->allUsers = TRUE;
+      }
+      $this->aclUserFilter    = $value['userfilter'];
+      $this->aclTargetFilter  = $value['targetfilter'];
+    }
+  }
+
+  public function render (): string
+  {
+    $smarty = get_smarty();
+    $display = parent::render();
+    if (!is_object($this->dialog)) {
+      $display .= $smarty->fetch('string:'.
+        '<p class="plugbottom">'.
+        '  <input type="submit" name="add_acl_finish" value="{msgPool type=addButton}"/>'.
+        '  &nbsp;'.
+        '  <input type="submit" formnovalidate="formnovalidate" name="add_acl_cancel" value="{msgPool type=cancelButton}"/>'.
+        '</p>');
+    }
+    return $display;
+  }
+
+  function getAclEntry ()
+  {
+    $entry = [
+      'scope'         => $this->aclMode,
+      'role'          => $this->aclRole,
+      'members'       => $this->aclMembers,
+      'userfilter'    => $this->aclUserFilter,
+      'targetfilter'  => $this->aclTargetFilter,
+    ];
+    if ($this->allUsers) {
+      $entry['members'] = ['*'];
+    }
+    return $entry;
+  }
+}
diff --git a/plugins/admin/acl/class_aclManagement.inc b/plugins/admin/acl/class_aclManagement.inc
index 67337af0bbd90ce997a29db8d5e617439028d938..9d8c0c4039a50312eeb6d0a74085a9e6ba119b0b 100644
--- a/plugins/admin/acl/class_aclManagement.inc
+++ b/plugins/admin/acl/class_aclManagement.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -23,13 +24,14 @@ class aclAssignmentCreationDialog extends simplePlugin
 {
   protected $post_finish = 'add_finish';
   protected $post_cancel = 'add_cancel';
-  protected $simpleManagement;
+  protected $management;
+  protected $closed = FALSE;
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('ACL assignment creation'),
-      'plShortName'   => _('ACL assignment creation'),
+      'plTitle'       => _('ACL assignment creation'),
       'plDescription' => _('Create an ACL assignment on an arbitrary dn'),
       'plCategory'    => ['acl'],
 
@@ -37,7 +39,7 @@ class aclAssignmentCreationDialog extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     global $config;
     return [
@@ -61,80 +63,84 @@ class aclAssignmentCreationDialog extends simplePlugin
   {
     global $config;
 
-    $this->simpleManagement = $parent;
+    $this->management = $parent;
 
     parent::__construct($config->current['BASE']);
 
     $this->attributesAccess['baseDn']->setInLdap(FALSE);
   }
 
-  function save_object ()
+  public function readPost ()
   {
-    parent::save_object();
+    parent::readPost();
     if (isset($_POST[$this->post_cancel])) {
-      return $this->handle_cancel();
-    }
-    if (isset($_POST[$this->post_finish])) {
-      return $this->handle_finish();
+      $this->handleCancel();
+    } elseif (isset($_POST[$this->post_finish])) {
+      $this->handleFinish();
     }
-    return TRUE;
   }
 
-  function save ()
+  public function update (): bool
   {
+    parent::update();
+    return !$this->closed;
   }
 
-  function execute ()
+  public function render (): string
   {
-    if ($this->save_object()) {
-      $smarty = get_smarty();
-      $smarty->assign($this->attributesAccess['baseDn']->getAcl().'ACL', 'rwcdm');
-      return parent::execute()."\n".
-      '<p class="plugbottom">'."\n".
-      '  <input type="submit" name="'.$this->post_finish.'" value="'.msgPool::addButton().'"/>&nbsp;'."\n".
-      '  <input type="submit" name="'.$this->post_cancel.'" value="'.msgPool::cancelButton().'"/>'."\n".
-      '</p>';
-    }
+    $smarty = get_smarty();
+    $smarty->assign($this->attributesAccess['baseDn']->getAcl().'ACL', 'rwcdm');
+    return parent::render()."\n".
+    '<p class="plugbottom">'."\n".
+    '  <input type="submit" name="'.$this->post_finish.'" value="'.msgPool::addButton().'"/>&nbsp;'."\n".
+    '  <input type="submit" formnovalidate="formnovalidate" name="'.$this->post_cancel.'" value="'.msgPool::cancelButton().'"/>'."\n".
+    '</p>';
   }
 
-  function handle_finish ()
+  public function handleFinish ()
   {
     $msgs = $this->check();
     if (count($msgs)) {
       msg_dialog::displayChecks($msgs);
-      return TRUE;
+      return;
     }
     try {
-      $this->simpleManagement->newEntryConfirmed($this->baseDn);
+      $this->management->newEntryConfirmed($this->baseDn);
     } catch (NonExistingLdapNodeException $e) {
-      msg_dialog::displayChecks([_('The dn you entered could not be found in the LDAP')]);
-      return TRUE;
+      $error = new FusionDirectoryError(htmlescape(_('The dn you entered could not be found in LDAP')), 0, $e);
+      $error->display();
+      return;
     }
-    return FALSE;
+    $this->closed = TRUE;
   }
 
-  function handle_cancel ()
+  function handleCancel ()
   {
-    $this->simpleManagement->closeDialogs();
-    return FALSE;
+    $this->management->closeDialogs();
+  }
+
+  function save (): array
+  {
+    return [];
   }
 }
 
-class aclManagement extends simpleManagement
+class aclManagement extends management
 {
-  protected $objectTypes  = ['aclAssignment'];
+  protected $skipCpHandler     = TRUE;
 
-  protected $autoFilterAttributes = ['dn', 'cn', 'description', 'ou', 'dc'];
+  public static $skipSnapshots = TRUE;
 
-  protected $departmentBrowser      = FALSE;
-  protected $departmentRootVisible  = FALSE;
-  protected $baseMode               = FALSE;
-  protected $skipCpHandler          = TRUE;
-  protected $autoActions            = FALSE;
+  public static $skipTemplates = TRUE;
 
-  public static $skipSnapshots = TRUE;
+  /* We cannot show anything more than DN as there are no ACLs for other fields on aclAssignment object */
+  public static $columns = [
+    ['ObjectTypeColumn', []],
+    ['LinkColumn',       ['attributes' => 'dn', 'label' => 'DN']],
+    ['ActionsColumn',    ['label' => 'Actions']],
+  ];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('ACL assignments'),
@@ -149,38 +155,31 @@ class aclManagement extends simpleManagement
     ];
   }
 
-  function configureFilter ()
+  protected function setUpListing ()
   {
-    parent::configureFilter();
-    $this->filter->scope = 'sub';
+    /* Set baseMode to FALSE */
+    $this->listing  = new managementListing($this, FALSE);
   }
 
-  function parseXML ($file)
+  protected function setUpFilter (array $filterElementDefinitions)
   {
-    $data = parent::parseXML($file);
-    $data['list']['table']['column'][1]['value']          = '%{filter:filterLabel(row,dn,pid,base,ou,cn,dc,o)}';
-    $data['list']['table']['column'][1]['sortAttribute']  = 'dn';
-    $data['list']['actionmenu']['action'][0]['type'] = 'entry';
-    $data['list']['actionmenu']['action'][0]['name'] = 'new';
-    return $data;
-  }
-
-  function configureHeadpage ()
-  {
-    /* Remove department types so that we don't mistake assignments with them */
-    $this->headpage->objectTypes = [];
-    $this->headpage->registerElementFilter('filterLabel', 'aclManagement::filterLabel');
-    parent::configureHeadpage();
+    parent::setUpFilter($filterElementDefinitions);
+    /* Set scope to sub */
+    $this->filter->setScope('sub');
   }
 
   /*!
-   * \brief  This method intiates the object creation.
+   * \brief Opens aclAssignmentCreationDialog to enter an arbitrary DN
    */
-  function newEntry ($action, array $target, array $all)
+  function newEntry (array $action)
   {
     $this->dialogObject = new aclAssignmentCreationDialog($this);
   }
 
+
+  /*!
+   * \brief Called by aclAssignmentCreationDialog
+   */
   function newEntryConfirmed ($dn)
   {
     $type = 'aclAssignment';
@@ -191,50 +190,25 @@ class aclManagement extends simpleManagement
     /* This will happen only if the exception is not thrown */
     $this->closeDialogs();
 
-    $this->displayApplyBtn  = FALSE;
-    $this->dn               = $dn;
-    $this->is_single_edit   = FALSE;
-
-    set_object_info($this->dn);
-
-    $this->openTabObject($tabObject, $this->headpage->getBase());
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->dn, 'Creating new ACL assignment');
-  }
-
-  static function filterLabel ($row, $dn, $pid = 0, $base = '')
-  {
-    $ou = '';
-    if ($dn == $base) {
-      $ou = ' . ';
-    } else {
-      for ($i = 4;$i < func_num_args();$i++) {
-        $val = func_get_arg($i);
-        if (empty($val)) {
-          continue;
-        }
-        if (!is_array($val)) {
-          $val = [$val];
-        }
-        $ou = htmlentities(reset($val), ENT_COMPAT, 'UTF-8');
-      }
-      if (empty($ou)) {
-        // If no name is found take what ever is used in the DN
-        preg_match('/^[^=]+=([^=,]+),/', $dn, $m);
-        $ou = $m[1];
-      }
-    }
-    $ou .= ' &nbsp; ['._('ACL Assignment').']';
+    $this->currentDn        = $dn;
 
-    return '<a href="?plug='.$_GET['plug'].'&amp;PID='.$pid.'&amp;act=listing_edit_'.$row.'" title="'.$dn.'">'.$ou.'</a>';
+    $this->openTabObject($tabObject);
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $this->currentDn, 'Creating new ACL assignment');
   }
 
-  protected function removeEntryRequested ($action, array $target, array $all)
+  /*! \brief Display confirmation dialog
+   */
+  protected function removeConfirmationDialog (array $objects)
   {
-    $result = parent::removeEntryRequested($action, $target, $all);
-    if ($result != "") {
-      $smarty = get_smarty();
-      return $smarty->fetch(get_template_path('remove.tpl', TRUE, dirname(__FILE__)));
-    }
+    $smarty = get_smarty();
+    $smarty->assign('objects', $objects);
+    $smarty->assign('multiple', TRUE);
+    return $smarty->fetch(get_template_path('remove.tpl', TRUE, dirname(__FILE__)));
+  }
+
+  protected function renderFilter (): string
+  {
+    /* Hide filter box */
+    return '';
   }
 }
-?>
diff --git a/plugins/admin/acl/remove.tpl b/plugins/admin/acl/remove.tpl
index ea079d26479ca65c9dff717b1fafdcf865a65478..817e0e926477afd3f690c6fbc376af3084225f2e 100644
--- a/plugins/admin/acl/remove.tpl
+++ b/plugins/admin/acl/remove.tpl
@@ -22,7 +22,7 @@
 
     <p class="plugbottom">
       <input type="submit" name="delete_confirmed" value="{msgPool type=delButton}"/>
-      <input type="submit" name="delete_cancel" value="{msgPool type=cancelButton}"/>
+      <input type="submit" formnovalidate="formnovalidate" name="delete_cancel" value="{msgPool type=cancelButton}"/>
     </p>
   </div>
 </div>
diff --git a/plugins/admin/aclrole/acleditiondialog.tpl b/plugins/admin/aclrole/acleditiondialog.tpl
index b92d8a12280619a602bce5f0e204ae0ada9e294d..a5691848d244ef3f9e3cf547d4e09e667771620a 100644
--- a/plugins/admin/aclrole/acleditiondialog.tpl
+++ b/plugins/admin/aclrole/acleditiondialog.tpl
@@ -1,16 +1,140 @@
-  <h1>{$headline}</h1>
-  {$aclEdition}
+  <h1>{$headline|escape}</h1>
 
 {if $dialogState eq 'create'}
+  {$aclEdition}
   <p class="plugbottom">
     <input type="submit" name="add_finish" value="{msgPool type=applyButton}"/>
-    <input type="submit" name="add_cancel" value="{msgPool type=cancelButton}"/>
+    <input type="submit" formnovalidate="formnovalidate" name="add_cancel" value="{msgPool type=cancelButton}"/>
   </p>
-{/if}
+{elseif $dialogState eq 'edit'}
+  {function makeCheckbox key='' infos='' attr='' acl='' rights=''}
+    {$checked = (strpos($rights, $acl) !== FALSE)}
+    <input id="acl_{$infos.tname}_{$attr}_{$acl}" type="checkbox" name="acl_{$key}_{$attr}_{$acl}"{if $checked} checked="checked"{/if}/>
+    <label for="acl_{$infos.tname}_{$attr}_{$acl}">{$label}</label>
+  {/function}
+
+  <input type="hidden" name="acl_dummy_0_0_0" value="1"/>
+
+  <div class="acledition">
+
+    <div class="togglebuttons">
+      <input type="button" name="toggle_all_create" onClick="acl_toggle_all('_0_c$');" value="Toggle C"/>
+      <input type="button" name="toggle_all_move"   onClick="acl_toggle_all('_0_m$');" value="Toggle M"/>
+      <input type="button" name="toggle_all_remove" onClick="acl_toggle_all('_0_d$');" value="Toggle D"/>
+       -
+      <input type="button" name="toggle_all_read"   onClick="acl_toggle_all('_0_r$');" value="Toggle R"/>
+      <input type="button" name="toggle_all_write"  onClick="acl_toggle_all('_0_w$');" value="Toggle W"/>
+       -
+      <input type="button" name="toggle_all_sub_read"   onClick="acl_toggle_all('[^0]_r$');" value="R+"/>
+      <input type="button" name="toggle_all_sub_write"  onClick="acl_toggle_all('[^0]_w$');" value="W+"/>
+    </div>
+    <div class="setbuttons">
+      <input type="button" name="set_true_all_create"  onClick="acl_set_all('_0_c$',true);"  value="C+"/><input type="button" name="set_false_all_create" onClick="acl_set_all('_0_c$',false);" value="C-"/>
+      <input type="button" name="set_true_all_move"    onClick="acl_set_all('_0_m$',true);"  value="M+"/><input type="button" name="set_false_all_move"   onClick="acl_set_all('_0_m$',false);" value="M-"/>
+      <input type="button" name="set_true_all_remove"  onClick="acl_set_all('_0_d$',true);"  value="D+"/><input type="button" name="set_false_all_remove" onClick="acl_set_all('_0_d$',false);" value="D-"/>
+       -
+      <input type="button" name="set_true_all_read"    onClick="acl_set_all('_0_r$',true);"  value="R+"/><input type="button" name="set_false_all_read"   onClick="acl_set_all('_0_r$',false);" value="R-"/>
+      <input type="button" name="set_true_all_write"   onClick="acl_set_all('_0_w$',true);"  value="W+"/><input type="button" name="set_false_all_write"  onClick="acl_set_all('_0_w$',false);" value="W-"/>
+       -
+      <input type="button" name="set_true_all_read"   onClick="acl_set_all('[^0]_r$',true);"  value="R+"/><input type="button" name="set_false_all_read"  onClick="acl_set_all('[^0]_r$',false);" value="R-"/>
+      <input type="button" name="set_true_all_write"  onClick="acl_set_all('[^0]_w$',true);"  value="W+"/><input type="button" name="set_false_all_write" onClick="acl_set_all('[^0]_w$',false);" value="W-"/>
+    </div>
+
+    {foreach from=$aclObjects key=$key item=$infos}
+      <table {if $infos.expand}class="expand"{/if}>
+        <tbody>
+          <tr>
+            <td colspan="2">
+             <b>{t}Object{/t}: {$infos.name}</b>
+            </td>
+            <td align="right">
+              {if !empty($infos.attrs)}
+                <input id="show{$infos.tname}" type="button" onclick="$('{$infos.tname}').toggle();" value="{t}Show/hide advanced settings{/t}"/>
+              {/if}
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2">
+              {if $infos.rights.create}
+                {makeCheckbox key=$key infos=$infos attr=0 acl=c label=_("Create objects") rights=$infos.globalAcl}&nbsp;&nbsp;
+              {/if}
+              {if $infos.rights.move}
+                {makeCheckbox key=$key infos=$infos attr=0 acl=m label=_("Move objects") rights=$infos.globalAcl}&nbsp;&nbsp;
+              {/if}
+              {if $infos.rights.remove}
+                {makeCheckbox key=$key infos=$infos attr=0 acl=d label=_("Remove objects") rights=$infos.globalAcl}&nbsp;&nbsp;
+              {/if}
+              {if $infos.rights.self}
+                {makeCheckbox key=$key infos=$infos attr=0 acl=s label=_("Grant permission to owner") rights=$infos.globalAcl}&nbsp;&nbsp;
+              {/if}
+            </td>
+            <td>
+              {if ($infos.rights.read||$infos.rights.write)}
+                &nbsp;{t}Complete object{/t}:
+                {if $infos.rights.read}
+                  {makeCheckbox key=$key infos=$infos attr=0 acl=r label=_("read") rights=$infos.globalAcl}&nbsp;&nbsp;
+                {/if}
+                {if $infos.rights.write}
+                  {makeCheckbox key=$key infos=$infos attr=0 acl=w label=_("write") rights=$infos.globalAcl}
+                {/if}
+              {/if}
+            </td>
+          </tr>
+          <tr id="tr_{$infos.tname}">
+            <td colspan="3">
+              <div id="{$infos.tname}" style="display:none;">
+                <table>
+                  <tbody>
+                    {* Walk through the list of attributes *}
+                    {$cnt    = 1}
+                    {foreach from=$infos.attrs key=$attr item=$dsc}
+                      {* Skip pl* attributes, they are internal... *}
+                      {if preg_match('/^pl[A-Z]+.*$/', $attr)}
+                        continue;
+                      {/if}
+
+                      {* Open table row *}
+                      {if ($cnt == 1)}
+                        <tr>
+                      {/if}
+
+                      {* Collect list of attributes *}
+                      {$state = ''}
+                      {if isset($infos.acl[$attr])}
+                        {$state = $infos.acl[$attr]}
+                      {/if}
+                      <td>
+                        <b>{$dsc}</b> ({$attr})<br/>
+                        {makeCheckbox key=$key infos=$infos attr=$attr acl=r label=_("read") rights=$state}
+                        {makeCheckbox key=$key infos=$infos attr=$attr acl=w label=_("write") rights=$state}
+                      </td>
+
+                      {* Close table row *}
+                      {if ($cnt == 3)}
+                        {$cnt = 1}
+                        </tr>
+                      {else}
+                        {$cnt = $cnt+1}
+                      {/if}
+                    {/foreach}
+                    {* Fill missing td's if needed *}
+                    {while (($cnt == 3) || ($cnt == 2))}
+                      <td>&nbsp;</td>
+                      {$cnt = $cnt+1}
+                    {/while}
+                  </tbody>
+                </table>
+              </div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+    {/foreach}
+
+  </div>
 
-{if $dialogState eq 'edit'}
   <p class="plugbottom">
     <input type="submit" name="submit_edit_acl" value="{msgPool type=applyButton}"/>
-    <input type="submit" name="cancel_edit_acl" value="{msgPool type=cancelButton}"/>
+    <input type="submit" formnovalidate="formnovalidate" name="cancel_edit_acl" value="{msgPool type=cancelButton}"/>
   </>
 {/if}
diff --git a/plugins/admin/aclrole/class_aclEditionDialog.inc b/plugins/admin/aclrole/class_aclEditionDialog.inc
index a6376a628f3835a319f1f4cd854a1d2e87005526..9dc188993ec930009e0c7561c39ac59c249dbdc3 100644
--- a/plugins/admin/aclrole/class_aclEditionDialog.inc
+++ b/plugins/admin/aclrole/class_aclEditionDialog.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -20,8 +21,13 @@
 */
 
 /* ACL categories list */
-class ACLEditionDialog extends GenericDialog
+class ACLEditionDialog implements FusionDirectoryDialog
 {
+  protected $attribute;
+
+  protected $post_cancel = 'add_cancel';
+  protected $post_finish = 'add_finish';
+
   protected $initialAclValue;
   protected $dialogState      = 'create';
   protected $aclObject        = '';
@@ -41,23 +47,17 @@ class ACLEditionDialog extends GenericDialog
     }
   }
 
-  function handle_finish ()
+  public function readPost ()
   {
-    $this->attribute->addValue($this->aclContents);
-    return FALSE;
-  }
+    global $config;
 
-  function handle_cancel ()
-  {
-    if ($this->initialAclValue !== NULL) {
-      $this->attribute->addValue($this->initialAclValue);
+    if (isset($_POST[$this->post_cancel])) {
+      $this->handleCancel();
+      return;
+    } elseif (isset($_POST[$this->post_finish]) || isset($_GET[$this->post_finish])) {
+      $this->handleFinish();
+      return;
     }
-    return FALSE;
-  }
-
-  function save_object ()
-  {
-    global $config;
 
     $new_acl = [];
 
@@ -143,11 +143,28 @@ class ACLEditionDialog extends GenericDialog
     }
   }
 
-  function dialog_execute ()
+  public function update (): bool
   {
-    global $config;
+    return ($this->dialogState !== 'closed');
+  }
 
-    $this->save_object();
+  protected function handleFinish ()
+  {
+    $this->attribute->addValue('', $this->aclContents);
+    $this->dialogState = 'closed';
+  }
+
+  protected function handleCancel ()
+  {
+    if ($this->initialAclValue !== NULL) {
+      $this->attribute->addValue('', $this->initialAclValue);
+    }
+    $this->dialogState = 'closed';
+  }
+
+  public function render (): string
+  {
+    global $config;
 
     /* Create templating instance */
     $smarty = get_smarty();
@@ -168,7 +185,6 @@ class ACLEditionDialog extends GenericDialog
         foreach ($infos['classes'] as $oc) {
           if (isset($this->aclContents[$oc]) && count($this->aclContents[$oc]) && isset($this->aclContents[$oc][0]) &&
               $this->aclContents[$oc][0] != '') {
-
             $summary[] = $oc;
             continue;
           }
@@ -196,11 +212,11 @@ class ACLEditionDialog extends GenericDialog
         $field1 = ['html' => $infos['description'], 'attach' => 'style="width:140px"'];
         $field2 = ['html' => $summary];
         $field3 = ['html' => $action, 'attach' => 'style="border-right:0px;width:40px"'];
-        $aclList->AddEntry([$field1, $field2, $field3]);
+        $aclList->addEntry([$field1, $field2, $field3]);
       }
 
       $smarty->assign('headline', _('List of available ACL categories'));
-      $smarty->assign('aclEdition', $aclList->DrawList());
+      $smarty->assign('aclEdition', $aclList->drawList());
     } elseif ($this->dialogState == 'edit') {
       /* Collect objects for selected category */
       $aclObjects = [];
@@ -209,13 +225,85 @@ class ACLEditionDialog extends GenericDialog
           continue;
         }
         $pInfos = pluglist::pluginInfos($class);
-        $aclObjects[$this->aclObject.'/'.$class] = $pInfos['plShortName'];
+        $key = $this->aclObject.'/'.$class;
+        /* Create sub acl if it does not exist */
+        if (!isset($this->aclContents[$key])) {
+          $this->aclContents[$key] = [];
+        }
+        if (!isset($this->aclContents[$key][0])) {
+          $this->aclContents[$key][0] = '';
+        }
+        if ((strtolower($class) === 'archivedobject') && (strtolower($this->aclObject) !== 'archivedobject')) {
+          $attrs = [];
+          $rights = [
+            'create'  => TRUE,
+            'move'    => FALSE,
+            'remove'  => FALSE,
+            'read'    => FALSE,
+            'write'   => FALSE,
+            'self'    => FALSE,
+          ];
+        } else {
+          $attrs = $pInfos['plProvidedAcls'];
+          $rights = [
+            'create'  => TRUE,
+            'move'    => TRUE,
+            'remove'  => TRUE,
+            'read'    => TRUE,
+            'write'   => TRUE,
+            'self'    => $pInfos['plSelfModify'],
+          ];
+        }
+        $aclObjects[$key] = [
+          'name'      => $pInfos['plShortName'],
+          'tname'     => preg_replace('/[^a-z0-9]/i', '_', $key),
+          'acl'       => $this->aclContents[$key],
+          'globalAcl' => $this->aclContents[$key][0],
+          'expand'    => ((count($this->aclContents[$key]) > 1) || !empty($this->aclContents[$key][0])),
+          'attrs'     => $attrs,
+          'rights'    => $rights,
+        ];
       }
       if ($this->aclObject == 'all') {
-        $aclObjects['all'] = _('All objects in current subtree');
+        /* Create sub acl if it does not exist */
+        $key = 'all';
+        if (!isset($this->aclContents[$key])) {
+          $this->aclContents[$key] = [];
+        }
+        if (!isset($this->aclContents[$key][0])) {
+          $this->aclContents[$key][0] = '';
+        }
+        $aclObjects['all'] = [
+          'name'      => _('All objects in current subtree'),
+          'tname'     => preg_replace('/[^a-z0-9]/i', '_', $key),
+          'acl'       => $this->aclContents[$key],
+          'globalAcl' => $this->aclContents[$key][0],
+          'expand'    => ((count($this->aclContents[$key]) > 1) || !empty($this->aclContents[$key][0])),
+          'attrs'     => [],
+          'rights'    => [
+            'create'  => TRUE,
+            'move'    => TRUE,
+            'remove'  => TRUE,
+            'read'    => TRUE,
+            'write'   => TRUE,
+            'self'    => FALSE,
+          ],
+        ];
+      }
+      if (isset($aclObjects[$this->aclObject.'/template'])) {
+        /* Move template to the end */
+        $data = $aclObjects[$this->aclObject.'/template'];
+        unset($aclObjects[$this->aclObject.'/template']);
+        $aclObjects[$this->aclObject.'/template'] = $data;
+      }
+      if (isset($aclObjects[$this->aclObject.'/archivedObject'])) {
+        /* Move archivedObject to the end */
+        $data = $aclObjects[$this->aclObject.'/archivedObject'];
+        unset($aclObjects[$this->aclObject.'/archivedObject']);
+        $aclObjects[$this->aclObject.'/archivedObject'] = $data;
       }
       $smarty->assign('headline', sprintf(_('Edit ACL for "%s"'), $config->data['CATEGORIES'][$this->aclObject]['description']));
-      $smarty->assign('aclEdition', $this->buildAclSelector($aclObjects));
+      $smarty->assign('aclObjects', $aclObjects);
     }
 
     /* Show main page */
@@ -223,196 +311,4 @@ class ACLEditionDialog extends GenericDialog
 
     return $smarty->fetch(get_template_path('acleditiondialog.tpl', dirname(__FILE__)));
   }
-
-  /*!
-   * \brief Create a checkbox
-   *
-   * \param String $name Name of the acl checkbox
-   * \param String $text Label for the checkbox
-   * \param boolean $state
-   *
-   * \return String containing checkbox
-   */
-  function mkchkbx ($name, $text, $state = FALSE)
-  {
-    $tname = preg_replace('/[^a-z0-9]/i', '_', $name);
-    return  '<input id="acl_'.$tname.'" type="checkbox" name="acl_'.$name.'"'.($state ? ' checked="checked"' : '').'/>'."\n".
-            '<label for="acl_'.$tname.'">'.$text.'</label>'."\n";
-  }
-
-  /*!
-   * \brief Make a read and write box
-   *
-   * \param String $name Name of the box
-   * \param String $state
-   *
-   * \return String containing checkbox
-   */
-  function mkrwbx ($name, $state = '')
-  {
-    $rstate = (preg_match('/r/', $state) ? ' checked="checked"' : '');
-    $wstate = (preg_match('/w/', $state) ? ' checked="checked"' : '');
-    $tname  = preg_replace('/[^a-z0-9]/i', '_', $name);
-
-    return  '<input id="acl_'.$tname.'_r" type="checkbox" name="acl_'.$name.'_r"'.$rstate.'/>'."\n".
-            '<label for="acl_'.$tname.'_r">'._('read').'</label>'."\n".
-            '<input id="acl_'.$tname.'_w" type="checkbox" name="acl_'.$name.'_w"'.$wstate.'/>'."\n".
-            '<label for="acl_'.$tname.'_w">'._('write').'</label>'."\n";
-  }
-
-  /*!
-   * \brief Build an acl selector form
-   *
-   * \param Array $list
-   *
-   * \return the acl selector form
-   */
-  function buildAclSelector ($list)
-  {
-    $display  = '<input type="hidden" name="acl_dummy_0_0_0" value="1"/>';
-    $cols     = 3;
-    $tmp      = session::get('plist');
-    $plist    = $tmp->info;
-    asort($plist);
-
-    /* Add select all/none buttons */
-    $style = 'style="width:100px;"';
-
-    $display .= '<input '.$style.' type="button" name="toggle_all_create" onClick="acl_toggle_all(\'_0_c$\');" value="Toggle C"/>';
-    $display .= '<input '.$style.' type="button" name="toggle_all_move"   onClick="acl_toggle_all(\'_0_m$\');" value="Toggle M"/>';
-    $display .= '<input '.$style.' type="button" name="toggle_all_remove" onClick="acl_toggle_all(\'_0_d$\');" value="Toggle D"/> - ';
-    $display .= '<input '.$style.' type="button" name="toggle_all_read"   onClick="acl_toggle_all(\'_0_r$\');" value="Toggle R"/>';
-    $display .= '<input '.$style.' type="button" name="toggle_all_write"  onClick="acl_toggle_all(\'_0_w$\');" value="Toggle W"/> - ';
-
-    $display .= '<input '.$style.' type="button" name="toggle_all_sub_read"  onClick="acl_toggle_all(\'[^0]_r$\');" value="R+"/>';
-    $display .= '<input '.$style.' type="button" name="toggle_all_sub_write"  onClick="acl_toggle_all(\'[^0]_w$\');" value="W+"/>';
-
-    $display .= '<br/>';
-
-    $style    = 'style="width:50px;"';
-    $display  .= '<input '.$style.' type="button" name="set_true_all_create"  onClick="acl_set_all(\'_0_c$\',true);"  value="C+"/>';
-    $display  .= '<input '.$style.' type="button" name="set_false_all_create" onClick="acl_set_all(\'_0_c$\',false);" value="C-"/>';
-    $display  .= '<input '.$style.' type="button" name="set_true_all_move"    onClick="acl_set_all(\'_0_m$\',true);"  value="M+"/>';
-    $display  .= '<input '.$style.' type="button" name="set_false_all_move"   onClick="acl_set_all(\'_0_m$\',false);" value="M-"/>';
-    $display  .= '<input '.$style.' type="button" name="set_true_all_remove"  onClick="acl_set_all(\'_0_d$\',true);"  value="D+"/>';
-    $display  .= '<input '.$style.' type="button" name="set_false_all_remove" onClick="acl_set_all(\'_0_d$\',false);" value="D-"/> - ';
-    $display  .= '<input '.$style.' type="button" name="set_true_all_read"    onClick="acl_set_all(\'_0_r$\',true);"  value="R+"/>';
-    $display  .= '<input '.$style.' type="button" name="set_false_all_read"   onClick="acl_set_all(\'_0_r$\',false);" value="R-"/>';
-    $display  .= '<input '.$style.' type="button" name="set_true_all_write"   onClick="acl_set_all(\'_0_w$\',true);"  value="W+"/>';
-    $display  .= '<input '.$style.' type="button" name="set_false_all_write"  onClick="acl_set_all(\'_0_w$\',false);" value="W-"/> - ';
-
-    $display .= '<input '.$style.' type="button" name="set_true_all_read"   onClick="acl_set_all(\'[^0]_r$\',true);"  value="R+"/>';
-    $display .= '<input '.$style.' type="button" name="set_false_all_read"  onClick="acl_set_all(\'[^0]_r$\',false);" value="R-"/>';
-    $display .= '<input '.$style.' type="button" name="set_true_all_write"  onClick="acl_set_all(\'[^0]_w$\',true);"  value="W+"/>';
-    $display .= '<input '.$style.' type="button" name="set_false_all_write" onClick="acl_set_all(\'[^0]_w$\',false);" value="W-"/>';
-
-    $list = acl::sort_by_priority($list);
-    foreach ($list as $key => $name) {
-      /* Create sub acl if it does not exist */
-      if (!isset($this->aclContents[$key])) {
-        $this->aclContents[$key] = [];
-      }
-      if (!isset($this->aclContents[$key][0])) {
-        $this->aclContents[$key][0] = '';
-      }
-
-      $currentAcl = $this->aclContents[$key];
-
-      /* Get the overall plugin acls */
-      $overall_acl = '';
-      if (isset($currentAcl[0])) {
-        $overall_acl = $currentAcl[0];
-      }
-
-      // Detect configured plugins
-      $expand = ((count($currentAcl) > 1) || ($currentAcl[0] != ''));
-
-      /* Object header */
-      $tname = preg_replace('/[^a-z0-9]/i', '_', $key);
-
-      if ($expand) {
-        $back_color = '#C8C8FF';
-      } else {
-        $back_color = '#C8C8C8';
-      }
-
-      $display .= '<table style="width:100%;border:1px solid #A0A0A0;border-spacing:0;border-collapse:collapse;">'."\n".
-                  '  <tr>'."\n".
-                  '    <td style="background-color:'.$back_color.';height:1.8em;" colspan='.($cols - 1).'>'.
-                        '<b>'._('Object').': '.$name.'</b>'.
-                      '</td>'."\n".
-                  '    <td align="right" style="background-color:'.$back_color.';height:1.8em;">'."\n".
-                  '    <input id="show'.$tname.'" type="button" onclick="$(\''.$tname.'\').toggle();" value="'._('Show/hide advanced settings').'"/></td>'."\n".
-                  '  </tr>'."\n";
-
-      /* Generate options */
-      $spc      = '&nbsp;&nbsp;';
-      $options   = $this->mkchkbx($key.'_0_c', _('Create objects'),  preg_match('/c/', $overall_acl)).$spc;
-      $options  .= $this->mkchkbx($key.'_0_m', _('Move objects'),    preg_match('/m/', $overall_acl)).$spc;
-      $options  .= $this->mkchkbx($key.'_0_d', _('Remove objects'),  preg_match('/d/', $overall_acl)).$spc;
-      if ($plist[preg_replace('%^.*/%', '', $key)]['plSelfModify']) {
-        $options .= $this->mkchkbx($key.'_0_s', _('Grant permission to owner'), preg_match('/s/', $overall_acl)).$spc;
-      }
-
-      /* Global options */
-      $more_options  = $this->mkchkbx($key.'_0_r', _('read'),  preg_match('/r/', $overall_acl)).$spc;
-      $more_options .= $this->mkchkbx($key.'_0_w', _('write'), preg_match('/w/', $overall_acl));
-
-      $display .= '  <tr>'."\n".
-                  '    <td style="background-color:#E0E0E0" colspan="'.($cols - 1).'">'.$options.'</td>'."\n".
-                  '    <td style="background-color:#D4D4D4">&nbsp;'._('Complete object').': '.$more_options.'</td>'."\n".
-                  '  </tr>'."\n";
-
-      /* Walk through the list of attributes */
-      $cnt    = 1;
-      $splist = $plist[preg_replace('%^.*/%', '', $key)]['plProvidedAcls'];
-      $display .= '  <tr id="tr_'.$tname.'" style="vertical-align:top;height:0px;">'."\n".
-                  '    <td colspan="'.$cols.'">'."\n".
-                  '      <div id="'.$tname.'" style="overflow:hidden; display:none;vertical-align:top;width:100%;">'."\n".
-                  '        <table style="width:100%;border-collapse: collapse;" border="1">'."\n";
-
-      foreach ($splist as $attr => $dsc) {
-        /* Skip pl* attributes, they are internal... */
-        if (preg_match('/^pl[A-Z]+.*$/', $attr)) {
-          continue;
-        }
-
-        /* Open table row */
-        if ($cnt == 1) {
-          $display .= '  <tr>'."\n";
-        }
-
-        /* Close table row */
-        if ($cnt == $cols) {
-          $cnt  = 1;
-          $end  = '  </tr>'."\n";
-        } else {
-          $cnt++;
-          $end  = '';
-        }
-
-        /* Collect list of attributes */
-        $state = '';
-        if (isset($currentAcl[$attr])) {
-          $state = $currentAcl[$attr];
-        }
-        $display .= '    <td style="border:1px solid #A0A0A0;width:'.(int)(100 / $cols).'%">'."\n".
-                    '      <b>'.$dsc.'</b> ('.$attr.')<br/>'.$this->mkrwbx($key.'_'.$attr, $state).'</td>'.$end."\n";
-      }
-
-      /* Fill missing td's if needed */
-      if ((--$cnt != $cols) && ($cnt != 0)) {
-        $display .= str_repeat('    <td style="border:1px solid #A0A0A0;width:'.(int)(100 / $cols).'%">&nbsp;</td>'."\n", $cols - $cnt);
-      }
-
-      $display .= '        </table>'."\n".
-                  '      </div>'."\n".
-                  '    </td>'."\n".
-                  '  </tr>'."\n";
-
-      $display .= '</table><br/>'."\n";
-    }
-
-    return $display;
-  }
 }
diff --git a/plugins/admin/aclrole/class_aclRole.inc b/plugins/admin/aclrole/class_aclRole.inc
index eda3cd0dee4913ceed2bf91a60363b39ca758ae8..64d9ecb51cd6ab7e57c20bfc0449a4ff6ae0fd1c 100644
--- a/plugins/admin/aclrole/class_aclRole.inc
+++ b/plugins/admin/aclrole/class_aclRole.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -69,26 +69,25 @@ class ACLsAttribute extends DialogOrderedArrayAttribute
 
 class aclRole extends simplePlugin
 {
-  var $objectclasses  = ['top','gosaRole'];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Role'),
       'plDescription' => _('Access control roles'),
+      'plObjectClass' => ['gosaRole'],
       'plObjectType'  => ['aclRole' => [
         'aclCategory' => 'acl',
         'name'        => _('ACL role'),
-        'filter'      => 'objectClass=gosaRole',
         'ou'          => get_ou('aclRoleRDN'),
         'icon'        => 'geticon.php?context=categories&icon=acl&size=16',
       ]],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'properties' => [
@@ -118,4 +117,3 @@ class aclRole extends simplePlugin
     ];
   }
 }
-?>
diff --git a/plugins/admin/aclrole/class_aclRoleManagement.inc b/plugins/admin/aclrole/class_aclRoleManagement.inc
index e46f80a23cc2d2e338858c67641a109949214123..b17c194bee2c50f882b2dc09f047b6d379e5a69f 100644
--- a/plugins/admin/aclrole/class_aclRoleManagement.inc
+++ b/plugins/admin/aclrole/class_aclRoleManagement.inc
@@ -18,17 +18,9 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class aclRoleManagement extends simpleManagement
+class aclRoleManagement extends management
 {
-  // Tab definition
-  protected $objectTypes  = ['aclRole'];
-
-  protected $departmentBrowser      = TRUE;
-  protected $departmentRootVisible  = TRUE;
-  protected $baseMode               = TRUE;
-
-  /* Return plugin informations for acl handling  */
-  public static function plInfo ()
+  public static function plInfo (): array
   {
     return [
       'plShortName'   => _('ACL roles'),
@@ -44,4 +36,3 @@ class aclRoleManagement extends simpleManagement
     ];
   }
 }
-?>
diff --git a/plugins/admin/aclrole/main.inc b/plugins/admin/aclrole/main.inc
deleted file mode 100644
index 54b1b9f317827aae84e435fb1c72f9fa31e62d2c..0000000000000000000000000000000000000000
--- a/plugins/admin/aclrole/main.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-simpleManagement::mainInc('aclRoleManagement');
-?>
diff --git a/plugins/admin/departments/class_country.inc b/plugins/admin/departments/class_country.inc
index e6e7a0c366b452ffdcfe47efb90f1fc4f9c06fc5..a1baf7bac31945036be6229d812cc5084937b840 100644
--- a/plugins/admin/departments/class_country.inc
+++ b/plugins/admin/departments/class_country.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2016  FusionDirectory
 
   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
@@ -20,18 +20,19 @@
 
 class country extends department
 {
-  static $namingAttr  = "c";
-  var $structuralOC   = ["country"];
+  static protected $namingAttr  = 'c';
+  protected $structuralOC       = ['country'];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Country'),
       'plDescription' => _('Country'),
+      'plObjectClass' => ['gosaDepartment'],
+      'plFilter'      => '(&(objectClass=country)(objectClass=gosaDepartment))',
       'plObjectType'  => ['country' => [
         'aclCategory' => 'department',
         'name'        => _('Country'),
-        'filter'      => '(&(objectClass=country)(objectClass=gosaDepartment))',
         'ou'          => '',
         'icon'        => 'geticon.php?context=types&icon=country&size=16',
         'tabClass'    => 'deptabs',
@@ -40,12 +41,13 @@ class country extends department
       'plForeignKeys'  => [
         'manager' => ['user','dn','manager=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     $attributesInfo = parent::getDepartmentAttributesInfo(_('country'));
     unset($attributesInfo['location']);
@@ -61,4 +63,3 @@ class country extends department
     return $attributesInfo;
   }
 }
-?>
diff --git a/plugins/admin/departments/class_dcObject.inc b/plugins/admin/departments/class_dcObject.inc
index d60c252c5c79cd828deb16be1d857233fc251d07..ee8284755d61b0d76567a9d6e58d5135d95c4fb0 100644
--- a/plugins/admin/departments/class_dcObject.inc
+++ b/plugins/admin/departments/class_dcObject.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2106 FusionDirectory
 
   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
@@ -20,19 +20,18 @@
 
 class dcObject extends department
 {
-  static $namingAttr  = "dc";
-  var $objectclasses  = ["top", "dcObject", "gosaDepartment"];
-  var $structuralOC   = ["locality"];
+  static protected $namingAttr  = 'dc';
+  protected $structuralOC       = ['locality'];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Domain Component'),
       'plDescription' => _('Domain Component'),
+      'plObjectClass' => ['dcObject', 'gosaDepartment'],
       'plObjectType'  => ['dcObject' => [
         'aclCategory' => 'department',
         'name'        => _('Domain Component'),
-        'filter'      => '(&(objectClass=dcObject)(objectClass=gosaDepartment))',
         'ou'          => '',
         'icon'        => 'geticon.php?context=types&icon=dc&size=16',
         'tabClass'    => 'deptabs',
@@ -41,12 +40,13 @@ class dcObject extends department
       'plForeignKeys'  => [
         'manager' => ['user','dn','manager=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     $attributesInfo = parent::getDepartmentAttributesInfo(_('domain component'));
     unset($attributesInfo['location']);
@@ -54,4 +54,3 @@ class dcObject extends department
     return $attributesInfo;
   }
 }
-?>
diff --git a/plugins/admin/departments/class_department.inc b/plugins/admin/departments/class_department.inc
index d587b77ab02830a720b17a700498f54f956b4c0a..777b69529f650bb196ee3aea426e28e302111777 100644
--- a/plugins/admin/departments/class_department.inc
+++ b/plugins/admin/departments/class_department.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -21,38 +21,37 @@
 
 class department extends simplePlugin
 {
-  static $namingAttr = 'ou';
+  static protected $namingAttr  = 'ou';
+  protected $structuralOC       = ['organizationalUnit'];
 
-  /* Do not append the structural object classes here, they are added dynamically in the constructor */
-  var $objectclasses  = ["top", "gosaDepartment"];
-  var $structuralOC   = ["organizationalUnit"];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Department'),
       'plDescription' => _('Departments'),
+      /* Do not append the structural object classes here, they are added dynamically in the constructor */
+      'plObjectClass' => ['gosaDepartment'],
+      'plFilter'      => '(&(objectClass=organizationalUnit)(objectClass=gosaDepartment))',
       'plCategory'    => ['department' => ['objectClass' => 'gosaDepartment', 'description' => _('Departments')]],
-      'plObjectType'  =>
-        [
-          'department' => [
-            'name'      => _('Department'),
-            'filter'    => '(&(objectClass=organizationalUnit)(objectClass=gosaDepartment))',
-            'ou'        => '',
-            'icon'      => 'geticon.php?context=places&icon=folder&size=16',
-            'tabClass'  => 'deptabs',
-            'mainAttr'  => static::$namingAttr,
-          ]
-        ],
-      'plForeignKeys'  => [
+      'plObjectType'  => [
+        'department' => [
+          'name'      => _('Department'),
+          'ou'        => '',
+          'icon'      => 'geticon.php?context=places&icon=folder&size=16',
+          'tabClass'  => 'deptabs',
+          'mainAttr'  => static::$namingAttr,
+        ]
+      ],
+      'plForeignKeys' => [
         'manager' => ['user','dn','manager=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return static::getDepartmentAttributesInfo(_('department'));
   }
@@ -124,28 +123,28 @@ class department extends simplePlugin
   function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
   {
     global $config;
+
+    parent::__construct($dn, $object, $parent, $mainTab);
+
     /* Add the default structural object class if this is a new entry */
     $ldap = $config->get_ldap_link();
     $ldap->cd($config->current['BASE']);
-    if ($dn == "" || $dn == "new" || !$ldap->dn_exists($dn)) {
+    if (($dn == '') || ($dn == 'new') || !$ldap->dn_exists($dn)) {
       $this->objectclasses = array_merge($this->structuralOC, $this->objectclasses);
     } else {
-      $ldap->cat($dn, ["structuralObjectClass"]);
+      $ldap->cat($dn, ['structuralObjectClass']);
       $attrs = $ldap->fetch();
       if (isset($attrs['structuralObjectClass']['count'])) {
         for ($i = 0; $i < $attrs['structuralObjectClass']['count']; $i++) {
           $this->objectclasses[] = $attrs['structuralObjectClass'][$i];
         }
       } else {
-        /* Could not detect structural object class for this object, fall back to the default
-         */
+        /* Could not detect structural object class for this object, fall back to the default */
         $this->objectclasses = array_merge($this->structuralOC, $this->objectclasses);
       }
     }
     $this->objectclasses = array_unique($this->objectclasses);
 
-    parent::__construct($dn, $object, $parent, $mainTab);
-
     $categoriesList = $config->get_cfg_value('DepartmentCategories', []);
 
     /* Insert current value to possibilities */
@@ -157,27 +156,27 @@ class department extends simplePlugin
       $this->attributesAccess['businessCategory']->setChoices($categoriesList);
     }
 
-    $this->attributesAccess[static::$namingAttr]->setUnique(TRUE);
+    $this->attributesAccess[static::$namingAttr]->setUnique('one');
   }
 
   /* Check values */
-  function check ()
+  function check (): array
   {
-    /* Call common method to give check the hook */
-    $message = parent::check();
+    $errors = parent::check();
 
     $namingAttr = static::$namingAttr;
 
-    if ($namingAttr == 'ou') {
-      if (tests::is_department_name_reserved($this->$namingAttr)) {
-        $message[] = msgPool::reserved(_('Name'));
-      }
+    if (($namingAttr == 'ou') && tests::is_department_name_reserved($this->$namingAttr)) {
+      $errors[] = new SimplePluginCheckError(
+        $this,
+        msgPool::reserved(_('Name'))
+      );
     }
 
-    return $message;
+    return $errors;
   }
 
-  function get_allowed_bases ()
+  function get_allowed_bases (): array
   {
     /* Hide all departments, that are subtrees of this department */
     $bases = parent::get_allowed_bases();
@@ -191,7 +190,7 @@ class department extends simplePlugin
     return $bases;
   }
 
-  function prepare_save ()
+  function prepare_save (): array
   {
     if (static::$namingAttr != 'ou') {
       $this->attributesAccess['ou']->setValue($this->attributesAccess[static::$namingAttr]->getValue());
@@ -199,4 +198,3 @@ class department extends simplePlugin
     return parent::prepare_save();
   }
 }
-?>
diff --git a/plugins/admin/departments/class_departmentManagement.inc b/plugins/admin/departments/class_departmentManagement.inc
index 4334220c31b269bf5c4b4c59447be59f661fa3cf..aaa8764dc8ca149ab75b6022c40975c46e21133a 100644
--- a/plugins/admin/departments/class_departmentManagement.inc
+++ b/plugins/admin/departments/class_departmentManagement.inc
@@ -1,6 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2003  Cajus Pollmeier
   Copyright (C) 2011-2018  FusionDirectory
 
   This program is free software; you can redistribute it and/or modify
@@ -18,16 +19,11 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class departmentManagement extends simpleManagement
+class departmentManagement extends management
 {
-  protected $objectTypes;
+  public static $skipSnapshots  = TRUE;
 
-  protected $departmentBrowser      = FALSE;
-  protected $departmentRootVisible  = FALSE;
-  protected $baseMode               = TRUE;
-
-  /* Return plugin information for acl handling */
-  static function plInfo ()
+  public static function plInfo (): array
   {
     return [
       'plShortName'   => _('Departments'),
@@ -42,17 +38,8 @@ class departmentManagement extends simpleManagement
     ];
   }
 
-  function __construct ()
-  {
-    $this->objectTypes  = static::getDepartmentTypes();
-    $this->listXMLPath  = get_template_path('dep-list.xml', TRUE, dirname(__FILE__));
-    parent::__construct();
-    $this->headpage->registerElementFilter("depLabel", "departmentManagement::filterDepLabel");
-    $this->registerAction("open", "openEntry");
-  }
-
   // Overriden save handler - We've to take care about the department tagging here.
-  protected function saveChanges ()
+  function saveChanges ()
   {
     $str = parent::saveChanges();
     if (!empty($str)) {
@@ -65,48 +52,28 @@ class departmentManagement extends simpleManagement
   function refreshDeps ()
   {
     global $config, $ui;
-    $config->get_departments();
-    $config->make_idepartments();
+    $config->resetDepartmentCache();
     $ui->reset_acl_cache();
-    $headpage     = $this->getHeadpage();
-    $headpage->refreshBasesList();
-  }
-
-  // An action handler which enables to switch into deparmtment by clicking the names.
-  function openEntry ($action, $entry)
-  {
-    $headpage = $this->getHeadpage();
-    $headpage->setBase(array_pop($entry));
+    $this->listing->refreshBasesList();
   }
 
   // Overridden remove request method - Avoid removal of the ldap base.
-  protected function removeEntryRequested ($action, array $target, array $all)
+  public function removeRequested (array $action)
   {
     global $config;
-    $target = array_remove_entries([$config->current['BASE']], $target);
-    return parent::removeEntryRequested($action, $target, $all);
-  }
-
-  // A filter which allows to open a department by clicking on the departments name.
-  static function filterDepLabel ($row, $dn, $params, $ou, $pid, $base)
-  {
-    $ou = $ou[0];
-    if ($dn == $base) {
-      $ou = '.';
-    }
-    return '<a href="?plug='.$_GET['plug'].'&amp;PID='.$pid.'&amp;act=listing_open_'.$row.'" title="'.htmlentities($dn, ENT_COMPAT, 'UTF-8').'">'.htmlentities($ou, ENT_COMPAT, 'UTF-8').'</a>';
+    $action['targets'] = array_remove_entries([$config->current['BASE']], $action['targets']);
+    return parent::removeRequested($action);
   }
 
-  // Finally remove departments and update departmnet browsers
-  function removeEntryConfirmed ($action, array $target, array $all)
+  // Finally remove departments and update department browsers
+  public function removeConfirmed (array $action)
   {
-    parent::removeEntryConfirmed($action, $target, $all);
+    parent::removeConfirmed($action);
     $this->refreshDeps();
   }
 
-  static function getDepartmentTypes ()
+  static function getDepartmentTypes (): array
   {
     return ['DEPARTMENT','COUNTRY','DCOBJECT','DOMAIN','LOCALITY','ORGANIZATION'];
   }
 }
-?>
diff --git a/plugins/admin/departments/class_domain.inc b/plugins/admin/departments/class_domain.inc
index 552bd2f3045734e71a73449cf8f4e948d13b72b7..85d7a2813a648ea79f0f755f86f9009fd8d4fe0c 100644
--- a/plugins/admin/departments/class_domain.inc
+++ b/plugins/admin/departments/class_domain.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2016  FusionDirectory
 
   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
@@ -20,19 +20,18 @@
 
 class domain extends department
 {
-  static $namingAttr  = "dc";
-  var $objectclasses  = ["top", "domain", "gosaDepartment"];
-  var $structuralOC   = ["domain"];
+  static protected $namingAttr  = 'dc';
+  protected $structuralOC       = ['domain'];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Domain'),
       'plDescription' => _('Domain'),
+      'plObjectClass' => ['domain', 'gosaDepartment'],
       'plObjectType'  => ['domain' => [
         'aclCategory' => 'department',
         'name'        => _('Domain'),
-        'filter'      => '(&(objectClass=domain)(objectClass=gosaDepartment))',
         'ou'          => '',
         'icon'        => 'geticon.php?context=types&icon=domain&size=16',
         'tabClass'    => 'deptabs',
@@ -41,12 +40,13 @@ class domain extends department
       'plForeignKeys'  => [
         'manager' => ['user','dn','manager=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     $attributesInfo = parent::getDepartmentAttributesInfo(_('domain'));
     unset($attributesInfo['location']);
@@ -54,4 +54,3 @@ class domain extends department
     return $attributesInfo;
   }
 }
-?>
diff --git a/plugins/admin/departments/class_locality.inc b/plugins/admin/departments/class_locality.inc
index 48ae1be7f462c502a80339395f63171ff2b58a89..b479f728a4711acb131199e3d1a063a6f3055748 100644
--- a/plugins/admin/departments/class_locality.inc
+++ b/plugins/admin/departments/class_locality.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2016  FusionDirectory
 
   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
@@ -20,19 +20,19 @@
 
 class locality extends department
 {
-  static $namingAttr  = "l";
-  var $objectclasses  = ["top", "gosaDepartment"];
-  var $structuralOC   = ["locality"];
+  static protected $namingAttr  = 'l';
+  protected $structuralOC       = ['locality'];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Locality'),
       'plDescription' => _('Locality'),
+      'plObjectClass' => ['gosaDepartment'],
+      'plFilter'      => '(&(!(objectClass=dcObject))(objectClass=locality)(objectClass=gosaDepartment))',
       'plObjectType'  => ['locality' => [
         'aclCategory' => 'department',
         'name'        => _('Locality'),
-        'filter'      => '(&(!(objectClass=dcObject))(objectClass=locality)(objectClass=gosaDepartment))',
         'ou'          => '',
         'icon'        => 'geticon.php?context=types&icon=locality&size=16',
         'tabClass'    => 'deptabs',
@@ -41,12 +41,13 @@ class locality extends department
       'plForeignKeys'  => [
         'manager' => ['user','dn','manager=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     $attributesInfo = parent::getDepartmentAttributesInfo(_('locality'));
     unset($attributesInfo['location']);
@@ -54,4 +55,3 @@ class locality extends department
     return $attributesInfo;
   }
 }
-?>
diff --git a/plugins/admin/departments/class_organization.inc b/plugins/admin/departments/class_organization.inc
index 2558fb9d2e53c235c980ddbdedee238ee2a656de..5b8cab3acf2f51053c58a27ba6e00a47caa6e12b 100644
--- a/plugins/admin/departments/class_organization.inc
+++ b/plugins/admin/departments/class_organization.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+  Copyright (C) 2013-2016  FusionDirectory
 
   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
@@ -20,19 +20,19 @@
 
 class organization extends department
 {
-  static $namingAttr  = "o";
-  var $objectclasses  = ["top", "gosaDepartment"];
-  var $structuralOC   = ["organization"];
+  static protected $namingAttr  = 'o';
+  protected $structuralOC       = ['organization'];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Organization'),
       'plDescription' => _('Organization'),
+      'plObjectClass' => ['gosaDepartment'],
+      'plFilter'      => '(&(objectClass=organization)(objectClass=gosaDepartment))',
       'plObjectType'  => ['organization' => [
         'aclCategory' => 'department',
         'name'        => _('Organization'),
-        'filter'      => '(&(objectClass=organization)(objectClass=gosaDepartment))',
         'ou'          => '',
         'icon'        => 'geticon.php?context=types&icon=organization&size=16',
         'tabClass'    => 'deptabs',
@@ -41,14 +41,14 @@ class organization extends department
       'plForeignKeys'  => [
         'manager' => ['user','dn','manager=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls' => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return parent::getDepartmentAttributesInfo(_('organization'));
   }
 }
-?>
diff --git a/plugins/admin/departments/dep-list.xml b/plugins/admin/departments/dep-list.xml
deleted file mode 100644
index 86cf577d32f8e615f7eb1968b61b585b9aec9633..0000000000000000000000000000000000000000
--- a/plugins/admin/departments/dep-list.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<list>
-  <definition>
-    <baseMode>true</baseMode>
-    <multiSelect>true</multiSelect>
-    <template>simple-list.tpl</template>
-    <module>departments</module>
-    <label>List of departments</label>
-    <defaultSortColumn>1</defaultSortColumn>
-  </definition>
-
-  <table>
-    <layout>|20px;c|||70px;r|</layout>
-
-    <column>
-      <value>%{filter:objectType(row,dn)}</value>
-    </column>
-
-    <column>
-      <label>Department</label>
-      <sortAttribute>ou</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:depLabel(row,dn,"%s",ou,pid,base)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Description</label>
-      <sortAttribute>description</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:depLabel(row,dn,"%s",description,pid,base)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Actions</label>
-      <value>%{filter:actions(dn,row,objectClass)}</value>
-    </column>
-
-  </table>
-
-  <actionmenu>
-
-    <action>
-      <type>sub</type>
-      <image>geticon.php?context=actions&amp;icon=document-new&amp;size=16</image>
-      <label>Create</label>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>exporter</type>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <label>Remove</label>
-    </action>
-
-  </actionmenu>
-
-  <actiontriggers snapshot="false" copypaste="false">
-
-    <action>
-      <name>edit</name>
-      <type>entry</type>
-      <nospan></nospan>
-      <image>geticon.php?context=actions&amp;icon=document-edit&amp;size=16</image>
-      <label>Edit</label>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <nospan></nospan>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <acl>department[d]</acl>
-      <label>Remove</label>
-    </action>
-
-  </actiontriggers>
-
-</list>
diff --git a/plugins/admin/departments/tabs_department.inc b/plugins/admin/departments/tabs_department.inc
index a3ee8550b5f9a1e319e166f14dc9f7e3c9759167..2f1d728c16a02ed6c639783dbda3b996f4bb5440 100644
--- a/plugins/admin/departments/tabs_department.inc
+++ b/plugins/admin/departments/tabs_department.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2003  Cajus Pollmeier
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -26,10 +27,8 @@ class deptabs extends simpleTabs
 
     /* Update department cache */
     global $config;
-    $config->get_departments();
-    $config->make_idepartments();
+    $config->resetDepartmentCache();
 
     return $errors;
   }
 }
-?>
diff --git a/plugins/admin/groups/class_GroupContentColumn.inc b/plugins/admin/groups/class_GroupContentColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..1731c6274e87a4933e6a7c64ef0a93e5129ebc0e
--- /dev/null
+++ b/plugins/admin/groups/class_GroupContentColumn.inc
@@ -0,0 +1,56 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2017-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column showing the types of the member objects
+ */
+class GroupContentColumn extends Column
+{
+  function renderCell (ListingEntry $entry): string
+  {
+    global $config;
+
+    if (strtolower($entry->getTemplatedType()) == 'ogroup') {
+      $types = preg_replace('/[^a-z]/i', '', implode('', $this->getAttributeValues($entry)));
+    } else {
+      $types = 'U';
+    }
+
+    $result = '';
+    for ($i = 0; $i < strlen($types); $i++) {
+      if ($types[$i] == 'I') {
+        continue;
+      }
+      try {
+        $infos  = objects::infos(ogroup::$objectTypes[$types[$i]]);
+        $result .= '<img src="'.htmlescape($infos['icon']).'"'.
+                    ' alt="'.htmlescape($infos['name']).'"'.
+                    ' title="'.htmlescape($infos['name']).'"/>';
+      } catch (NonExistingObjectTypeException $e) {
+        continue;
+      }
+    }
+    if ($result == '') {
+      return '&nbsp;';
+    }
+    return $result;
+  }
+}
diff --git a/plugins/admin/groups/class_GroupContentFilterElement.inc b/plugins/admin/groups/class_GroupContentFilterElement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e2289fcae4d3a4af7f7f90985855ccfc74b31610
--- /dev/null
+++ b/plugins/admin/groups/class_GroupContentFilterElement.inc
@@ -0,0 +1,92 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2017-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Filter on member types
+ */
+class GroupContentFilterElement extends FilterElement
+{
+  protected $types;
+
+  public function __construct (managementFilter $parent)
+  {
+    global $config;
+
+    parent::__construct($parent);
+
+    $this->types = [];
+    foreach (ogroup::$objectTypes as $key => $type) {
+      try {
+        $infos = objects::infos($type);
+        $this->types[$type] = [
+          'filter'  => '(gosaGroupObjects=*'.$key.'*)',
+          'infos'   => $infos,
+          'checked' => FALSE,
+        ];
+      } catch (NonExistingObjectTypeException $e) {
+        continue;
+      }
+    }
+  }
+
+  public function update ()
+  {
+    foreach ($this->types as $type => &$infos) {
+      $infos['checked'] = isset($_POST['filter_member_'.$type]);
+    }
+    unset($infos);
+  }
+
+  public function render (): string
+  {
+    $inputs = [];
+    foreach ($this->types as $type => $infos) {
+      $inputs['filter_member_'.$type] = [
+        'name'    => $infos['infos']['name'],
+        'desc'    => (isset($infos['infos']['description']) ? $infos['infos']['description'] : $infos['infos']['name']).' '.$infos['filter'],
+        'icon'    => (isset($infos['infos']['icon']) ? $infos['infos']['icon'] : NULL),
+        'checked' => $infos['checked'],
+      ];
+    }
+    $smarty = get_smarty();
+    $smarty->assign('NAME',   _('Members'));
+    $smarty->assign('INPUTS', $inputs);
+    return $smarty->fetch(get_template_path('management/filter-element.tpl'));
+  }
+
+  public function getFilters (string $type, array &$filters): bool
+  {
+    if (strtoupper($type) == 'OGROUP') {
+      foreach ($this->types as $type => $infos) {
+        if ($infos['checked']) {
+          $filters[] = $infos['filter'];
+        }
+      }
+    } elseif (!$this->types['user']['checked']) {
+      /* Skip POSIX groups and roles if users are unchecked and at least one type is checked */
+      foreach ($this->types as $type => $infos) {
+        if ($infos['checked']) {
+          return TRUE;
+        }
+      }
+    }
+    return FALSE;
+  }
+}
diff --git a/plugins/admin/groups/class_GroupMembersAttribute.inc b/plugins/admin/groups/class_GroupMembersAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..e2aac3c29a1ec9ff19b6f3db44ce196425961412
--- /dev/null
+++ b/plugins/admin/groups/class_GroupMembersAttribute.inc
@@ -0,0 +1,98 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2003  Cajus Pollmeier
+  Copyright (C) 2011-2020  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class GroupMembersAttribute extends ObjectsAttribute
+{
+  protected $typeToCodeMap;
+  protected $childTypes = [];
+
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = [], $store_attr = 'dn', $display_attr = 'cn', array $filterElementDefinitions = NULL, $acl = '')
+  {
+    parent::__construct($label, $description, $ldapName, $required, array_values(ogroup::$objectTypes), $defaultValue, $store_attr, $display_attr, $filterElementDefinitions, $acl);
+    $this->typeToCodeMap = array_flip(array_map('strtolower', ogroup::$objectTypes));
+    $this->selectManagementParameters[2]['gosaGroupObjects'] = '*';
+  }
+
+  function getFilterBlackList ()
+  {
+    return [
+      'dn' => array_merge($this->getValue(), $this->plugin->used_workstations, [$this->plugin->dn])
+    ];
+  }
+
+  protected function typeToCode ($type): string
+  {
+    if ($type === FALSE) {
+      return 'I';
+    } else {
+      return $this->typeToCodeMap[strtolower($type)];
+    }
+  }
+
+  function listObjectTypes ()
+  {
+    /* Refresh types and displays */
+    $this->getDisplayValues();
+    /* Merge all object types codes and all child types */
+    $codes = array_unique(
+      array_merge(
+        array_map([$this, 'typeToCode'], array_unique($this->types)),
+        str_split(preg_replace('/[^a-z]/i', '', implode('', $this->childTypes)))
+      )
+    );
+    sort($codes);
+    return '['.implode('', $codes).']';
+  }
+
+  function getTypedValues ()
+  {
+    $values = $this->getValue();
+    $ret    = [];
+    foreach ($values as $i => $v) {
+      $code = $this->typeToCode($this->types[$i]);
+      if (!isset($ret[$code])) {
+        $ret[$code] = [];
+      }
+      $ret[$code][] = $v;
+    }
+
+    return $ret;
+  }
+
+  protected function fillDisplayValueFrom ($i, $attrs)
+  {
+    parent::fillDisplayValueFrom($i, $attrs);
+    $this->childTypes[$i] = ($attrs['gosaGroupObjects'][0] ?? '');
+  }
+
+  function setValue ($value)
+  {
+    $this->childTypes = [];
+    parent::setValue($value);
+  }
+
+  protected function removeValue ($row)
+  {
+    parent::removeValue($row);
+    unset($this->childTypes[$row]);
+  }
+}
diff --git a/plugins/admin/groups/class_groupManagement.inc b/plugins/admin/groups/class_groupManagement.inc
index 7e5fd118918c3c604c1342fb8aa2f9a37ffd9c50..816cead59daccc78596a7a47cef4e4d45ac6da02 100644
--- a/plugins/admin/groups/class_groupManagement.inc
+++ b/plugins/admin/groups/class_groupManagement.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -19,17 +20,22 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class groupManagement extends simpleManagement
+class groupManagement extends management
 {
-  protected $objectTypes  = ['ogroup', 'role', 'group'];
-
-  protected $autoFilter = FALSE;
-
   public static $skipTemplates = FALSE;
 
+  public static $columns = [
+    ['ObjectTypeColumn',   []],
+    ['LinkColumn',         ['attributes' => 'cn',                'label' => 'Name']],
+    ['LinkColumn',         ['attributes' => 'description',       'label' => 'Description']],
+    ['GroupContentColumn', ['attributes' => 'gosaGroupObjects',  'label' => 'Members']],
+    ['PropertiesColumn',   ['label' => 'Properties']],
+    ['ActionsColumn',      ['label' => 'Actions']],
+  ];
+
   protected $siActive = FALSE;
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Groups and roles'),
@@ -37,7 +43,7 @@ class groupManagement extends simpleManagement
       'plDescription' => _('Allows you to manage object groups, POSIX groups and roles'),
       'plIcon'        => 'geticon.php?context=types&icon=resource-group&size=48',
       'plSection'     => 'accounts',
-      'plManages'     => ['ogroup', 'group', 'role'],
+      'plManages'     => ['ogroup', 'group', 'role', 'dyngroup'],
       'plPriority'    => 20,
 
       'plProvidedAcls' => []
@@ -46,81 +52,60 @@ class groupManagement extends simpleManagement
 
   function __construct ()
   {
-    $this->filterXMLPath  = get_template_path('group-filter.xml', TRUE, dirname(__FILE__));
-    $this->listXMLPath    = get_template_path('group-list.xml', TRUE, dirname(__FILE__));
-
     // Check if we are able to communicate with Argonaut server
     if (class_available('supportDaemon') && class_available('argonautAction')) {
       $o = new supportDaemon();
       $this->siActive = $o->is_available();
     }
 
-    parent::__construct();
-
-    $this->headpage->registerElementFilter('filterProperties', 'groupManagement::filterProperties');
-  }
-
-  function configureFilter ()
-  {
-    parent::configureFilter();
-
-    if (!class_available('posixGroup')) {
-      /* If posix plugin is not installed, ignore posix filter */
-      $this->filter->elements['PRIMARY']['unset']  = '';
-      $this->filter->elements['PRIMARY']['set']    = '';
-    }
-    if (!class_available('mailAccount') || !class_available('posixGroup')) {
-      $this->filter->elements['MAIL']['unset']  = '';
-      $this->filter->elements['MAIL']['set']    = '';
-    }
-    if (!class_available('sambaAccount') || !class_available('posixGroup')) {
-      $this->filter->elements['SAMBA']['unset']  = '';
-      $this->filter->elements['SAMBA']['set']    = '';
-    }
-    if (static::$skipTemplates) {
-      $this->filter->elements['FILTERTEMPLATE']['unset']  = '';
-      $this->filter->elements['FILTERTEMPLATE']['set']    = '';
-    }
+    parent::__construct(
+      FALSE,
+      [
+        ['TabFilterElement',          []],
+        ['GroupContentFilterElement', []],
+      ]
+    );
   }
 
-  function configureHeadpage ()
+  protected function configureActions ()
   {
-    parent::configureHeadpage();
+    parent::configureActions();
 
-    // Register Daemon Events
     if ($this->siActive) {
-      $this->headpage->xmlData['actionmenu']['action'][4]['action'] = [];
-      $this->headpage->xmlData['actionmenu']['action'][5]['action'] = [];
+      $triggerActions   = [];
+      $scheduleActions  = [];
       $events = argonautEventTypes::get_event_types();
-      foreach ($events as $name => $data) {
-        $this->registerAction('T_'.$name, 'handleEvent');
-        $this->headpage->xmlData['actionmenu']['action'][4]['action'][] = [
-        'name' => 'T_'.$name,
-        'type' => 'entry',
-        'image' => $data['img'],
-        'label' => $data['name'],
-        ];
-        $this->registerAction('S_'.$name, 'handleEvent');
-        $this->headpage->xmlData['actionmenu']['action'][5]['action'][] = [
-        'name' => 'S_'.$name,
-        'type' => 'entry',
-        'image' => $data['img'],
-        'label' => $data['name'],
-        ];
+      foreach ($events as $name => $infos) {
+        $triggerActions[] = new Action(
+          'trigger_'.$name, $infos['name'], $infos['img'],
+          '*', 'handleEvent'
+        );
+        $scheduleActions[] = new Action(
+          'schedule_'.$name, $infos['name'], $infos['img'],
+          '*', 'handleEvent'
+        );
       }
-    } else {
-      unset($this->headpage->xmlData['actionmenu']['action'][3]);
-      unset($this->headpage->xmlData['actionmenu']['action'][4]);
-      unset($this->headpage->xmlData['actionmenu']['action'][5]);
-      $this->headpage->xmlData['actionmenu']['action'] = array_values($this->headpage->xmlData['actionmenu']['action']);
+      $this->registerAction(
+        new SubMenuAction(
+          'trigger', _('Trigger action'), 'geticon.php?context=types&icon=action&size=16',
+          $triggerActions
+        )
+      );
+      $this->registerAction(
+        new SubMenuAction(
+          'schedule', _('Schedule action'), 'geticon.php?context=actions&icon=task-schedule&size=16',
+          $scheduleActions
+        )
+      );
+      $this->actions['trigger']->setSeparator(TRUE);
+      $this->registerAction(new HiddenAction('saveEvent', 'saveEventDialog'));
     }
-    $this->registerAction('saveEvent', 'saveEventDialog');
   }
 
   /*! \brief    Handle Argonaut events
    *            All schedules and triggered events are handled here.
    */
-  function handleEvent ($action, array $target)
+  function handleEvent ($action)
   {
     global $config;
 
@@ -129,33 +114,39 @@ class groupManagement extends simpleManagement
     }
 
     // Detect whether this event is scheduled or triggered.
-    $triggered = TRUE;
-    if (preg_match('/^S_/', $action)) {
-      $triggered = FALSE;
-    }
-
-    // Detect triggered or scheduled actions
-    $headpage = $this->getHeadpage();
-    $event = preg_replace('/^[TS]_/', '', $action);
+    $triggered  = ($action['action'] == 'trigger');
+    $event      = $action['subaction'];
 
     // Now send FAI/Argonaut events here.
     $mac = [];
 
     // Collect target mac addresses
     $ldap = $config->get_ldap_link();
-    foreach ($target as $dn) {
-      $obj = $headpage->getEntry($dn);
-      if (isset($obj['member']['count'])) {
-        for ($i = 0; $i < $obj['member']['count']; $i++) {
-          $ldap->cat($obj['member'][$i]);
+    foreach ($action['targets'] as $dn) {
+      $obj = $this->listing->getEntry($dn);
+      if (isset($obj['member'])) {
+        foreach ($obj['member'] as $member) {
+          $ldap->cat($member, ['macAddress']);
           if ($attrs = $ldap->fetch()) {
             if (isset($attrs['macAddress'][0])) {
               $mac[] = $attrs['macAddress'][0];
             } else {
-              msg_dialog::display(_('Action canceled'), sprintf(_('System %s has no mac address defined, cannot trigger action'), $obj['member'][$i]), ERROR_DIALOG);
+              $error = new FusionDirectoryError(
+                htmlescape(sprintf(
+                  _('System %s has no mac address defined, cannot trigger action'),
+                  $member
+                ))
+              );
+              $error->display();
             }
           } else {
-            msg_dialog::display(_('Action canceled'), sprintf(_('Could not find system %s, cannot trigger action'), $obj['member'][$i]), ERROR_DIALOG);
+            $error = new FusionDirectoryError(
+              htmlescape(sprintf(
+                _('Could not find system %s, cannot trigger action'),
+                $member
+              ))
+            );
+            $error->display();
           }
         }
       }
@@ -173,9 +164,14 @@ class groupManagement extends simpleManagement
     if ($triggered && in_array($event, ['reinstall','update'])) {
       foreach ($mac as $key => $mac_address) {
         if ($o_queue->is_currently_installing($mac_address)) {
-          msg_dialog::display(_('Action canceled'), sprintf(_('System %s is currently installing'), $dn), ERROR_DIALOG);
+          $error = new FusionDirectoryError(
+            htmlescape(sprintf(
+              _('System %s is currently installing, cannot trigger action'),
+              $dn
+            ))
+          );
+          $error->display();
           unset($mac[$key]);
-          logging::log('security', 'systems/'.get_class($this), '', [], 'Skip adding "argonautAction::'.$event.'" for mac "'.$mac_address.'", there is already a job in progress.');
         }
       }
     }
@@ -187,20 +183,21 @@ class groupManagement extends simpleManagement
     // Prepare event to be added
     $events   = argonautEventTypes::get_event_types();
     if (isset($events[$event])) {
-      $this->dialogObject = new argonautAction($event, $mac, !$triggered);
+      $this->dialogObject = new argonautAction($this, $event, $mac, !$triggered);
 
       if ($triggered) {
         $res = $o_queue->append($this->dialogObject);
         if ($o_queue->is_error()) {
-          msg_dialog::display(_('Infrastructure service'), msgPool::siError($o_queue->get_error()), ERROR_DIALOG);
+          $error = new FusionDirectoryError(msgPool::siError($o_queue->get_error()));
+          $error->display();
         } else {
           if (is_array($res) && count($res) > 1) {
-            msg_dialog::display(_('Action triggered'), sprintf(_('Action called without error(results were "%s")'), implode(', ', $res)), INFO_DIALOG);
+            msg_dialog::display(_('Action triggered'), htmlescape(sprintf(_('Action called without error (results were "%s")'), implode(', ', $res))), INFO_DIALOG);
           } else {
             if (is_array($res)) {
               $res = $res[0];
             }
-            msg_dialog::display(_('Action triggered'), sprintf(_('Action called without error(result was "%s")'), $res), INFO_DIALOG);
+            msg_dialog::display(_('Action triggered'), htmlescape(sprintf(_('Action called without error (result was "%s")'), $res)), INFO_DIALOG);
           }
         }
         $this->closeDialogs();
@@ -213,7 +210,8 @@ class groupManagement extends simpleManagement
    */
   function saveEventDialog ()
   {
-    $this->dialogObject->save_object();
+    $this->dialogObject->readPost();
+    $this->dialogObject->update();
     $msgs = $this->dialogObject->check();
     if (count($msgs)) {
       msg_dialog::displayChecks($msgs);
@@ -223,7 +221,8 @@ class groupManagement extends simpleManagement
       $o_queue = new supportDaemon();
       $o_queue->append($this->dialogObject);
       if ($o_queue->is_error()) {
-        msg_dialog::display(_('Infrastructure service'), msgPool::siError($o_queue->get_error()), ERROR_DIALOG);
+        $error = new FusionDirectoryError(msgPool::siError($o_queue->get_error()));
+        $error->display();
       }
       $this->closeDialogs();
     }
@@ -232,7 +231,7 @@ class groupManagement extends simpleManagement
   /*! \brief  Detects actions/events send by the ui
    *           and the corresponding targets.
    */
-  function detectPostActions ()
+  function detectPostActions (): array
   {
     $action = parent::detectPostActions();
     if (isset($_POST['save_event_dialog'])) {
@@ -242,123 +241,4 @@ class groupManagement extends simpleManagement
     }
     return $action;
   }
-
-  static function filterProperties ($row, $dn, $objectType, $attrs, $gosaGroupObjects = NULL)
-  {
-    global $config;
-    static $grouptabs = [];
-
-    // Load information if needed
-    $result = '&nbsp;';
-    if (!empty($attrs)) {
-      if (strtolower($objectType) == 'ogroup') {
-        if (empty($gosaGroupObjects)) {
-          return $result;
-        } else {
-          return static::filterGroupObjects($row, $gosaGroupObjects);
-        }
-      }
-      if (strtolower($objectType) == 'role') {
-        return '<input class="center" type="image" src="geticon.php?context=types&amp;icon=role&amp;size=16" '.
-                 'alt="'._('Role').'" title="'._('Edit role properties').'" '.
-                 'name="listing_edit_'.$row.'" style="padding:1px"/>';
-      }
-      if (empty($grouptabs)) {
-        foreach ($config->data['TABS']['GROUPTABS'] as $plug) {
-          if ($plug['CLASS'] == 'posixGroup') {
-            continue;
-          }
-          if (class_available($plug['CLASS'])) {
-            $name = $plug['CLASS'];
-
-            $grouptabs[$name] = new $name($dn);
-          }
-        }
-      }
-      $result = '<input class="center" type="image" src="geticon.php?context=types&amp;icon=user-group&amp;size=16" '.
-                       'alt="'._('Posix').'" title="'._('Edit posix properties').'" '.
-                       'name="listing_edit_tab_group_'.$row.'" style="padding:1px"/>';
-      foreach ($grouptabs as $class => $grouptab) {
-        if ($grouptab->is_this_account($attrs)) {
-          $infos = pluglist::pluginInfos($class);
-          if (isset($infos['plSmallIcon'])) {
-            $result .= '<input class="center" type="image" src="'.htmlentities($infos['plSmallIcon'], ENT_COMPAT, 'UTF-8').'" '.
-                       'alt="'.$infos['plTitle'].'" title="'.$infos['plTitle'].'" '.
-                       'name="listing_edit_tab_'.$class.'_'.$row.'" style="padding:1px"/>';
-          } else {
-            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['plShortName']." ($class)", 'No icon for');
-          }
-        } else {
-          $result .= '<img src="images/empty.png" alt=" " class="center optional '.$class.'" style="padding:1px"/>';
-        }
-      }
-    }
-
-    return $result;
-  }
-
-  static function filterGroupObjects ($row, $gosaGroupObjects)
-  {
-    $types  = preg_replace('/[^a-z]/i', '', $gosaGroupObjects[0]);
-    $result = '';
-    for ($i = 0; $i < strlen($types); $i++) {
-      if ($types[$i] == 'I') {
-        continue;
-      }
-      $info   = objects::infos(ogroup::$objectTypes[$types[$i]]);
-      $result .= '<img class="center" src="'.htmlentities($info['icon'], ENT_COMPAT, 'UTF-8').'" '.
-        'alt="'.$info['name'].'" title="'.$info['name'].'" style="padding:1px"/>';
-    }
-    if ($result == '') {
-      return '&nbsp;';
-    }
-    return $result;
-  }
-
-  function renderList ()
-  {
-    $smarty = get_smarty();
-    $filters = [
-      ['id'  => 'USER',        'label'  => _('Show user groups')],
-      ['id'  => 'ROLE',        'label'  => _('Show organizational roles')],
-      ['id'  => 'APPLICATION', 'label'  => _('Show application groups')],
-      ['id'  => 'GROUP',       'label'  => _('Show groups of groups')],
-      ['id'  => 'UNKNOWN',     'label'  => _('Show unidentified groups')],
-    ];
-    if (class_available('posixGroup')) {
-      $filters[] = ['id'  => 'PRIMARY',  'label'  => _('Show primary groups')];
-      if (class_available('mailAccount')) {
-        $filters[] = ['id'  => 'MAIL',  'label'  => _('Show mail groups')];
-      }
-      if (class_available('sambaAccount')) {
-        $filters[] = ['id'  => 'SAMBA', 'label'  => _('Show samba groups')];
-      }
-    }
-    if (class_available('simpleSecurityObject')) {
-      $filters[] = ['id'  => 'SIMPLESECURITYOBJECT',  'label'  => _('Show DSA entries')];
-    }
-    if (class_available('systemManagement')) {
-      $filters = array_merge(
-        $filters,
-        [
-          ['id'  => 'SERVER',      'label'  => _('Show server groups')],
-          ['id'  => 'WORKSTATION', 'label'  => _('Show workstation groups')],
-          ['id'  => 'TERMINAL',    'label'  => _('Show terminal groups')],
-          ['id'  => 'PRINTER',     'label'  => _('Show printer groups')],
-          ['id'  => 'PHONE',       'label'  => _('Show phone groups')],
-        ]
-      );
-    }
-    if (!static::$skipTemplates) {
-      $filters[] = [
-        'id'    => 'FILTERTEMPLATE',
-        'label' => sprintf(_('Show %s'), _('Template'))
-      ];
-    }
-    $smarty->assign('objectFilters', $filters);
-    $this->headpage->update();
-    $display = $this->headpage->render();
-    return $this->getHeader().$display;
-  }
 }
-?>
diff --git a/plugins/admin/groups/class_ogroup.inc b/plugins/admin/groups/class_ogroup.inc
index 439aaab2d72dc4541aadc8e9200afa78eff4b1c4..9dc7599765e4ca00f47e58c4b72438698d30e1d6 100644
--- a/plugins/admin/groups/class_ogroup.inc
+++ b/plugins/admin/groups/class_ogroup.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2020  FusionDirectory
 
   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
@@ -19,140 +20,8 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class ObjectsAttribute extends GenericDialogAttribute
-{
-  protected $dialogClass  = 'ObjectSelectDialog';
-  protected $types        = [];
-
-  function getFilterBlackList ()
-  {
-    return [
-      'dn' => array_merge($this->getValue(), $this->plugin->used_workstations, [$this->plugin->dn])
-    ];
-  }
-
-  protected function fillDisplayValueFrom ($i, $attrs)
-  {
-    if ($attrs) {
-      foreach (ogroup::$objectTypes as $code => $objectType) {
-        try {
-          if (objects::isOfType($attrs, $objectType)) {
-            $infos = objects::infos($objectType);
-            $this->types[$i]    = $code;
-            $this->displays[$i] = $attrs[$infos['nameAttr']][0];
-            if (strtolower($objectType) == 'user') {
-              if (isset($attrs['description'][0])) {
-                $this->displays[$i] .= ' ['.$attrs['uid'][0].' - '.$attrs['description'][0].']';
-              } else {
-                $this->displays[$i] .= ' ['.$attrs['uid'][0].']';
-              }
-            } elseif (isset($attrs['description'][0])) {
-              $this->displays[$i] .= ' ['.$attrs['description'][0].']';
-            }
-            break;
-          }
-        } catch (NonExistingObjectTypeException $e) {
-          @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $e->getMessage(), "Objecttype");
-          unset(ogroup::$objectTypes[$code]);
-        }
-      }
-      if (!isset($this->displays[$i])) {
-        trigger_error('Unkown type for "'.$this->value[$i].'"');
-        $this->displays[$i] = sprintf(_('Unknown type : %s'), $this->value[$i]);
-        $this->types[$i]    = 'I';
-      }
-    } else {
-      if (($attrs === NULL) && $this->isTemplate()) {
-        $this->displays[$i] = $this->value[$i];
-        $this->types[$i]    = 'I';
-      } else {
-        $this->displays[$i] = sprintf(_('Non existing dn: %s'), $this->value[$i]);
-        $this->types[$i]    = 'I';
-      }
-    }
-  }
-
-  function renderOnlyFormInput ()
-  {
-    if (($this->size < 15) && ($this->size < count($this->value))) {
-      $this->size = min(15, count($this->value));
-    }
-    $id       = $this->getHtmlId();
-    $display  = '<select multiple="multiple"  name="row'.$id.'[]" id="row'.$id.'" size="'.$this->size.'"'.
-                ($this->disabled ? ' disabled="disabled"' : '').
-                ' >'."\n";
-    foreach ($this->getDisplayValues() as $key => $value) {
-      try {
-        $infos = [];
-        if ($this->types[$key] !== 'I') {
-          $infos = objects::infos(ogroup::$objectTypes[$this->types[$key]]);
-        }
-      } catch (NonExistingObjectTypeException $e) {
-        die('No type for '.$key.' '.$value);
-      }
-      if (isset($infos['icon'])) {
-        $img = $infos['icon'];
-      } else {
-        $img = 'images/empty.png';
-      }
-      $display .= '<option value="'.$key.'" class="select"'.
-                  ' style="background-image:url(\''.get_template_path($img).'\');"'.
-                  '>'.$value."</option>\n";
-    }
-    $display .= '</select><br/>'."\n";
-    return $display;
-  }
-
-  function ldapAttributesToGet ()
-  {
-    return [
-      'objectClass',
-      'cn',
-      'sn',
-      'ou',
-      'uid',
-      'givenName',
-      'description',
-    ];
-  }
-
-  function listObjectTypes ()
-  {
-    /* Refresh types and displays */
-    $this->getDisplayValues();
-    return '['.join(array_unique($this->types)).']';
-  }
-
-  function getTypedValues ()
-  {
-    $values = $this->getValue();
-    $ret    = [];
-    foreach ($values as $i => $v) {
-      if (!isset($ret[$this->types[$i]])) {
-        $ret[$this->types[$i]] = [];
-      }
-      $ret[$this->types[$i]][] = $v;
-    }
-
-    return $ret;
-  }
-
-  protected function removeValue ($row)
-  {
-    parent::removeValue($row);
-    unset($this->types[$row]);
-  }
-}
-
-class ObjectSelectDialog extends GenericSelectDialog
-{
-  protected $dialogClass = 'objectSelect';
-}
-
 class ogroup extends simplePlugin
 {
-  var $objectclasses  = ['groupOfNames', 'gosaGroupOfNames'];
-
   var $used_workstations = [];
 
   protected $savedTypedMembers;
@@ -169,18 +38,18 @@ class ogroup extends simplePlugin
     'D' => 'simpleSecurityObject',
   ];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Object group'),
       'plDescription' => _('Object group information'),
-      'plSelfModify'  => FALSE,
       'plPriority'    => 1,
+      'plObjectClass' => ['groupOfNames', 'gosaGroupOfNames'],
+      'plFilter'      => '(objectClass=groupOfNames)',
       'plObjectType'  => ['ogroup' => [
         'name'        => _('Group'),
         'description' => _('Group'),
         'ou'          => get_ou('ogroupRDN'),
-        'filter'      => 'objectClass=groupOfNames',
         'icon'        => 'geticon.php?context=types&icon=resource-group&size=16',
         'tabClass'    => 'ogrouptabs',
       ]],
@@ -199,12 +68,13 @@ class ogroup extends simplePlugin
           ['user','dn','owner=%oldvalue%','*']
         ]
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'main' => [
@@ -230,7 +100,7 @@ class ogroup extends simplePlugin
       'members' => [
         'name'  => _('Member objects'),
         'attrs' => [
-          new ObjectsAttribute(
+          new GroupMembersAttribute(
             '', _('Objects member of this group'),
             'member', TRUE,
             [], 'dn'
@@ -299,22 +169,7 @@ class ogroup extends simplePlugin
     $this->savedTypedMembers = $this->attributesAccess['member']->getTypedValues();
   }
 
-  /*! \brief This function returns an LDAP filter for this plugin object classes
-   */
-  function getObjectClassFilter ()
-  {
-    return '(objectClass=groupOfNames)';
-  }
-
-  function is_this_account ($attrs)
-  {
-    $this->objectclasses  = ['groupOfNames'];
-    $found = parent::is_this_account($attrs);
-    $this->objectclasses  = ['groupOfNames', 'gosaGroupOfNames'];
-    return $found;
-  }
-
-  function prepare_save ()
+  function prepare_save (): array
   {
     $this->reload();
     $errors = parent::prepare_save();
@@ -338,18 +193,21 @@ class ogroup extends simplePlugin
     $this->gosaGroupObjects = $this->attributesAccess['member']->listObjectTypes();
   }
 
-  function check ()
+  function check (): array
   {
-    $message = parent::check();
+    $errors = parent::check();
     $this->reload();
     if (preg_match('/W/', $this->gosaGroupObjects) && preg_match('/T/', $this->gosaGroupObjects)) {
-      $message[] = _('Putting both workstations and terminals in the same group is not allowed');
+      $errors[] = new SimplePluginCheckError(
+        $this,
+        htmlescape(_('Putting both workstations and terminals in the same group is not allowed'))
+      );
     }
 
-    return $message;
+    return $errors;
   }
 
-  function ldap_save ()
+  function ldap_save (): array
   {
     global $ui;
 
@@ -369,12 +227,12 @@ class ogroup extends simplePlugin
       $removingMembers  = array_diff($savedMembers, $userMembers);
       foreach ($addingMembers as $dn) {
         if (strpos($ui->get_permissions($dn, 'user/userRoles', 'groupsMembership', $this->acl_skip_write()), 'w') === FALSE) {
-          $errors[] = msgPool::permModify($dn, 'groupsMembership');
+          $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'groupsMembership'));
         }
       }
       foreach ($removingMembers as $dn) {
         if (strpos($ui->get_permissions($dn, 'user/userRoles', 'groupsMembership', $this->acl_skip_write()), 'w') === FALSE) {
-          $errors[] = msgPool::permModify($dn, 'groupsMembership');
+          $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'groupsMembership'));
         }
       }
     }
@@ -386,10 +244,29 @@ class ogroup extends simplePlugin
     return parent::ldap_save();
   }
 
+  function handleForeignKeys (string $olddn = NULL, string $newdn = NULL, string $mode = 'move')
+  {
+    if (($olddn !== NULL) && ($olddn == $newdn)) {
+      return;
+    }
+    if ($this->is_template) {
+      return;
+    }
+    parent::handleForeignKeys($olddn, $newdn, $mode);
+    if ($this->attributeHaveChanged('gosaGroupObjects')) {
+      /* Propagate member type changes to parent groups */
+      $parents = objects::ls('ogroup', ['dn' => 'raw'], NULL, '(member='.ldap_escape_f($this->dn).')');
+      foreach (array_keys($parents) as $dn) {
+        $tabobject = objects::open($dn, 'ogroup');
+        $errors = $tabobject->save();
+        msg_dialog::displayChecks($errors);
+      }
+    }
+  }
+
   function getGroupObjectTypes ()
   {
     $this->reload();
     return $this->gosaGroupObjects;
   }
 }
-?>
diff --git a/plugins/admin/groups/class_roleGeneric.inc b/plugins/admin/groups/class_roleGeneric.inc
index 20292d67ea1c1e25927d2ddceeae3f2371472f97..399d0d6968f9b0516e7c918b79634a4b473ae69f 100644
--- a/plugins/admin/groups/class_roleGeneric.inc
+++ b/plugins/admin/groups/class_roleGeneric.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -32,7 +32,7 @@ class RoleMembersAttribute extends UsersAttribute
         if (empty($groups)) {
           $this->whitelistDns = [];
         } else {
-          $this->whitelistDns = call_user_func_array('array_merge_recursive', $groups)['member'];
+          $this->whitelistDns = array_merge_recursive(...array_values($groups))['member'];
         }
       }
       return [
@@ -47,19 +47,18 @@ class RoleMembersAttribute extends UsersAttribute
 
 class roleGeneric extends simplePlugin
 {
-  var $objectclasses = ['organizationalRole'];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Role'),
       'plDescription' => _('Role information'),
+      'plObjectClass' => ['organizationalRole'],
+      'plFilter'      => '(&(objectClass=organizationalRole)(!(objectClass=simpleSecurityObject)))',
       'plObjectType'  => ['role' =>
         [
           'name'        => _('Role'),
           'description' => _('Organizational role'),
           'ou'          => get_ou('roleRDN'),
-          'filter'      => '(&(objectClass=organizationalRole)(!(objectClass=simpleSecurityObject)))',
           'icon'        => 'geticon.php?context=types&icon=role&size=16',
           'mainAttr'    => 'cn',
         ]
@@ -67,15 +66,16 @@ class roleGeneric extends simplePlugin
       'plForeignKeys'  => [
         'roleOccupant' => ['user','dn','roleOccupant=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['description'],
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-   /*!
-   *  \brief The main function : information about attributes
-   */
-  static function getAttributesInfo ()
+  /*!
+  *  \brief The main function : information about attributes
+  */
+  static function getAttributesInfo (): array
   {
     return [
       'main' => [
@@ -113,7 +113,7 @@ class roleGeneric extends simplePlugin
     ];
   }
 
-  function ldap_save ()
+  function ldap_save (): array
   {
     global $ui;
 
@@ -125,12 +125,12 @@ class roleGeneric extends simplePlugin
       $removingOccupants  = array_diff($savedOccupants, $this->roleOccupant);
       foreach ($addingOccupants as $dn) {
         if (strpos($ui->get_permissions($dn, 'user/userRoles', 'rolesMembership', $this->acl_skip_write()), 'w') === FALSE) {
-          $errors[] = msgPool::permModify($dn, 'rolesMembership');
+          $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'rolesMembership'));
         }
       }
       foreach ($removingOccupants as $dn) {
         if (strpos($ui->get_permissions($dn, 'user/userRoles', 'rolesMembership', $this->acl_skip_write()), 'w') === FALSE) {
-          $errors[] = msgPool::permModify($dn, 'rolesMembership');
+          $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'rolesMembership'));
         }
       }
     }
@@ -142,4 +142,3 @@ class roleGeneric extends simplePlugin
     return parent::ldap_save();
   }
 }
-?>
diff --git a/plugins/admin/groups/group-filter.xml b/plugins/admin/groups/group-filter.xml
deleted file mode 100644
index 72c4977eac787c36b7c8b724775ec1ecc765ab8a..0000000000000000000000000000000000000000
--- a/plugins/admin/groups/group-filter.xml
+++ /dev/null
@@ -1,158 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<filterdef>
-  <definition>
-    <category>group</category>
-    <template>simple-filter.tpl</template>
-    <initial>true</initial>
-  </definition>
-
-  <search>
-    <query>
-      <backend>LDAP</backend>
-      <filter>(&amp;(|$PRIMARY$MAIL$SAMBA$ROLE$FILTERTEMPLATE(&amp;(objectClass=groupOfNames)(|(gosaGroupObjects=[])$USER$GROUP$APPLICATION$SERVER$WORKSTATION$TERMINAL$PRINTER$PHONE$SIMPLESECURITYOBJECT$UNKNOWN)))$NAME)</filter>
-      <attribute>*</attribute>
-    </query>
-    <scope>auto</scope>
-  </search>
-
-  <element>
-    <type>checkbox</type>
-    <tag>FILTERTEMPLATE</tag>
-    <default></default>
-    <unset></unset>
-    <set>(objectClass=fdTemplate)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>PRIMARY</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=posixGroup)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>MAIL</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(&amp;(objectClass=posixGroup)(objectClass=gosaMailAccount))</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>SAMBA</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(&amp;(objectClass=posixGroup)(objectClass=sambaGroupMapping))</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>ROLE</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=organizationalRole)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>USER</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*U*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>GROUP</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*G*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>APPLICATION</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*A*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>SERVER</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*S*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>WORKSTATION</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*W*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>TERMINAL</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*T*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>PRINTER</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*P*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>PHONE</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*F*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>SIMPLESECURITYOBJECT</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*D*)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>UNKNOWN</tag>
-    <default>false</default>
-    <unset></unset>
-    <set>(gosaGroupObjects=*I*)</set>
-  </element>
-
-  <element>
-    <type>textfield</type>
-    <tag>NAME</tag>
-    <size>20</size>
-    <maxlength>60</maxlength>
-    <default></default>
-    <unset></unset>
-    <set>(|(cn=*$*)(description=*$*))</set>
-    <alphabet>true</alphabet>
-    <autocomplete>
-      <backend>LDAP</backend>
-      <filter>(&amp;(|(objectClass=posixGroup)$ROLE$FILTERTEMPLATE(objectClass=groupOfNames))(|(cn=*$NAME*)(description=*$NAME*)))</filter>
-      <attribute>cn</attribute>
-      <attribute>description</attribute>
-      <frequency>0.5</frequency>
-      <characters>3</characters>
-    </autocomplete>
-  </element>
-
-</filterdef>
diff --git a/plugins/admin/groups/group-list.xml b/plugins/admin/groups/group-list.xml
deleted file mode 100644
index 4e83b6d612e1c504207322a4f6513c675a89e5d1..0000000000000000000000000000000000000000
--- a/plugins/admin/groups/group-list.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<list>
-  <definition>
-    <departmentBrowser>true</departmentBrowser>
-    <departmentRootVisible>false</departmentRootVisible>
-    <baseMode>true</baseMode>
-    <multiSelect>true</multiSelect>
-    <template>simple-list.tpl</template>
-    <module>groups</module>
-    <label>List of groups</label>
-    <defaultSortColumn>1</defaultSortColumn>
-
-  </definition>
-
-  <table>
-    <layout>|20px;c|||120px-d|150px-d;r|</layout>
-
-    <department>
-      <value>%{filter:departmentType(row,dn)}</value>
-    </department>
-
-    <department>
-      <value>%{filter:departmentLink(row,dn,description)}</value>
-      <span>2</span>
-    </department>
-
-    <column>
-      <value>%{filter:objectType(row,dn)}</value>
-    </column>
-
-    <column>
-      <label>Name</label>
-      <sortAttribute>cn</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:link(row,dn,"%s",cn)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Description</label>
-      <sortAttribute>description</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:link(row,dn,"%s",description)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Properties</label>
-      <value>%{filter:filterProperties(row,dn,objectType,entry,gosaGroupObjects)}</value>
-    </column>
-
-    <column>
-      <label>Actions</label>
-      <value>%{filter:actions(dn,row,objectClass)}</value>
-    </column>
-
-  </table>
-
-  <actionmenu>
-
-    <action>
-      <name>create</name>
-      <type>sub</type>
-      <image>geticon.php?context=actions&amp;icon=document-new&amp;size=16</image>
-      <label>Create</label>
-      <acl>[c]</acl>
-    </action>
-
-    <action>
-      <name>edit</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=document-edit&amp;size=16</image>
-      <label>Edit</label>
-      <acl>[r]</acl>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <label>Remove</label>
-      <acl>[d]</acl>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>sub</type>
-      <image>geticon.php?context=types&amp;icon=action&amp;size=16</image>
-      <label>Trigger action</label>
-      <depends>argonautAction</depends>
-    </action>
-
-    <action>
-      <type>sub</type>
-      <image>geticon.php?context=actions&amp;icon=task-schedule&amp;size=16</image>
-      <label>Schedule action</label>
-      <depends>argonautAction</depends>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>exporter</type>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>copypaste</type>
-    </action>
-
-    <action>
-      <type>snapshot</type>
-    </action>
-
-  </actionmenu>
-
-  <actiontriggers snapshot="true" copypaste="true">
-
-    <action>
-      <name>cp</name>
-      <type>copypaste</type>
-    </action>
-
-    <action>
-      <name>edit</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=document-edit&amp;size=16</image>
-      <label>Edit</label>
-    </action>
-
-    <action>
-      <name>snapshot</name>
-      <type>snapshot</type>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <acl>%acl[d]</acl>
-      <label>Remove</label>
-    </action>
-
-  </actiontriggers>
-</list>
diff --git a/plugins/admin/groups/tabs_ogroups.inc b/plugins/admin/groups/tabs_ogroups.inc
index 662e60055e983996e4bd5cb58ceadc69e6102f5d..f600dd382da1a1ff6d5c0afd6d0b685380331fa4 100644
--- a/plugins/admin/groups/tabs_ogroups.inc
+++ b/plugins/admin/groups/tabs_ogroups.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2003  Cajus Pollmeier
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -27,12 +28,17 @@ class ogrouptabs extends simpleTabs_noSpecial
   {
     parent::__construct($type, $dn, $copied_object);
 
-    $this->loadtabs($this->getBaseObject()->gosaGroupObjects);
+    $this->loadTabs($this->getBaseObject()->gosaGroupObjects);
   }
 
-  function loadtabs ($gosaGroupObjects)
+  public function loadTabs (string $gosaGroupObjects = NULL)
   {
     global $config;
+
+    if ($gosaGroupObjects === NULL) {
+      $gosaGroupObjects = $this->getBaseObject()->getGroupObjectTypes();
+    }
+
     if ($this->groupObjects == $gosaGroupObjects) {
       return;
     }
@@ -108,7 +114,7 @@ class ogrouptabs extends simpleTabs_noSpecial
 
   function addTab ($class)
   {
-    @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, 'Adding tab ');
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $class, 'Adding tab ');
     $plInfos = pluglist::pluginInfos($class);
     $this->by_name[$class]  = $plInfos['plShortName'];
     $this->plNotify[$class] = FALSE;
@@ -129,28 +135,41 @@ class ogrouptabs extends simpleTabs_noSpecial
     unset($this->plNotify["$class"]);
   }
 
-  function gen_tabs ($disabled = FALSE)
+  protected function renderTabList (bool $disabled = FALSE): string
   {
-    $this->loadtabs($this->getBaseObject()->getGroupObjectTypes());
-    return parent::gen_tabs($disabled);
+    $this->loadtabs();
+    return parent::renderTabList($disabled);
   }
 
   /*!
-   * \brief Sets the active tabs from this instance to an other one. Used by templates
+   * \brief Returns the list of tabs which may appear for a given object type
    */
-  function setActiveTabs (&$tabObject)
+  public static function getPotentialTabList (string $type, array $infos): array
   {
-    $tabObject->loadtabs($this->groupObjects);
-    foreach ($this->by_object as $class => $plugin) {
-      if ($plugin->is_account || $plugin->ignore_account) {
-        $tabObject->by_object[$class]->is_account = $plugin->is_account;
+    global $config;
+
+    /* prefix will be OGROUP- for ogroup */
+    $tabList  = parent::getPotentialTabList($type, $infos);
+    $prefix   = strtoupper($type).'-';
+    foreach ($config->data['TABS'] as $tabgroup => $tabs) {
+      if (strpos($tabgroup, $prefix) === 0) {
+        $tabList = array_merge($tabList, $tabs);
       }
     }
+    return $tabList;
   }
 
-  function check ($ignore_account = FALSE)
+  /*!
+   * \brief Sets the active tabs from this instance to an other one. Used by templates
+   */
+  public function setActiveTabs (&$tabObject)
   {
-    return parent::check(FALSE);
+    $tabObject->loadTabs($this->groupObjects);
+    foreach ($this->by_object as $class => $plugin) {
+      if ($plugin->isActive()) {
+        $tabObject->by_object[$class]->is_account = $plugin->is_account;
+      }
+    }
   }
 
   function save ()
@@ -161,7 +180,7 @@ class ogrouptabs extends simpleTabs_noSpecial
       if (isset($this->by_object[$key])) {
         continue;
       }
-      @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Removing');
+      logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $key, 'Removing');
 
       $obj->dn = $this->dn;
       $tabErrors = $obj->remove(FALSE);
@@ -174,9 +193,9 @@ class ogrouptabs extends simpleTabs_noSpecial
     return $errors;
   }
 
-  function save_object ($save_current = FALSE)
+  public function update (): bool
   {
-    parent::save_object($save_current);
+    parent::update();
 
     /* Update reference, transfer variables */
     $baseobject = $this->getBaseObject();
@@ -192,6 +211,7 @@ class ogrouptabs extends simpleTabs_noSpecial
         $this->by_object[$name] = $obj;
       }
     }
+
+    return TRUE;
   }
 }
-?>
diff --git a/plugins/admin/mailtemplate/class_mailTemplateManagement.inc b/plugins/admin/mailtemplate/class_mailTemplateManagement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..cfbcd572d98b735b3f4b089df4c3d5cf56014a3b
--- /dev/null
+++ b/plugins/admin/mailtemplate/class_mailTemplateManagement.inc
@@ -0,0 +1,159 @@
+<?php
+
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2011-2022  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class mailTemplateManagement extends management
+{
+
+  public static $columns = [
+    ['ObjectTypeColumn', []],
+    ['LinkColumn',       ['attributes' => 'cn', 'label' => 'Template Name']],
+    ['ActionsColumn',    ['label' => 'Actions']],
+  ];
+
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'   => _('Mail Template'),
+      'plTitle'       => _('Mail Template'),
+      'plDescription' => _('Manages mails templates'),
+      'plIcon'        => 'geticon.php?context=applications&icon=mail-template&size=48',
+      'plManages'     => ['mailTemplate'],
+      'plSection'     => 'conf',
+      'plPriority'    => 30,
+      'plProvidedAcls' => [],
+    ];
+  }
+
+  protected function configureActions ()
+  {
+    global $config;
+
+    $createMenu = [];
+
+    foreach ($this->objectTypes as $type) {
+      $infos  = objects::infos($type);
+      $img    = 'geticon.php?context=actions&icon=document-new&size=16';
+      if (isset($infos['icon'])) {
+        $img = $infos['icon'];
+      }
+      $createMenu[] = new Action(
+        'new_'.$type, $infos['name'], $img,
+        '0', 'newEntry',
+        [$infos['aclCategory'].'/'.$infos['mainTab'].'/c']
+      );
+    }
+
+    $this->registerAction(
+     new SubMenuAction(
+       'new', _('Create'), 'geticon.php?context=actions&icon=document-new&size=16',
+       $createMenu
+     )
+    );
+
+    // Add export actions
+    $exportMenu = [];
+    foreach ($this->exporters as $action => $exporter) {
+      $exportMenu[] = new Action(
+        $action, $exporter['label'], $exporter['image'],
+        '0', 'export'
+      );
+    }
+    $this->registerAction(
+     new SubMenuAction(
+       'export', _('Export list'), 'geticon.php?context=actions&icon=document-export&size=16',
+       $exportMenu
+     )
+    );
+
+    $this->registerAction(
+     new Action(
+       'edit', _('Edit'), 'geticon.php?context=actions&icon=document-edit&size=16',
+       '+', 'editEntry'
+     )
+    );
+    $this->actions['edit']->setSeparator(TRUE);
+
+    if (!$this->skipCpHandler) {
+      $this->registerAction(
+        new Action(
+          'cut', _('Cut'), 'geticon.php?context=actions&icon=edit-cut&size=16',
+          '+', 'copyPasteHandler',
+          ['dr']
+        )
+      );
+      $this->registerAction(
+        new Action(
+          'copy', _('Copy'), 'geticon.php?context=actions&icon=edit-copy&size=16',
+          '+', 'copyPasteHandler',
+          ['r']
+        )
+      );
+      $this->registerAction(
+        new Action(
+          'paste', _('Paste'), 'geticon.php?context=actions&icon=edit-paste&size=16',
+          '0', 'copyPasteHandler',
+          ['w']
+        )
+      );
+      $this->actions['paste']->setEnableFunction([$this, 'enablePaste']);
+    }
+
+    $this->registerAction(
+     new Action(
+       'remove', _('Remove'), 'geticon.php?context=actions&icon=edit-delete&size=16',
+       '+', 'removeRequested',
+       ['d']
+     )
+    );
+
+    if (!static::$skipSnapshots && ($config->get_cfg_value('enableSnapshots') == 'TRUE')) {
+      $this->registerAction(
+        new Action(
+          'snapshot', _('Create snapshot'), 'geticon.php?context=actions&icon=snapshot&size=16',
+          '1', 'createSnapshotDialog',
+          ['/SnapshotHandler/c']
+        )
+      );
+      $this->registerAction(
+        new Action(
+          'restore', _('Restore snapshot'), 'geticon.php?context=actions&icon=document-restore&size=16',
+          '*', 'restoreSnapshotDialog',
+          ['w', '/SnapshotHandler/r']
+        )
+      );
+      $this->actions['snapshot']->setSeparator(TRUE);
+      $this->actions['restore']->setEnableFunction([$this, 'enableSnapshotRestore']);
+    }
+
+
+    /* Actions from footer are not in any menus and do not need a label */
+    $this->registerAction(new HiddenAction('apply',           'applyChanges'));
+    $this->registerAction(new HiddenAction('save',            'saveChanges'));
+    $this->registerAction(new HiddenAction('cancel',          'cancelEdit'));
+    $this->registerAction(new HiddenAction('cancelDelete',    'cancelEdit'));
+    $this->registerAction(new HiddenAction('removeConfirmed', 'removeConfirmed'));
+    if (!$this->skipConfiguration) {
+      $this->registerAction(new HiddenAction('configure', 'configureDialog'));
+    }
+  }
+
+
+}
diff --git a/plugins/admin/tasks/class_tasksColumn.inc b/plugins/admin/tasks/class_tasksColumn.inc
new file mode 100644
index 0000000000000000000000000000000000000000..85a7fa3b0b1d290d86c9e8abfc224cd2dd05151b
--- /dev/null
+++ b/plugins/admin/tasks/class_tasksColumn.inc
@@ -0,0 +1,91 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2011-2022  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/*!
+ * \brief Column rendering Tasks columns
+ */
+class TasksColumn extends Column
+{
+  // Keep in mind this method is being called for each value.
+  protected function renderSingleValue (ListingEntry $entry, string $value): string
+  {
+    if ($value == '') {
+      return '&nbsp;';
+    } else {
+      switch ($this->attributes[0]) {
+        case 'fdTasksStatus':
+          return static::filterStatus($value);
+
+        case 'fdTasksGranularStatus':
+          return static::filterStatus($value);
+
+        // This case needs optimization
+        case 'fdTasksMailObject':
+          return "Mail Object";
+
+        case 'fdTasksScheduleDate':
+          return static::generateDateFormat($value);
+
+        case 'fdTasksGranularSchedule':
+          return static::generateDateFormat($value);
+
+        case 'fdTasksGranularMaster':
+          return static::generateMasterTaskName($value);
+
+        default:
+          return parent::renderSingleValue($entry, $value);
+      }
+    }
+  }
+
+  static function filterStatus (string $status = NULL): string
+  {
+    // A call towards a status map would be interesting here.
+    switch ($status) {
+      case "1" :
+        return "Created";
+
+      case "2" :
+        return "Processed";
+
+      default :
+        return $status;
+    }
+  }
+
+  static function generateDateFormat ($value) : string
+  {
+    // Z is added to value to match ldap generaliseztime
+    $datetime = (new LdapGeneralizedTime)->fromString($value.'Z');
+    $result = $datetime->format('Y-m-d H:i:s');
+    return $result;
+  }
+
+  static function generateMasterTaskName ($value) : string
+  {
+    // remove 'dn' keeping only 'cn'
+    $rmDn = preg_replace('/(?=,).*/', '', $value);
+    // only take the cn without dc
+    preg_match('/cn=(.*)/', $rmDn, $matches);
+    return $matches[1];
+  }
+
+}
diff --git a/plugins/admin/tasks/class_tasksDashboard.inc b/plugins/admin/tasks/class_tasksDashboard.inc
new file mode 100644
index 0000000000000000000000000000000000000000..0b0b0b6dc18cc32e77a463299df2b2243ff5410c
--- /dev/null
+++ b/plugins/admin/tasks/class_tasksDashboard.inc
@@ -0,0 +1,135 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2011-2022  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class tasksDashboard extends management
+{
+
+  function __construct ($objectTypes = FALSE, array $filterElementDefinitions = [['TabFilterElement',    []],])
+  {
+    parent::__construct($objectTypes, $filterElementDefinitions);
+
+    // Alllow the creation of custom filtering
+    $this->setupFilters();
+  }
+
+  // Actions collumn are removed compared to parent.
+  public static $columns = [
+    ['Column', ['attributes' => 'cn', 'label' => 'Tasks']],
+    ['TasksColumn', ['attributes' => 'fdTasksGranularMaster', 'label' => 'Master Task']],
+    ['Column', ['attributes' => 'fdTasksGranularType', 'label' => 'Types']],
+    ['Column', ['attributes' => 'fdTasksGranularMail', 'label' => 'Email']],
+    ['TasksColumn', ['attributes' => 'fdTasksGranularSchedule', 'label' => 'Schedule']],
+    ['TasksColumn', ['attributes' => 'fdTasksGranularStatus', 'label' => 'Status']],
+    ['ActionsColumn', ['label' => 'Actions']],
+  ];
+
+  // No modification tools are required.
+  protected $skipCpHandler        = TRUE;
+  public static $skipSnapshots    = TRUE;
+  public static $skipTemplates    = TRUE;
+
+  static function plInfo ()
+  {
+    return [
+      'plShortName'   => _('Tasks Dashboard'),
+      'plDescription' => _('Provide a reporting mechanism for tasks'),
+      'plTitle'       => _('Tasks Dashboard'),
+      'plIcon'        => 'geticon.php?context=applications&icon=tasks-dashboard&size=48',
+      'plSection'     => ['reporting' => ['name' => _('Reporting'), 'priority' => 40]],
+      'plPriority'    => 10,
+      'plManages'     => ['tasksGranular'],
+      'plProvidedAcls' => [],
+    ];
+  }
+
+  // Allowing us to add additional actions and remove unrequired ones.
+  protected function configureActions ()
+  {
+    $this->registerAction(
+    new Action(
+        'tasksRenew',
+        _('Renew the selected task'),
+        'geticon.php?context=actions&icon=view-refresh&size=16',
+        '+',
+        'tasksRenew'
+        )
+    );
+
+    $this->actions['tasksRenew']->setSeparator(TRUE);
+    $this->actions['tasksRenew']->setEnableFunction([$this, 'setTasksActionStatus']);
+
+  }
+
+  // This method is triggered by the user action click on tasksRenew
+  function tasksRenew (array $action)
+  {
+    foreach ((array)$action['targets'] as $dn) {
+      $this->tasksUpdate($dn);
+    }
+  }
+
+  function tasksUpdate ($dn)
+  {
+    $tabObject    = objects::open($dn, 'tasksGranular');
+    $tabObject->by_object['tasksGranular']->attributesAccess['fdTasksGranularStatus']->setValue(1);
+    $errors = $tabObject->save();
+
+    if (!empty($errors)) {
+      $show_error = new SimplePluginError($this, htmlescape(sprintf(_('Error updating: "%s" !.'), $dn)));
+      $show_error->display();
+    }
+  }
+
+  // This method is triggered during initiation of the dashboard, allowing proper icons status
+  function setTasksActionStatus () : BOOL
+  {
+    return  TRUE;
+  }
+
+  function setupFilters ()
+  {
+    // array of states allowing proper filtering
+    $status    = [
+      'Completed'    => [
+        'name'        => 'Completed tasks',
+        'filter'      => '(fdTasksGranularStatus=2)',
+        'icon'        => 'geticon.php?context=actions&icon=add&size=16',
+      ],
+      'Scheduled'    => [
+        'name'        => 'Scheduled tasks',
+        'filter'      => '(fdTasksGranularStatus=1)',
+        'icon'        => 'geticon.php?context=actions&icon=system-update&size=16',
+      ],
+      'Failed'    => [
+        'name'      => 'Failed tasks',
+        // filter status must be updated if the status strategy changes
+        'filter'    => '(!(|(fdTasksGranularStatus=1)(fdTasksGranularStatus=2)))',
+        'icon'      => 'geticon.php?context=actions&icon=remove&size=16',
+      ],
+    ];
+
+    $this->filter->addElement(new CheckBoxesFilterElement($this->filter, _('Status'), $status, '|'));
+  }
+
+  // End of Class
+}
+
+
+
diff --git a/plugins/admin/tasks/class_tasksManagement.inc b/plugins/admin/tasks/class_tasksManagement.inc
new file mode 100644
index 0000000000000000000000000000000000000000..821b34bcb4c62e9c018a3a16f66dffefa644182e
--- /dev/null
+++ b/plugins/admin/tasks/class_tasksManagement.inc
@@ -0,0 +1,59 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2011-2022  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class tasksManagement extends management
+{
+
+  protected $skipCpHandler    = TRUE;
+
+  /*
+  *  LinkColumn exists by class collumn
+  *  TasksColumn is a new class for Tasks bassed on argonaut column definition
+  */
+  public static $columns = [
+    ['LinkColumn',  ['attributes' => 'cn', 'label' => 'Tasks']],
+    //below fdTasksMailObject must be change to have a type defined within task creation (new ldap attributes ?hidden)
+    ['TasksColumn', ['attributes' => 'fdTasksMailObject', 'label' => 'Types']],
+    ['Column', ['attributes' => 'fdTasksCreationDate', 'label' => 'Creation Date']],
+    ['TasksColumn', ['attributes' => 'fdTasksScheduleDate', 'label' => 'Scheduled']],
+    ['ActionsColumn', ['label' => 'Actions']],
+  ];
+
+  static function plInfo ()
+  {
+    return [
+      'plShortName'   => _('Tasks'),
+      'plDescription' => _('Provide a mechanism to create and manage tasks'),
+      'plTitle'       => _('Tasks'),
+      'plIcon'        => 'geticon.php?context=applications&icon=tasks&size=48',
+      'plSection'     => 'conf',
+      'plPriority'    => 40,
+      'plManages'     => ['tasks'],
+      'plProvidedAcls' => [],
+    ];
+  }
+
+  protected function setUpListing ()
+  {
+    /* Set baseMode to FALSE */
+    $this->listing  = new managementListing($this, FALSE);
+  }
+
+}
diff --git a/plugins/admin/users/class_LockAction.inc b/plugins/admin/users/class_LockAction.inc
new file mode 100644
index 0000000000000000000000000000000000000000..632a13bec98b8555165fe18c38df01cec329cfd3
--- /dev/null
+++ b/plugins/admin/users/class_LockAction.inc
@@ -0,0 +1,103 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2018-2019  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class LockAction extends Action
+{
+  function __construct (string $name, string $targets, $callable, array $acl = [], bool $inmenu = TRUE, bool $inline = TRUE)
+  {
+    parent::__construct(
+      $name,
+      ['lock' => _('Lock users'), 'unlock' => _('Unlock users')],
+      [
+        'lock'    => 'geticon.php?context=status&icon=object-locked&size=16',
+        'unlock'  => 'geticon.php?context=status&icon=object-unlocked&size=16',
+      ],
+      $targets, $callable, $acl, $inmenu, $inline);
+  }
+
+  function isLocked (ListingEntry $entry)
+  {
+    if (isset($entry['userPassword'][0]) && preg_match('/^\{[^\}]/', $entry['userPassword'][0])) {
+      return (preg_match('/^[^\}]*+\}!/', $entry['userPassword'][0]) === 1);
+    } elseif ((strtolower($entry->type) == 'user') && empty($entry['userPassword'])) {
+      /* Empty lockable password */
+      return FALSE;
+    }
+    return NULL;
+  }
+
+  function fillMenuItems (array &$actions)
+  {
+    if (!$this->inmenu) {
+      return;
+    }
+
+    if (!$this->hasPermission()) {
+      return;
+    }
+
+    $actions[] = [
+      'name'      => $this->name.'_lock',
+      'icon'      => $this->icon['lock'],
+      'label'     => $this->label['lock'],
+      'enabled'   => $this->isEnabledFor(),
+      'separator' => $this->separator,
+    ];
+
+    $actions[] = [
+      'name'      => $this->name.'_unlock',
+      'icon'      => $this->icon['unlock'],
+      'label'     => $this->label['unlock'],
+      'enabled'   => $this->isEnabledFor(),
+      'separator' => FALSE,
+    ];
+  }
+
+  function fillRowClasses (array &$classes, ListingEntry $entry)
+  {
+    if ($this->isLocked($entry) === TRUE) {
+      $classes[] = 'entry-locked';
+    }
+  }
+
+  function renderColumnIcons (ListingEntry $entry): string
+  {
+    if (!$this->inline) {
+      return '';
+    }
+
+    // Skip the entry completely if there's no permission to execute it
+    if (!$this->hasPermission($entry)) {
+      return '<img src="images/empty.png" alt=" " class="center optional"/>';
+    }
+
+    $lockStatus = $this->isLocked($entry);
+    if ($lockStatus === NULL) {
+      return '<img src="images/empty.png" alt=" " class="center optional"/>';
+    } elseif ($lockStatus) {
+      // Render
+      return '<input type="image" src="'.htmlescape($this->icon['lock']).'"'.
+              ' title="'.htmlescape($this->label['unlock']).'" alt="'.htmlescape($this->label['unlock']).'" name="listing_'.$this->name.'_unlock_'.$entry->row.'"/>';
+    } else {
+      return '<input type="image" src="'.htmlescape($this->icon['unlock']).'"'.
+              ' title="'.htmlescape($this->label['lock']).'" alt="'.htmlescape($this->label['lock']).'" name="listing_'.$this->name.'_lock_'.$entry->row.'"/>';
+    }
+  }
+}
diff --git a/plugins/admin/users/class_userManagement.inc b/plugins/admin/users/class_userManagement.inc
index 0c5956a5d2d00d1f3f9b8a87e703e839852eafa4..041dc47aeaa671dbfce86873249dfd2477ddd17c 100644
--- a/plugins/admin/users/class_userManagement.inc
+++ b/plugins/admin/users/class_userManagement.inc
@@ -1,5 +1,4 @@
 <?php
-
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003  Cajus Pollmeier
@@ -20,23 +19,22 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class userManagement extends simpleManagement
+class userManagement extends management
 {
-  protected $objectTypes  = ['user'];
-
-  protected $departmentBrowser      = TRUE;
-  protected $departmentRootVisible  = FALSE;
-  protected $baseMode               = TRUE;
-  protected $multiSelect            = TRUE;
-
-  protected $filterXMLPath    = NULL;
-  protected $listXMLPath      = NULL;
-  protected $autoFilter       = FALSE;
-  protected $autoActions      = FALSE;
+  public $neededAttrs = ['userPassword' => '*'];
 
   public static $skipTemplates = FALSE;
 
-  static function plInfo ()
+  public static $columns = [
+    ['ObjectTypeColumn', []],
+    ['LinkColumn',       ['attributes' => 'sn',        'label' => 'Last name']],
+    ['LinkColumn',       ['attributes' => 'givenName', 'label' => 'First name']],
+    ['Column',           ['attributes' => 'uid',       'label' => 'Login']],
+    ['PropertiesColumn', ['label' => 'Properties']],
+    ['ActionsColumn',    ['label' => 'Actions']],
+  ];
+
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Users'),
@@ -51,230 +49,101 @@ class userManagement extends simpleManagement
     ];
   }
 
-  function __construct ()
-  {
-    $this->filterXMLPath  = get_template_path('user-filter.xml',  TRUE, dirname(__FILE__));
-    $this->listXMLPath    = get_template_path('user-list.xml',    TRUE, dirname(__FILE__));
-
-    parent::__construct();
-  }
-
-  function configureHeadpage ()
-  {
-    parent::configureHeadpage();
-    $this->registerAction('new_user',               'newEntry');
-    $this->registerAction('new_template_user',      'newEntryTemplate');
-    $this->registerAction('template_apply_to_user', 'applyTemplateToEntry');
-    $this->registerAction('template_apply_user',    'newEntryFromTemplate');
-
-    $this->registerAction('lock',         'lockEntry');
-    $this->registerAction('lockUsers',    'lockUsers');
-    $this->registerAction('unlockUsers',  'lockUsers');
-
-    $this->headpage->registerElementFilter('lockLabel',         'userManagement::filterLockLabel');
-    $this->headpage->registerElementFilter('lockImage',         'userManagement::filterLockImage');
-    $this->headpage->registerElementFilter('filterProperties',  'userManagement::filterProperties');
-  }
-
-  function configureFilter ()
-  {
-    parent::configureFilter();
-
-    $classes = [];
-    if (class_available('posixAccount')) {
-      $classes[] = 'posixAccount';
-    } else {
-      /* If posix plugin is not installed, ignore posix filter */
-      $this->filter->elements['POSIX']['unset']  = '';
-      $this->filter->elements['POSIX']['set']    = '';
-    }
-    if (class_available('mailAccount')) {
-      $classes[] = 'gosaMailAccount';
-    } else {
-      /* If mail plugin is not installed, ignore mail filter */
-      $this->filter->elements['MAIL']['unset']  = '';
-      $this->filter->elements['MAIL']['set']    = '';
-    }
-    if (class_available('sambaAccount')) {
-      $classes[] = 'sambaSamAccount';
-    } else {
-      /* If samba plugin is not installed, ignore samba filter */
-      $this->filter->elements['SAMBA']['unset'] = '';
-      $this->filter->elements['SAMBA']['set']   = '';
-    }
-    if (empty($classes)) {
-      $this->filter->elements['FUNCTIONAL']['set']  = ' (objectClass=*)';
-    } else {
-      /* The FUNCTIONAL filter must not use inexisting classes */
-      $this->filter->elements['FUNCTIONAL']['set']  = ' (! (| (objectClass='.implode(') (objectClass=', $classes).')))';
-    }
-  }
 
-  function renderList ()
+  protected function configureActions ()
   {
-    $smarty = get_smarty();
-    $smarty->assign('USE_POSIX',  class_available('posixAccount'));
-    $smarty->assign('USE_MAIL',   class_available('mailAccount'));
-    $smarty->assign('USE_SAMBA',  class_available('sambaAccount'));
-    return parent::renderList();
+    parent::configureActions();
+
+    $this->registerAction(
+      new LockAction(
+        'lockUsers',
+        '+', 'lockUsers',
+        ['userPassword:rw'], TRUE, TRUE
+      )
+    );
+    $this->actions['lockUsers']->setSeparator(TRUE);
   }
 
   /* !\brief  Lock/unlock multiple users.
    */
-  function lockUsers ($action, array $target, array $all)
-  {
-    if (!count($target)) {
-      return;
-    }
-    if ($action == 'lockUsers') {
-      $this->lockEntry($action, $target, $all, 'lock');
-    } else {
-      $this->lockEntry($action, $target, $all, 'unlock');
-    }
-  }
-
-
-  /* !\brief  Locks/unlocks the given user(s).
-   */
-  function lockEntry ($action, $entry, $all, $type = 'toggle')
+  function lockUsers (array $action)
   {
     global $config, $ui;
+    logging::debug(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $action, 'Lock');
+
     // Filter out entries we are not allowed to modify
     $disallowed = [];
     $allowed    = [];
-    foreach ($entry as $dn) {
-      if (!preg_match('/w/', $ui->get_permissions($dn, 'user/user', 'userLock'))) {
+    foreach ($action['targets'] as $dn) {
+      if (strpos($ui->get_permissions($dn, 'user/user', 'userLock'), 'w') === FALSE) {
         $disallowed[] = $dn;
       } else {
         $allowed[] = $dn;
       }
     }
     if (count($disallowed)) {
-      msg_dialog::display(_('Permission'), msgPool::permModify($disallowed), INFO_DIALOG);
+      $error = new FusionDirectoryPermissionError(msgPool::permModify($disallowed));
+      $error->display();
     }
 
     // Try to lock/unlock the rest of the entries.
-    $ldap = $config->get_ldap_link();
     foreach ($allowed as $dn) {
-      $ldap->cat($dn, ['userPassword']);
-      if ($ldap->count() == 1) {
-
-        // We can't lock empty passwords.
-        $val = $ldap->fetch();
-        if (!isset($val['userPassword'])) {
-          continue;
-        }
+      // We can't lock empty passwords.
+      $entry = $this->listing->getEntry($dn);
 
-        // Detect the password method and try to lock/unlock.
-        $pwd      = $val['userPassword'][0];
-        $method   = passwordMethod::get_method($pwd, $val['dn']);
-        $success  = TRUE;
-        if ($method instanceOf passwordMethod) {
-          if (!$method->is_lockable()) {
-            $hn = $method->get_hash_name();
-            if (is_array($hn)) {
-              $hn = $hn[0];
-            }
-            msg_dialog::display(_('Account locking'),
-                sprintf(_('Password method "%s" does not support locking. Account "%s" has not been locked!'),
-                  $hn, $dn), ERROR_DIALOG);
-            return;
-          }
-          if ($type == 'toggle') {
-            if ($method->is_locked($val['dn'])) {
-              $success = $method->unlock_account($val['dn']);
-            } else {
-              $success = $method->lock_account($val['dn']);
-            }
-          } elseif ($type == 'lock' && !$method->is_locked($val['dn'])) {
-            $success = $method->lock_account($val['dn']);
-          } elseif ($type == 'unlock' && $method->is_locked($val['dn'])) {
-            $success = $method->unlock_account($val['dn']);
-          }
-
-          // Check if everything went fine.
-          if (!$success) {
-            $hn = $method->get_hash_name();
-            if (is_array($hn)) {
-              $hn = $hn[0];
-            }
-            msg_dialog::display(_('Account locking'),
-                sprintf(_('Locking failed using password method "%s". Account "%s" has not been locked!'),
-                  $hn, $dn), ERROR_DIALOG);
-          }
-        }
-      }
-    }
-  }
-
-  static function filterLockImage ($userPassword)
-  {
-    $image = 'images/empty.png';
-    if (isset($userPassword[0]) && preg_match('/^\{[^\}]/', $userPassword[0])) {
-      if (preg_match('/^[^\}]*+\}!/', $userPassword[0])) {
-        $image = 'geticon.php?context=status&icon=object-locked&size=16';
-      } else {
-        $image = 'geticon.php?context=status&icon=object-unlocked&size=16';
-      }
+      // Detect the password method and try to lock/unlock.
+      static::lockUser($action['subaction'], ($entry['userPassword'][0] ?? ''), $dn);
     }
-    return $image;
   }
 
-  static function filterLockLabel ($userPassword)
-  {
-    $label = '';
-    if (isset($userPassword[0]) && preg_match('/^\{[^\}]/', $userPassword[0])) {
-      if (preg_match('/^[^\}]*+\}!/', $userPassword[0])) {
-        $label = _('Unlock account').'<rowClass:entry-locked/>';
-      } else {
-        $label = _('Lock account');
-      }
-    }
-    return $label;
-  }
-
-  static function filterProperties ($row, $dn, $attrs)
+  /* !\brief  Lock/unlock a user
+   *
+   * \param string $action  'lock' or 'unlock'
+   * \param string $pwd     userPassword value
+   * \param string $dn      dn of the LDAP node
+   */
+  static function lockUser (string $action, string $pwd, string $dn)
   {
-    global $config;
-    static $usertabs = [];
-    if (empty($usertabs)) {
-      foreach ($config->data['TABS']['USERTABS'] as $plug) {
-        if ($plug['CLASS'] == 'user') {
-          continue;
-        }
-        if (class_available($plug['CLASS'])) {
-          $name = $plug['CLASS'];
-
-          $usertabs[$name] = new $name('new');
+    $method = passwordMethod::get_method($pwd, $dn);
+    if ($method instanceOf passwordMethod) {
+      if (!$method->is_lockable()) {
+        $hn = $method->get_hash_name();
+        if (is_array($hn)) {
+          $hn = $hn[0];
         }
+        $error = new FusionDirectoryError(
+          htmlescape(sprintf(
+            _('Password method "%s" does not support locking. Account "%s" has not been locked!'),
+            $hn,
+            $dn
+          ))
+        );
+        $error->display();
+        return;
       }
-    }
 
-    // Load information if needed
-    $result = '<input class="center" type="image" src="geticon.php?context=applications&amp;icon=user-info&amp;size=16" '.
-                       'alt="'._('User account').'" title="'._('User account information').'" '.
-                       'name="listing_edit_tab_user_'.$row.'"/>';
-    if (!empty($attrs)) {
-      if (in_array_ics('fdTemplate', $attrs['objectClass'])) {
-        $attrs = templateHandling::fieldsFromLDAP($attrs);
+      $success = TRUE;
+      if (($action == 'lock') && !$method->is_locked($dn)) {
+        $success = $method->lock_account($dn);
+      } elseif (($action == 'unlock') && $method->is_locked($dn)) {
+        $success = $method->unlock_account($dn);
       }
-      foreach ($usertabs as $class => $usertab) {
-        if ($usertab->is_this_account($attrs)) {
-          $infos = pluglist::pluginInfos($class);
-          if (isset($infos['plSmallIcon'])) {
-            $result .= '<input class="center" type="image" src="'.htmlentities($infos['plSmallIcon'], ENT_COMPAT, 'UTF-8').'" '.
-                       'alt="'.$infos['plShortName'].'" title="'.$infos['plShortName'].'" '.
-                       'name="listing_edit_tab_'.$class.'_'.$row.'"/>';
-          } else {
-            @DEBUG(DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, $infos['plShortName']." ($class)", "No icon for");
-          }
-        } else {
-          $result .= '<img src="images/empty.png" alt="" class="center optional '.$class.'"/>';
+
+      // Check if everything went fine.
+      if (!$success) {
+        $hn = $method->get_hash_name();
+        if (is_array($hn)) {
+          $hn = $hn[0];
         }
+        $error = new FusionDirectoryError(
+          htmlescape(sprintf(
+            _('Locking failed using password method "%s". Account "%s" has not been locked!'),
+            $hn,
+            $dn
+          ))
+        );
+        $error->display();
       }
     }
-
-    return $result;
   }
 }
-?>
diff --git a/plugins/admin/users/main.inc b/plugins/admin/users/main.inc
deleted file mode 100644
index 1bbb9713b5df60d6b0e5b9bcc4640bab98248a55..0000000000000000000000000000000000000000
--- a/plugins/admin/users/main.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-simpleManagement::mainInc('userManagement');
-?>
diff --git a/plugins/admin/users/user-filter.tpl b/plugins/admin/users/user-filter.tpl
deleted file mode 100644
index e99124f3fcb6ee58eedf0a27a2d96d01804c7bb2..0000000000000000000000000000000000000000
--- a/plugins/admin/users/user-filter.tpl
+++ /dev/null
@@ -1,27 +0,0 @@
-<div class="contentboxh">
- <p>{t}Filter{/t}</p>
-</div>
-
-<div class="contentboxb">
-  {$FILTERTEMPLATE}&nbsp;<label for='FILTERTEMPLATE'>{t}Show templates{/t}</label><br/>
-  {$FUNCTIONAL}&nbsp;<label for='FUNCTIONAL'>{t}Show functional users{/t}</label><br/>
-  {if $USE_POSIX}
-    {$POSIX}&nbsp;<label for='POSIX'>{t}Show POSIX users{/t}</label><br/>
-  {/if}
-  {if $USE_MAIL}
-    {$MAIL}&nbsp;<label for='MAIL'>{t}Show Mail users{/t}</label><br/>
-  {/if}
-  {if $USE_SAMBA}
-    {$SAMBA}&nbsp;<label for='SAMBA'>{t}Show Samba users{/t}</label><br/>
-  {/if}
-
-  <hr/>
-  {$SCOPE}
-  <hr/>
-
-  <label for="NAME" title="{$NAMEDESC}"><img src="geticon.php?context=actions&amp;icon=system-search&amp;size=16" alt="Search"/></label>{$NAME}
-
-  <div>
-    {$APPLY}
-  </div>
-</div>
diff --git a/plugins/admin/users/user-filter.xml b/plugins/admin/users/user-filter.xml
deleted file mode 100644
index 0160c99400a63aee301f7e6e39fcad1d57e0e7e7..0000000000000000000000000000000000000000
--- a/plugins/admin/users/user-filter.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<filterdef>
-  <definition>
-    <category>user</category>
-    <template>user-filter.tpl</template>
-    <initial>true</initial>
-  </definition>
-
-  <search>
-    <query>
-      <backend>LDAP</backend>
-      <filter>(&amp;$NAME(|(&amp;(objectClass=inetOrgPerson)(|$FUNCTIONAL$SAMBA$POSIX$MAIL))$FILTERTEMPLATE))</filter>
-      <attribute>*</attribute>
-    </query>
-    <scope>auto</scope>
-  </search>
-
-  <element>
-    <type>textfield</type>
-    <tag>NAME</tag>
-    <size>20</size>
-    <maxlength>60</maxlength>
-    <default></default>
-    <unset></unset>
-    <set>(|(cn=*$*)(sn=*$*)(givenName=*$*)(uid=*$*)(mail=*$*))</set>
-    <alphabet>true</alphabet>
-    <autocomplete>
-      <backend>LDAP</backend>
-      <filter>(&amp;(objectClass=inetOrgPerson)(|(cn=*$NAME*)(sn=*$NAME*)(givenName=*$NAME*)(uid=*$NAME*)(mail=*$NAME*)))</filter>
-      <attribute>cn</attribute>
-      <attribute>sn</attribute>
-      <attribute>givenName</attribute>
-      <attribute>uid</attribute>
-      <attribute>mail</attribute>
-      <frequency>0.5</frequency>
-      <characters>3</characters>
-    </autocomplete>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>FILTERTEMPLATE</tag>
-    <default></default>
-    <unset></unset>
-    <set>(objectClass=fdTemplate)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>FUNCTIONAL</tag>
-    <default>true</default>
-    <unset></unset>
-    <!-- The set tag content is defined in userManagement::configureFilter -->
-    <set>UNSET</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>POSIX</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=posixAccount)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>MAIL</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=gosaMailAccount)</set>
-  </element>
-
-  <element>
-    <type>checkbox</type>
-    <tag>SAMBA</tag>
-    <default>true</default>
-    <unset></unset>
-    <set>(objectClass=sambaSamAccount)</set>
-  </element>
-
-</filterdef>
diff --git a/plugins/admin/users/user-list.xml b/plugins/admin/users/user-list.xml
deleted file mode 100644
index 45ba2194cd2ba58cb6b40aff4d82ff9fb168dc8a..0000000000000000000000000000000000000000
--- a/plugins/admin/users/user-list.xml
+++ /dev/null
@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<list>
-  <definition>
-    <departmentBrowser>true</departmentBrowser>
-    <departmentRootVisible>false</departmentRootVisible>
-    <baseMode>true</baseMode>
-    <multiSelect>true</multiSelect>
-    <template>simple-list.tpl</template>
-    <module>users</module>
-    <label>List of users</label>
-    <defaultSortColumn>1</defaultSortColumn>
-
-  </definition>
-
-  <table>
-    <layout>|20px;c||||150px-d|185px-d;r|</layout>
-
-    <department>
-      <value>%{filter:departmentType(row,dn)}</value>
-    </department>
-
-    <department>
-      <value>%{filter:departmentLink(row,dn,description)}</value>
-      <span>3</span>
-    </department>
-
-    <column>
-      <value>%{filter:objectType(row,dn)}</value>
-    </column>
-
-    <column>
-      <label>Surname</label>
-      <sortAttribute>sn</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:link(row,dn,"%s",sn,cn)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Given name</label>
-      <sortAttribute>givenName</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:link(row,dn,"%s",givenName)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Login</label>
-      <sortAttribute>uid</sortAttribute>
-      <sortType>string</sortType>
-      <value>%{filter:link(row,dn,"%s",uid)}</value>
-      <export>true</export>
-    </column>
-
-    <column>
-      <label>Properties</label>
-      <value>%{filter:filterProperties(row,dn,entry)}</value>
-    </column>
-
-    <column>
-      <label>Actions</label>
-      <value>%{filter:actions(dn,row,objectClass)}</value>
-    </column>
-
-  </table>
-
-  <actionmenu>
-
-    <action>
-      <type>sub</type>
-      <image>geticon.php?context=actions&amp;icon=document-new&amp;size=16</image>
-      <label>Create</label>
-
-      <action>
-        <name>new_user</name>
-        <type>entry</type>
-        <image>geticon.php?context=types&amp;icon=user&amp;size=16</image>
-        <label>User</label>
-        <acl>user/user[c]</acl>
-      </action>
-
-      <action>
-        <name>template_apply_user</name>
-        <type>entry</type>
-        <image>geticon.php?context=types&amp;icon=user&amp;size=16</image>
-        <label>From template</label>
-        <acl>user/user[c]</acl>
-      </action>
-
-      <action>
-        <name>new_template_user</name>
-        <type>entry</type>
-        <image>geticon.php?context=actions&amp;icon=document-new&amp;size=16</image>
-        <label>Template</label>
-        <acl>user/template[c]</acl>
-      </action>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <name>edit</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=document-edit&amp;size=16</image>
-      <label>Edit</label>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <label>Remove</label>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <name>lockUsers</name>
-      <type>entry</type>
-      <image>geticon.php?context=status&amp;icon=object-locked&amp;size=16</image>
-      <acl>user/user[userPassword:rw]</acl>
-      <label>Lock users</label>
-    </action>
-
-    <action>
-      <name>unlockUsers</name>
-      <type>entry</type>
-      <image>geticon.php?context=status&amp;icon=object-unlocked&amp;size=16</image>
-      <acl>user/user[userPassword:rw]</acl>
-      <label>Unlock users</label>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <name>template_apply_to_user</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=tools-wizard&amp;size=16</image>
-      <label>Apply template</label>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>exporter</type>
-    </action>
-
-    <action>
-      <type>separator</type>
-    </action>
-
-    <action>
-      <type>copypaste</type>
-    </action>
-
-    <action>
-      <type>snapshot</type>
-    </action>
-
-  </actionmenu>
-
-  <actiontriggers snapshot="true" copypaste="true">
-    <action>
-      <name>template_apply_user</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=document-new&amp;size=16</image>
-      <objectclass>fdTemplate</objectclass>
-      <label>New user from template</label>
-    </action>
-
-    <action>
-      <name>cp</name>
-      <type>copypaste</type>
-    </action>
-
-    <action>
-      <name>edit</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=document-edit&amp;size=16</image>
-      <label>Edit user</label>
-    </action>
-
-    <action>
-      <name>lock</name>
-      <type>entry</type>
-      <objectclass>!fdTemplate</objectclass>
-      <image>%{filter:lockImage(userPassword)}</image>
-      <acl>user/user[userPassword:rw]</acl>
-      <label>%{filter:lockLabel(userPassword)}</label>
-    </action>
-
-    <action>
-      <name>snapshot</name>
-      <type>snapshot</type>
-      <objectclass>!fdTemplate</objectclass>
-    </action>
-
-    <action>
-      <name>remove</name>
-      <type>entry</type>
-      <image>geticon.php?context=actions&amp;icon=edit-delete&amp;size=16</image>
-      <acl>user/user[d]</acl>
-      <label>Remove user</label>
-    </action>
-
-  </actiontriggers>
-
-</list>
diff --git a/plugins/config/class_DebugLevelAttribute.inc b/plugins/config/class_DebugLevelAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..b1ac991109cf41239948ad64f61d4f6cfd742d39
--- /dev/null
+++ b/plugins/config/class_DebugLevelAttribute.inc
@@ -0,0 +1,48 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2019 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/* Debug level is an OR combination of several values */
+class DebugLevelAttribute extends SetAttribute
+{
+  protected function loadAttrValue (array $attrs)
+  {
+    if (isset($attrs[$this->getLdapName()])) {
+      $value = $attrs[$this->getLdapName()][0];
+      $this->value = [];
+      foreach ($this->attribute->getChoices() as $choice) {
+        if ($value & $choice) {
+          $this->value[] = $choice;
+        }
+      }
+    } else {
+      $this->resetToDefault();
+    }
+  }
+
+  function computeLdapValue ()
+  {
+    $value = 0;
+    foreach ($this->value as $v) {
+      $value |= $v;
+    }
+    return $value;
+  }
+}
diff --git a/plugins/config/class_configInLdap.inc b/plugins/config/class_configInLdap.inc
index a3485ec979a03dde3978cb4f27fdc1022dee1ed2..8cf0034b45ef282dcfce54cfaf8bb38848e47d40 100644
--- a/plugins/config/class_configInLdap.inc
+++ b/plugins/config/class_configInLdap.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018 FusionDirectory
+
+  Copyright (C) 2012-2019 FusionDirectory
 
   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
@@ -18,50 +19,21 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-/* Debug level is an OR combination of several values */
-class DebugLevelAttribute extends SetAttribute
-{
-  protected function loadAttrValue ($attrs)
-  {
-    if (isset($attrs[$this->getLdapName()])) {
-      $value = $attrs[$this->getLdapName()][0];
-      $this->value = [];
-      foreach ($this->attribute->getChoices() as $choice) {
-        if ($value & $choice) {
-          $this->value[] = $choice;
-        }
-      }
-    } else {
-      $this->resetToDefault();
-    }
-  }
-
-  function computeLdapValue ()
-  {
-    $value = 0;
-    foreach ($this->value as $v) {
-      $value |= $v;
-    }
-    return $value;
-  }
-}
-
 class configInLdap extends simplePlugin
 {
-  var $objectclasses  = ["fusionDirectoryConf"];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'     => _('Configuration'),
       'plTitle'         => _('FusionDirectory configuration'),
       'plDescription'   => _('Configuration screen of FusionDirectory'),
       'plIcon'          => 'geticon.php?context=categories&icon=settings&size=48',
+      'plObjectClass'   => ['fusionDirectoryConf'],
       'plObjectType'    => [
         'configuration' => [
           'name'      => _('FusionDirectory configuration'),
           'filter'    => 'objectClass=fusionDirectoryConf',
-          'tabClass'  => 'tabs_configInLdap',
+          'tabClass'  => 'configInLdapTabs',
           'icon'      => 'geticon.php?context=categories&icon=settings&size=16',
           'mainAttr'  => FALSE,
           'ou'        => preg_replace('/^[^,]+,/', '', CONFIGRDN)
@@ -75,14 +47,10 @@ class configInLdap extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     global $config;
-    $plugins = [];
-    if (session::is_set('plist')) {
-      $plugins = array_keys(session::get('plist')->info);
-    }
-    sort($plugins);
+
     return [
       'look_n_feel' => [
         'name'  => _('Look and feel'),
@@ -104,6 +72,7 @@ class configInLdap extends simplePlugin
             ['America/New_York']
           ),
           new HiddenAttribute('fusionConfigMd5'),
+          new HiddenAttribute('fdIncrementalModifierStates'),
         ]
       ],
       'core_settings' => [
@@ -133,17 +102,7 @@ class configInLdap extends simplePlugin
             TRUE
           ),
           new BooleanAttribute(
-            _('Enable snapshots'), _('This enables you to save certain states of entries and restore them later on.'),
-            'fdEnableSnapshots', FALSE,
-            TRUE
-          ),
-          new StringAttribute(
-            _('Snapshot base'), _('The base where snapshots should be stored inside of the LDAP.'),
-            'fdSnapshotBase', FALSE,
-            'ou=snapshots,'.$config->current['BASE']
-          ),
-          new BooleanAttribute(
-            _('Wildcard foreign keys'), _('Enables wildcard searches like member=* when moving a whole departement. This will open all existing groups and roles to make sure foreign keys are respected. Slow on big trees.'),
+            _('Wildcard foreign keys'), _('Enables wildcard searches like member=* when moving a whole department. This will open all existing groups and roles to make sure foreign keys are respected. Slow on big trees.'),
             'fdWildcardForeignKeys', FALSE,
             TRUE
           ),
@@ -152,6 +111,13 @@ class configInLdap extends simplePlugin
       'password' => [
         'name'  => _('Password settings'),
         'attrs' => [
+          new SetAttribute(
+            new SelectAttribute(
+              _('Allowed password hashes'), _('Password hashes which may be used for user passwords'),
+              'fdPasswordAllowedHashes', TRUE,
+              ['ssha']
+            )
+          ),
           new SelectAttribute(
             _('Password default hash'), _('Default hash to be used'),
             'fdPasswordDefaultHash', TRUE,
@@ -212,15 +178,10 @@ class configInLdap extends simplePlugin
             'fdSessionLifeTime', TRUE,
             0 /*min*/, FALSE /*no max*/, 1800
           ),
-          new BooleanAttribute(
-            _('HTTP Basic authentication'), _('Use HTTP Basic authentication protocol instead of the login form.'),
-            'fdHttpAuthActivated', FALSE,
-            FALSE
-          ),
-          new BooleanAttribute(
-            _('HTTP Header authentication'), _('Use HTTP Header authentication instead of the login form.'),
-            'fdHttpHeaderAuthActivated', FALSE,
-            FALSE
+          new SelectAttribute(
+            _('Login method'),
+            _('Which login method should be used for connecting to FusionDirectory'),
+            'fdLoginMethod', TRUE
           ),
           new StringAttribute(
             _('Header name'), _('Name of the header containing user identifier.'),
@@ -252,11 +213,6 @@ class configInLdap extends simplePlugin
       'cas' => [
         'name'  => _('CAS'),
         'attrs' => [
-          new BooleanAttribute(
-            _('Enable CAS'), _('CAS login will be used instead of LDAP bind'),
-            'fdCasActivated', FALSE,
-            FALSE
-          ),
           new TrimmedStringAttribute(
             _('CA certificate path'), _('Path to the CA certificate of the CAS server'),
             'fdCasServerCaCertPath', FALSE,
@@ -277,6 +233,18 @@ class configInLdap extends simplePlugin
             'fdCasContext', FALSE,
             '/cas'
           ),
+          new BooleanAttribute(
+            _('Verbose error'), _('Activate verbose errors in phpCAS. Avoid in production.'),
+            'fdCasVerbose', FALSE
+          ),
+          new BooleanAttribute(
+            _('Library CAS 1.6'), _('Activate if library CAS >= 1.6 is being used.'),
+            'fdCasLibraryBool', FALSE
+          ),
+          new StringAttribute(
+            _('Client service'), _('The client service name'),
+            'fdCasClientServiceName', FALSE
+          ),
         ]
       ],
       'people_and_group' => [
@@ -284,7 +252,7 @@ class configInLdap extends simplePlugin
         'class' => ['critical'],
         'attrs' => [
           new SelectAttribute(
-            _('People DN attribute'), _('Attribute to use at the beginning of users dn'),
+            _('People DN attribute'), _('Attribute to use at the beginning of the user dn'),
             'fdAccountPrimaryAttribute', TRUE,
             ['uid', 'cn']
           ),
@@ -293,6 +261,12 @@ class configInLdap extends simplePlugin
             'fdCnPattern', TRUE,
             '%givenName% %sn%'
           ),
+          new BooleanAttribute(
+            _('Mandatory first name'),
+            _('Whether first name (givenName) should be a mandatory field on users'),
+            'fdGivenNameRequired', FALSE,
+            TRUE
+          ),
           new BooleanAttribute(
             _('Strict naming policy'),
             _('Enables strict checking of user and group names'),
@@ -321,14 +295,19 @@ class configInLdap extends simplePlugin
             _('Postal address pattern'), _('When using separate address fields, you can use a pattern to fill postalAddress field.'),
             'fdPostalAddressPattern'
           ),
+          new IntAttribute(
+            _('Avatar max size'), _('Maximum user picture width and height in pixels. Bigger uploaded pictures will be resized.'),
+            'fdMaxAvatarSize', FALSE,
+            1, FALSE, 200
+          ),
         ]
       ],
       'debug' => [
         'name'  => _('Debugging'),
         'attrs' => [
           new BooleanAttribute(
-            _('Display errors'),
-            _('Shows PHP errors in the upper part of the screen. This should be disabled in productive deployments, because there might be some passwords in it.'),
+            _('Display PHP errors'),
+            _('Shows PHP errors in the upper part of the screen. This should be disabled in production deployments, because it may contain passwords.'),
             'fdDisplayErrors'
           ),
           new IntAttribute(
@@ -353,6 +332,11 @@ class configInLdap extends simplePlugin
                     'SESSION',      'ACL',      'SI',     'Mail']
             )
           ),
+          new BooleanAttribute(
+            _('Log debug messages'),
+            _('Sends debug output to syslog as well'),
+            'fdDebugLogging'
+          ),
         ]
       ],
       'miscellaneous' => [
@@ -398,48 +382,13 @@ class configInLdap extends simplePlugin
             // no order
             FALSE,
             []
-          )
-        ]
-      ],
-      'hooks' => [
-        'name'  => _('Hooks'),
-        'class' => ['fullwidth'],
-        'attrs' => [
-          new OrderedArrayAttribute(
-            new CompositeAttribute(
-              _('Hooks that are called when specific actions happens'),
-              'fdTabHook',
-              [
-                new SelectAttribute(
-                  _('Tab'), _('The tab that this hook concerns'),
-                  'hookTab', TRUE,
-                  $plugins
-                ),
-                new SelectAttribute(
-                  _('Mode'), _('When to call this command'),
-                  'hookMode', TRUE,
-                  ['postcreate', 'postremove', 'postmodify',
-                        'precreate', 'preremove', 'premodify', 'check',
-                        'prelock', 'postlock', 'preunlock', 'postunlock']
-                ),
-                new TextAreaAttribute(
-                  _('Command'), _('The command that will be called'),
-                  'hookCmd', TRUE
-                )
-              ],
-              '/^([^\\|]+)\\|([^\\|]+)\\|(.*)$/',
-              '%s|%s|%s',
-              '', // acl
-              _('Hooks')
-            ),
-            FALSE, // non-ordered
-            [],
-            TRUE // edition
           ),
-          new BooleanAttribute(
-            _('Display hook output'),
-            _('When enabled successful hook execution output is displayed to the user using a dialog.'),
-            'fdDisplayHookOutput'
+          // Needed here for ACLs
+          new HiddenAttribute('fdManagementConfig'),
+          new IntAttribute(
+            _('ACL target filter limit'), _('Defines the maximum number of entries an ACL target filter is allowed to return'),
+            'fdAclTargetFilterLimit', FALSE,
+            0 /*min*/, FALSE /*no max*/, 100
           ),
         ]
       ],
@@ -463,7 +412,13 @@ class configInLdap extends simplePlugin
     if (!in_array('sasl', $methods)) {
       $methods[] = 'sasl';
     }
-    $attributesInfo['password']['attrs'][0]->setChoices($methods);
+    $attributesInfo['password']['attrs'][0]->attribute->setChoices($methods);
+    $attributesInfo['password']['attrs'][0]->setDefaultValue($methods);
+    $attributesInfo['password']['attrs'][0]->resetToDefault();
+    $attributesInfo['password']['attrs'][1]->setChoices($methods);
+    /* Login methods */
+    $methods = LoginMethod::getMethods();
+    $attributesInfo['login']['attrs'][4]->setChoices(array_keys($methods), array_values($methods));
 
     $groupsAndRoles = array_merge(
       array_map(
@@ -490,7 +445,7 @@ class configInLdap extends simplePlugin
     foreach ($config->data['SECTIONS'] as $section => $section_infos) {
       foreach ($config->data['MENU'][$section] as $info) {
         if (isset($info['CLASS'])) {
-          list($plHeadline, , , ) = $plist->get_infos($info['CLASS']);
+          list ($plHeadline, , , ) = $plist->get_infos($info['CLASS']);
           $menuPlugins[$info['CLASS']] = $plHeadline;
         }
       }
@@ -510,82 +465,129 @@ class configInLdap extends simplePlugin
 
     $this->fusionConfigMd5 = md5_file(CACHE_DIR."/".CLASS_CACHE);
 
-    $this->attributesAccess['fdHttpAuthActivated']->setManagedAttributes(
+    $this->attributesAccess['fdForceSSL']->setManagedAttributes(
       [
-        'erase' => [
+        'disable' => [
           TRUE => [
-            'fdCasActivated',
+            'fdWarnSSL',
           ]
         ]
       ]
     );
-    $this->attributesAccess['fdEnableSnapshots']->setManagedAttributes(
+    $this->attributesAccess['fdSplitPostalAddress']->setManagedAttributes(
       [
         'disable' => [
           FALSE => [
-            'fdSnapshotBase',
+            'fdPostalAddressPattern',
           ]
         ]
       ]
     );
 
-    $this->attributesAccess['fdTabHook']->setLinearRendering(FALSE);
-
-    $this->attributesAccess['fdForceSSL']->setManagedAttributes(
+    // CAS boolean case to allow the use of CAS library >= 1.6
+    $this->attributesAccess['fdCasLibraryBool']->setManagedAttributes(
       [
         'disable' => [
-          TRUE => [
-            'fdWarnSSL',
+          FALSE => [
+            'fdCasClientServiceName',
           ]
         ]
       ]
     );
-    $this->attributesAccess['fdCasActivated']->setManagedAttributes(
+
+    $this->attributesAccess['fdLoginMethod']->setManagedAttributes(
       [
+        'multiplevalues' => [
+          'noncas'    => [
+            'LoginPost',
+            'LoginHTTPAuth',
+            'LoginHTTPHeader',
+          ],
+          'nonheader' => [
+            'LoginPost',
+            'LoginCAS',
+            'LoginHTTPAuth'
+          ],
+        ],
         'disable' => [
-          FALSE => [
+          'noncas' => [
             'fdCasServerCaCertPath',
             'fdCasHost',
             'fdCasPort',
             'fdCasContext',
-          ]
-        ]
-      ]
-    );
-    $this->attributesAccess['fdHttpHeaderAuthActivated']->setManagedAttributes(
-      [
-        'disable' => [
-          FALSE => [
+            'fdCasVerbose',
+            'fdCasClientServiceName',
+            'fdCasLibraryBool'
+          ],
+          'nonheader' => [
             'fdHttpHeaderAuthHeaderName',
           ]
         ]
       ]
     );
-    $this->attributesAccess['fdSplitPostalAddress']->setManagedAttributes(
-      [
-        'disable' => [
-          FALSE => [
-            'fdPostalAddressPattern',
-          ]
-        ]
-      ]
+    if (empty($this->attrs['fdLoginMethod'][0])) {
+      // Reading OBSOLETE attributes from FD<1.4 to ease migration
+      if (isset($this->attrs['fdHttpAuthActivated'][0]) && ($this->attrs['fdHttpAuthActivated'][0] == 'TRUE')) {
+        $this->fdLoginMethod = 'LoginHTTPAuth';
+      } elseif (isset($this->attrs['fdCasActivated'][0]) && ($this->attrs['fdCasActivated'][0] == 'TRUE')) {
+        $this->fdLoginMethod = 'LoginCAS';
+      } elseif (isset($this->attrs['fdHttpHeaderAuthActivated'][0]) && ($this->attrs['fdHttpHeaderAuthActivated'][0] == 'TRUE')) {
+        $this->fdLoginMethod = 'LoginHTTPHeader';
+      }
+    }
+
+    $this->attributesAccess['fdPasswordDefaultHash']->setChoices(
+      $this->attributesAccess['fdPasswordAllowedHashes']->getValue()
     );
   }
 
-  function compute_dn ()
+  function compute_dn (): string
   {
     return $this->dn;
   }
 
-  function check ()
+  function check (): array
   {
     $messages = parent::check();
     if (($this->fdPasswordDefaultHash == 'sasl') && ($this->fdSaslRealm == '') && ($this->fdSaslExop == '')) {
-      $messages[] = _('You need to fill saslRealm or saslExop in the configuration screen in order to use SASL');
+      $messages[] = new SimplePluginCheckError(
+        $this,
+        htmlescape(_('You need to fill saslRealm or saslExop in the configuration screen in order to use SASL'))
+      );
+    }
+    if ($this->attributesAccess['fdLanguage']->hasChanged() && ($this->fdLanguage != '') && !Language::isAvailable($this->fdLanguage)) {
+      $messages[] = new SimplePluginCheckError(
+        $this->attributesAccess['fdLanguage'],
+        htmlescape(sprintf(_('It seems the selected language "%s" is not installed on the system. Please install it or select an other one.'), $this->fdLanguage))
+      );
     }
+
+    if (($this->fdLdapSizeLimit !== '') && ($this->fdLdapSizeLimit > 0)) {
+      $error = ldapSizeLimit::checkMaxInputVars($this->fdLdapSizeLimit);
+      if ($error !== FALSE) {
+        $messages[] = new SimplePluginCheckError(
+          $this->attributesAccess['fdLdapSizeLimit'],
+          $error->getHtmlMessage(),
+          $error->getCode(),
+          $error
+        );
+      }
+    }
+
     return $messages;
   }
 
+  public function update (): bool
+  {
+    $res = parent::update();
+
+    $this->attributesAccess['fdPasswordDefaultHash']->setChoices(
+      $this->attributesAccess['fdPasswordAllowedHashes']->getValue()
+    );
+
+    return $res;
+  }
+
   static function get_themes ()
   {
     $themesdir  = '../ihtml/themes/';
@@ -599,5 +601,19 @@ class configInLdap extends simplePlugin
     }
     return array_unique($themes);
   }
+
+  static function mainInc ($classname = NULL, $entry_dn = NULL, $tabs = TRUE, $edit_mode = TRUE, $objectType = FALSE)
+  {
+    global $config;
+
+    if ($classname === NULL) {
+      $classname = get_called_class();
+    }
+
+    if ($entry_dn === NULL) {
+      $entry_dn = CONFIGRDN.$config->current['BASE'];
+    }
+
+    parent::mainInc($classname, $entry_dn, $tabs, $edit_mode, $objectType);
+  }
 }
-?>
diff --git a/plugins/config/tabs_configInLdap.inc b/plugins/config/class_configInLdapTabs.inc
similarity index 94%
rename from plugins/config/tabs_configInLdap.inc
rename to plugins/config/class_configInLdapTabs.inc
index 0df3024dc8f2eacd739dbf01b09d7cfce16372a8..243e0dcaacdf1a399bffc173fca5c7dfd5cfee97 100644
--- a/plugins/config/tabs_configInLdap.inc
+++ b/plugins/config/class_configInLdapTabs.inc
@@ -19,7 +19,7 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class tabs_configInLdap extends simpleTabs
+class configInLdapTabs extends simpleTabs
 {
   function save ()
   {
@@ -29,7 +29,7 @@ class tabs_configInLdap extends simpleTabs
     $config->check_and_reload(TRUE);
     /* reload plist as well as some plInfo might use $config or get_ou */
     session::un_set('plist');
-    load_plist();
+    pluglist::load();
     session::un_set('passwordMethod::get_available_methods');
 
     return $errors;
diff --git a/plugins/config/class_dashBoardConfig.inc b/plugins/config/class_dashBoardConfig.inc
index f2a7d96dfd21033b499f506deff4ab4e6d128556..a74e23110d4b40e2c97456919815073c0e6970fa 100644
--- a/plugins/config/class_dashBoardConfig.inc
+++ b/plugins/config/class_dashBoardConfig.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018 FusionDirectory
+  Copyright (C) 2013-2016 FusionDirectory
 
   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
@@ -18,24 +18,23 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class dashboardConfig extends simplePlugin
+class dashboardConfig extends multiPluginSection
 {
-  var $objectclasses  = ['fdDashboardPluginConf'];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'     => _('Dashboard configuration'),
       'plDescription'   => _('FusionDirectory dashboard plugin configuration'),
-      'plSelfModify'    => FALSE,
       'plCategory'      => ['configuration'],
+      'plObjectClass'   => ['fdDashboardPluginConf'],
       'plObjectType'    => ['smallConfig'],
+      'plPriority'      => 2,
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'systems' => [
@@ -68,4 +67,3 @@ class dashboardConfig extends simplePlugin
     ];
   }
 }
-?>
diff --git a/plugins/config/class_hooksConfig.inc b/plugins/config/class_hooksConfig.inc
new file mode 100644
index 0000000000000000000000000000000000000000..759543f7894e6845605a10f1a9070cd503da1d77
--- /dev/null
+++ b/plugins/config/class_hooksConfig.inc
@@ -0,0 +1,113 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
+  Copyright (C) 2012-2019 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class hooksConfig extends simplePlugin
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'     => _('Triggers'),
+      'plTitle'         => _('Triggers configuration'),
+      'plPriority'      => 1,
+      'plObjectType'    => ['configuration'],
+
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    global $config;
+
+    $plugins = [];
+    if (session::is_set('plist')) {
+      $plugins = array_keys(session::get('plist')->info);
+    }
+    sort($plugins);
+
+    return [
+      'triggers' => [
+        'name'  => _('Triggers'),
+        'class' => ['fullwidth'],
+        'attrs' => [
+          new BooleanAttribute(
+            _('Display trigger output'),
+            _('When enabled successful trigger execution output is displayed to the user using a dialog.'),
+            'fdDisplayHookOutput'
+          ),
+          new OrderedArrayAttribute(
+            new CompositeAttribute(
+              _('Triggers that are called when specific actions happens'),
+              'fdTabHook',
+              [
+                new SelectAttribute(
+                  _('Tab'), _('The tab that this trigger concerns'),
+                  'triggerTab', TRUE,
+                  $plugins
+                ),
+                new SelectAttribute(
+                  _('Mode'), _('When to call this command'),
+                  'triggerMode', TRUE,
+                  ['postcreate', 'postremove', 'postmodify',
+                        'precreate', 'preremove', 'premodify', 'check',
+                        'prelock', 'postlock', 'preunlock', 'postunlock']
+                ),
+                new BooleanAttribute(
+                  _('Deactivated'), _('Use this to temporarily deactivate a trigger'),
+                  'triggerDecativate', TRUE,
+                  FALSE, '',
+                  '#', ''
+                ),
+                new TextAreaAttribute(
+                  _('Command'), _('The command that will be called'),
+                  'triggerCmd', TRUE
+                )
+              ],
+              '/^([^\\|]+)\\|([^\\|]+)\\|(#?)(.*)$/',
+              '%s|%s|%s%s',
+              '', // acl
+              _('Triggers')
+            ),
+            FALSE, // non-ordered
+            [],
+            TRUE // edition
+          ),
+        ]
+      ],
+    ];
+  }
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+
+    parent::__construct($dn, $object, $parent, $mainTab);
+
+    $this->attributesAccess['fdTabHook']->setLinearRendering(FALSE);
+    $this->attributesAccess['fdTabHook']->setHeaders([
+      _('Tab'),
+      _('Mode'),
+      _('Deactivated'),
+      _('Command'),
+      '',
+    ]);
+  }
+}
diff --git a/plugins/config/class_mailTemplateConfig.inc b/plugins/config/class_mailTemplateConfig.inc
new file mode 100644
index 0000000000000000000000000000000000000000..f8e8f4cd014bbfffd137d3c0b9356ae9b8fe84cb
--- /dev/null
+++ b/plugins/config/class_mailTemplateConfig.inc
@@ -0,0 +1,52 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2022 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class mailTemplateConfig extends multiPluginSection
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'     => _('mail template configuration'),
+      'plDescription'   => _('FusionDirectory mail template plugin configuration'),
+      'plObjectClass'   => ['fdMailTemplateConf'],
+      'plCategory'      => ['configuration'],
+      'plObjectType'    => ['smallConfig'],
+
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      'mailTemplateConf' => [
+        'name'  => _('Mail Template'),
+        'attrs' => [
+          new StringAttribute(
+            _('Mail Template RDN'), _('Branch in which mails templates will be stored'),
+            'fdMailTemplateRDN', TRUE,
+            'ou=mailTemplate'
+          ),
+        ]
+      ],
+    ];
+  }
+}
+
diff --git a/plugins/config/class_mainPluginsConfig.inc b/plugins/config/class_mainPluginsConfig.inc
index e1c1c274963458635bbd538e3f4f60537fa11d48..47169515c6c1565cc087c260e16dfdb36a3af212 100644
--- a/plugins/config/class_mainPluginsConfig.inc
+++ b/plugins/config/class_mainPluginsConfig.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018 FusionDirectory
+  Copyright (C) 2012-2017 FusionDirectory
 
   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
@@ -18,24 +18,23 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class mainPluginsConfig extends simplePlugin
+class mainPluginsConfig extends multiPluginSection
 {
-  var $objectclasses  = ["fusionDirectoryPluginsConf"];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
-      "plShortName"     => _("Plugins configuration"),
-      "plDescription"   => _("FusionDirectory plugins configuration"),
-      "plSelfModify"    => FALSE,
-      "plCategory"      => ["configuration"],
-      "plObjectType"    => ["smallConfig"],
+      'plShortName'     => _('Plugins configuration'),
+      'plDescription'   => _('FusionDirectory plugins configuration'),
+      'plCategory'      => ['configuration'],
+      'plObjectClass'   => ['fusionDirectoryPluginsConf'],
+      'plObjectType'    => ['smallConfig'],
+      'plPriority'      => 1,
 
-      "plProvidedAcls"  => parent::generatePlProvidedAcls(static::getAttributesInfo())
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'ogroups' => [
@@ -52,7 +51,7 @@ class mainPluginsConfig extends simplePlugin
         'name'  => _('SASL'),
         'attrs' => [
           new BooleanAttribute(
-            _('Force to ask for password'), _('Useful if you add a hook using password value when SASL user passwords are edited'),
+            _('Force asking for a password'), _('Useful if you add a trigger using password value when SASL user passwords are edited'),
             'fdForceSaslPasswordAsk', TRUE,
             FALSE
           ),
@@ -61,4 +60,3 @@ class mainPluginsConfig extends simplePlugin
     ];
   }
 }
-?>
diff --git a/plugins/config/class_pluginsConfigInLdap.inc b/plugins/config/class_pluginsConfigInLdap.inc
index daea9f31334b63dd811c201cd97c04ec48d9b626..1fb9ea1f9b9f51225a53365ed8f52ffaaee32b40 100644
--- a/plugins/config/class_pluginsConfigInLdap.inc
+++ b/plugins/config/class_pluginsConfigInLdap.inc
@@ -20,17 +20,20 @@
 
 class pluginsConfigInLdap extends multiPlugin
 {
-  var $tabClass = 'SMALLCONFIGTABS';
+  protected static $tabClass = 'SMALLCONFIGTABS';
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('Plugins'),
       'plDescription' => _('Configuration for plugins'),
-      'plPriority'    => 20,
+      'plPriority'    => 2,
       'plObjectType'  => ['configuration'],
       'plSubTabs'     => 'SMALLCONFIGTABS',
 
+      /* This is incomplete because of dynamic loading, but is enough to generate a filter for this tab */
+      'plObjectClass'   => ['fusionDirectoryPluginsConf'],
+
       'plProvidedAcls'  => []
     ];
   }
diff --git a/plugins/config/class_recoveryConfig.inc b/plugins/config/class_recoveryConfig.inc
index 27ef1ed18e0d1167e14f748ac00780777a312fd0..aa0303f25a8f273dcb0d610cd969265fc15b431b 100644
--- a/plugins/config/class_recoveryConfig.inc
+++ b/plugins/config/class_recoveryConfig.inc
@@ -1,7 +1,7 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -20,20 +20,21 @@
 
 class recoveryConfig extends simplePlugin
 {
-  var $objectclasses  = ['fdPasswordRecoveryConf'];
-
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
-      'plShortName'     => _('Password recovery'),
+      'plShortName'     => _('Recovery'),
+      'plTitle'         => _('Password recovery'),
       'plDescription'   => _('Settings for the password recovery feature'),
+      'plObjectClass'   => ['fdPasswordRecoveryConf'],
+      'plPriority'      => 14,
       'plObjectType'    => ['configuration'],
 
       'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return  [
       'settings' => [
@@ -43,7 +44,7 @@ class recoveryConfig extends simplePlugin
         'attrs'     => [
           new BooleanAttribute(
             _('Activate password recovery'),
-            _('Whether to activate or not password recovery feature'),
+            _('Whether to activate the password recovery feature or not'),
             'fdPasswordRecoveryActivated',
             FALSE
           ),
@@ -70,7 +71,7 @@ class recoveryConfig extends simplePlugin
           ),
           new BooleanAttribute(
             _('Allow the use of alternate addresses'),
-            _('Users will also be able to enter one of theirs alternate addresses to recover their password'),
+            _('Users will also be able to enter one of their alternate addresses to recover their password'),
             'fdPasswordRecoveryUseAlternate',
             FALSE
           ),
@@ -131,13 +132,10 @@ class recoveryConfig extends simplePlugin
     $ldap->cat($tokenBranch, ['dn']);
     if (!$ldap->count()) {
       $ldap->cd($config->current['BASE']);
-      $ldap->create_missing_trees($tokenBranch);
-      if (!$ldap->success()) {
-        msg_dialog::display(
-          _('LDAP error'),
-          msgPool::ldaperror($ldap->get_error(), $tokenBranch, LDAP_MOD, get_class()),
-          LDAP_ERROR
-        );
+      try {
+        $ldap->create_missing_trees($tokenBranch);
+      } catch (FusionDirectoryError $error) {
+        $error->display();
       }
       fusiondirectory_log('Created token branch '.$tokenBranch);
     }
@@ -157,4 +155,3 @@ class recoveryConfig extends simplePlugin
     );
   }
 }
-?>
diff --git a/plugins/config/class_snapshotConfig.inc b/plugins/config/class_snapshotConfig.inc
new file mode 100644
index 0000000000000000000000000000000000000000..8c260e08228c0982cba47d0f110a921d1a31bf7d
--- /dev/null
+++ b/plugins/config/class_snapshotConfig.inc
@@ -0,0 +1,106 @@
+<?php
+/*
+This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+Copyright (C) 2012-2023 FusionDirectory
+
+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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class snapshotsConfig extends simplePlugin
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'     => _('Snapshots'),
+      'plDescription'   => _('FusionDirectory Snapshot Configuration'),
+      'plObjectClass'   => ['fusionDirectoryConf'],
+      'plObjectType'    => ['configuration'],
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    global $config;
+
+    return [
+      'snapshotsConf' => [
+        'name'  => _('Snapshots Configuration'),
+        'attrs' => [
+          new BooleanAttribute(
+            _('Enable snapshots'), _('This enables you to save certain states of entries and restore them later on.'),
+            'fdEnableSnapshots', FALSE,
+            TRUE
+          ),
+          new BooleanAttribute(
+            _('Enable automatic snapshots'), _('This enables you to automatically create a snapshot upon saving if any modifications have been found.'),
+            'fdEnableAutomaticSnapshots', FALSE,
+            FALSE
+          ),
+          new StringAttribute(
+            _('Snapshot base'), _('The base where snapshots should be stored inside the LDAP directory.'),
+            'fdSnapshotBase', FALSE,
+            'ou=snapshots,'.$config->current['BASE']
+          ),
+        ]
+      ],
+      'snapshotsAdvanceConf' => [
+        'name'  => _('Snapshots Advance Configuration'),
+        'attrs' => [
+          new IntAttribute(
+            _('Minimum number of snapshots to be kept'), _('Set the minimum number of snapshots to be kept'),
+            'fdSnapshotMinRetention', FALSE, '', FALSE, ''
+          ),
+          new IntAttribute(
+            _('Retention time in days'), _('Set the retention time in days for a snapshots to be kept'),
+            'fdSnapshotRetentionDays', FALSE, '', FALSE, ''
+          ),
+        ]
+      ],
+      'OriginDataSource' => [
+        'name' => _('List of available sources / origin of data'),
+        'attrs' => [
+          new SetAttribute(
+            new StringAttribute(
+              _('Origin / source of data'), _('Origin / Source of data'),
+              'fdSnapshotSourceData', FALSE,
+            )
+          ),
+        ]
+      ],
+    ];
+  }
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+    parent::__construct($dn, $object, $parent, $mainTab);
+
+    $this->attributesAccess['fdEnableSnapshots']->setManagedAttributes(
+      [
+        'disable' => [
+          FALSE => [
+            'fdSnapshotBase',
+            'fdEnableAutomaticSnapshots',
+            'fdSnapshotMinRetention',
+            'fdSnapshotRetentionDays',
+          ]
+        ]
+      ]
+    );
+  }
+
+}
+
diff --git a/plugins/config/class_tasksConfig.inc b/plugins/config/class_tasksConfig.inc
new file mode 100644
index 0000000000000000000000000000000000000000..7a35d5621be8cb7bee2feb1ba040e5aec424688b
--- /dev/null
+++ b/plugins/config/class_tasksConfig.inc
@@ -0,0 +1,78 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2012-2022 FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+class tasksConfig extends simplePlugin
+{
+  static function plInfo (): array
+  {
+    return [
+      'plShortName'     => _('Tasks'),
+      'plDescription'   => _('FusionDirectory Tasks Configuration'),
+      'plObjectClass'   => ['fdTasksConf'],
+      'plObjectType'    => ['configuration'],
+      'plProvidedAcls'  => parent::generatePlProvidedAcls(static::getAttributesInfo())
+    ];
+  }
+
+  static function getAttributesInfo (): array
+  {
+    return [
+      'tasksConf' => [
+        'name'  => _('Tasks Configuration'),
+        'attrs' => [
+          new StringAttribute(
+            _('Tasks RDN'), _('Branch in which Tasks will be stored'),
+            'fdTasksRDN', TRUE,
+            'ou=tasks'
+          ),
+        ]
+      ],
+      'Mail' => [
+        'name'  => _('Mail Anti-Spam Configuration'),
+        'attrs' => [
+          new IntAttribute(
+           _('Last Sent Mail'), '_(Last timestamp in Unix format when last email was sent succesfully)',
+           'fdTasksConfLastExecTime', FALSE, '', FALSE, ''
+           ),
+          new IntAttribute(
+            _('Maximum number of e-mails processed per time'), _('Select max emails to be proccessed'),
+            'fdTasksConfMaxEmails', FALSE, '', FALSE, ''
+          ),
+          new IntAttribute(
+            _('Time interval between e-mails processing (Minutes) '), _('Select min interval time between emails processing'),
+            'fdTasksConfIntervalEmails', FALSE, '', FALSE, ''
+          ),
+        ]
+      ],
+    ];
+  }
+
+  function __construct ($dn = NULL, $object = NULL, $parent = NULL, $mainTab = FALSE)
+  {
+    global $config;
+    parent::__construct($dn, $object, $parent, $mainTab);
+
+    // This attribute will be updated and verified by Orchestrator
+    $this->attributesAccess['fdTasksConfLastExecTime']->setVisible(FALSE);
+
+  }
+
+}
+
diff --git a/plugins/config/main.inc b/plugins/config/main.inc
deleted file mode 100644
index 8c050353bb7664c853240b78cc64b38d46fd7350..0000000000000000000000000000000000000000
--- a/plugins/config/main.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2012-2018 FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-simplePlugin::mainInc('configInLdap', CONFIGRDN.$config->current['BASE'], TRUE);
-?>
diff --git a/plugins/generic/references/class_reference.inc b/plugins/generic/references/class_reference.inc
index b398f82cf2788a7eeafd6785794ad131055ebac8..f4cbc9e17046e790a32e0a7a83fdbf32bb9aceb0 100644
--- a/plugins/generic/references/class_reference.inc
+++ b/plugins/generic/references/class_reference.inc
@@ -1,7 +1,8 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
+
+  Copyright (C) 2013-2019  FusionDirectory
 
   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
@@ -20,7 +21,7 @@
 
 class reference extends simplePlugin
 {
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('References'),
@@ -37,7 +38,7 @@ class reference extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'main' => [
@@ -58,14 +59,20 @@ class reference extends simplePlugin
     $this->refs = NULL;
   }
 
-  function execute ()
+  function aclGetPermissions ($attribute = '0', string $base = NULL, bool $skipWrite = FALSE): string
+  {
+    /* Everyone can see this tab and its attribute */
+    return 'r';
+  }
+
+  public function render (): string
   {
     if ($this->refs === NULL) {
       $this->fillRefs();
     }
     $smarty = get_smarty();
     $smarty->assign('usePrototype', 'true');
-    return parent::execute();
+    return parent::render();
   }
 
   function fillRefs ()
@@ -77,19 +84,18 @@ class reference extends simplePlugin
     $this->refs = $this->browseForeignKeys('references');
   }
 
-  function check ()
+  function check (): array
   {
+    return [];
   }
 
-  function save ()
+  function save (): array
   {
     return [];
   }
 
-  function remove ($fulldelete = FALSE)
+  function remove (bool $fulldelete = FALSE): array
   {
     return [];
   }
 }
-
-?>
diff --git a/plugins/generic/references/contents.tpl b/plugins/generic/references/contents.tpl
index c4fec404ddad08c414f61fa63b98aab07c0fba71..6af7a3f63ed29273b9e14e893063a182243f9367 100644
--- a/plugins/generic/references/contents.tpl
+++ b/plugins/generic/references/contents.tpl
@@ -1,6 +1,6 @@
 <div id="{$sectionId}" class="plugin-section{$sectionClasses}">
   <span class="legend">
-    {$section}
+    {if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
   </span>
   <div>
     {if $attributes.refs}
diff --git a/plugins/generic/welcome/main.inc b/plugins/generic/welcome/main.inc
index 2a59bdd207ef12824ffc248219742fe93835c3c5..26ea89dcaef66eedd7ad687c7602ea659eb59e62 100644
--- a/plugins/generic/welcome/main.inc
+++ b/plugins/generic/welcome/main.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -19,14 +19,18 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
+/**
+ * @var Smarty $smarty
+ * @var pluglist $plist
+ * @var userinfo $ui
+ * @var bool $cleanup
+ */
+
 if (!$cleanup) {
-  session::set('plugin_dir', dirname(__FILE__));
-  $smarty->assign('iconmenu', $plist->show_iconmenu());
-  $smarty->assign('header', print_header('geticon.php?context=applications&icon=config-welcome&size=48', sprintf(_('Welcome %s!'), $ui->cn)));
-  $smarty->assign('year', date('Y'));
-  $smarty->assign('revision', FD_VERSION);
+  $smarty->assign('iconmenu',       $plist->show_iconmenu());
+  $smarty->assign('headline',       sprintf(_('Welcome %s!'), $ui->cn));
+  $smarty->assign('headline_image', 'geticon.php?context=applications&icon=config-welcome&size=48');
+  $smarty->assign('copynotice',     copynotice());
 
   $display = $smarty->fetch(get_template_path('welcome.tpl', TRUE));
 }
-
-?>
diff --git a/plugins/generic/welcome/welcome.tpl b/plugins/generic/welcome/welcome.tpl
index 74dddf8060534389ce9cb1f3af29f38ccae4f676..b0526fad8997a92c2c0b420b88e32c4f32b7e5e0 100644
--- a/plugins/generic/welcome/welcome.tpl
+++ b/plugins/generic/welcome/welcome.tpl
@@ -1,5 +1,3 @@
-{$header}
-
 {$iconmenu}
 
 <br/>
diff --git a/plugins/personal/generic/class_UserPasswordAttribute.inc b/plugins/personal/generic/class_UserPasswordAttribute.inc
new file mode 100644
index 0000000000000000000000000000000000000000..819218efc121d87b801b436b7e8b1ce273cbb64f
--- /dev/null
+++ b/plugins/personal/generic/class_UserPasswordAttribute.inc
@@ -0,0 +1,308 @@
+<?php
+/*
+  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+  Copyright (C) 2013-2018  FusionDirectory
+
+  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+/* Handle a password and its hash method */
+class UserPasswordAttribute extends CompositeAttribute
+{
+  protected $needPassword;
+  protected $previousMethodInfo = NULL;
+
+  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = "", $acl = "")
+  {
+    global $config;
+
+    $temp = passwordMethod::get_available_methods();
+
+    /* Create password methods array */
+    $pwd_methods        = $config->get_cfg_value('passwordAllowedHashes', $temp['name']);
+    $this->needPassword = [];
+    foreach ($temp['name'] as $id => $name) {
+      $this->needPassword[$name] = $temp[$id]['object']->need_password();
+    }
+
+    parent::__construct(
+      $description, $ldapName,
+      [
+        new SelectAttribute(
+          _('Password method'), _('Password hash method to use'),
+          $ldapName.'_pwstorage', TRUE,
+          $pwd_methods
+        ),
+        new PasswordAttribute(
+          _('Password'), _('Password (Leave empty if you do not wish to change it)'),
+          $ldapName.'_password', $required
+        ),
+        new PasswordAttribute(
+          _('Password again'), _('Same password as above, to avoid errors'),
+          $ldapName.'_password2', $required
+        ),
+        new HiddenAttribute(
+          $ldapName.'_hash'
+        ),
+        new BooleanAttribute(
+          /* Label/Description will only be visible for templates */
+          _('Locked'), _('Whether accounts created with this template will be locked'),
+          $ldapName.'_locked', FALSE,
+          FALSE
+        )
+      ],
+      '', '', $acl, $label
+    );
+    $this->attributes[0]->setSubmitForm(TRUE);
+    $this->attributes[4]->setTemplatable(FALSE);
+  }
+
+  public function setParent (&$plugin)
+  {
+    global $config;
+    parent::setParent($plugin);
+    if (is_object($this->plugin)) {
+      $hash = $config->get_cfg_value('passwordDefaultHash', 'ssha');
+      $this->attributes[0]->setDefaultValue($hash);
+      if ($config->get_cfg_value('forcePasswordDefaultHash', 'FALSE') == 'TRUE') {
+        $this->attributes[0]->setValue($hash);
+        $this->attributes[0]->setDisabled(TRUE);
+      }
+      if (!$this->plugin->is_template) {
+        $this->attributes[4]->setVisible(FALSE);
+      }
+      $this->checkIfMethodNeedsPassword();
+    }
+  }
+
+  /* We need to handle method select disabling manually */
+  function renderAttribute (array &$attributes, bool $readOnly, bool $readable, bool $writable)
+  {
+    global $config;
+    if ($this->visible) {
+      if ($this->linearRendering) {
+        parent::renderAttribute($attributes, $readOnly, $readable, $writable);
+      } else {
+        foreach ($this->attributes as $key => &$attribute) {
+          if (is_object($this->plugin) && $this->plugin->is_template && ($key == 2)) {
+            /* Do not display confirmation field in template mode */
+            continue;
+          }
+          if (($key == 0) && ($config->get_cfg_value('forcePasswordDefaultHash', 'FALSE') == 'TRUE')) {
+            $attribute->setDisabled(TRUE);
+          } else {
+            $attribute->setDisabled($this->disabled);
+          }
+          $attribute->renderAttribute($attributes, $readOnly, $readable, $writable);
+        }
+        unset($attribute);
+      }
+    }
+  }
+
+  function loadValue (array $attrs)
+  {
+    parent::loadValue($attrs);
+    /* Needs to reset previousMethodInfo to force check, because initialValue of attribute 0 changed */
+    $this->previousMethodInfo = NULL;
+    $this->checkIfMethodNeedsPassword();
+  }
+
+  /*! \brief Loads this attribute value from the attrs array
+   */
+  protected function loadAttrValue (array $attrs)
+  {
+    if (isset($attrs[$this->getLdapName()])) {
+      $this->setValue($this->inputValue($attrs[$this->getLdapName()][0]));
+    } elseif ($this->plugin->initially_was_account) {
+      $this->setValue($this->inputValue(''));
+    } else {
+      $this->attributes[0]->resetToDefault();
+    }
+  }
+
+  function setValue ($value)
+  {
+    if (!is_array($value)) {
+      $value = $this->inputValue($value);
+    }
+    reset($value);
+    $key = key($value);
+    if ($this->attributes[0]->isDisabled() || ($value[$key] == '')) {
+      $value[$key] = $this->attributes[0]->getValue();
+    }
+    parent::setValue($value);
+    $this->checkIfMethodNeedsPassword();
+  }
+
+  function applyPostValue ()
+  {
+    parent::applyPostValue();
+    $this->checkIfMethodNeedsPassword();
+  }
+
+  function checkIfMethodNeedsPassword ()
+  {
+    $method     = $this->attributes[0]->getValue();
+    $methodInfo = $method.$this->attributes[3]->getValue();
+    if ($methodInfo != $this->previousMethodInfo) {
+      if (isset($this->needPassword[$method]) && $this->needPassword[$method]) {
+        $hashEmptyOrMethodChange = (($this->attributes[3]->getValue() == '') || $this->attributes[0]->hasChanged());
+        $this->attributes[1]->setVisible(TRUE);
+        $this->attributes[1]->setRequired($hashEmptyOrMethodChange);
+        $this->attributes[2]->setVisible(TRUE);
+        $this->attributes[2]->setRequired($hashEmptyOrMethodChange);
+      } else {
+        $this->attributes[1]->setRequired(FALSE);
+        $this->attributes[1]->setVisible(FALSE);
+        $this->attributes[1]->setValue('');
+        $this->attributes[2]->setRequired(FALSE);
+        $this->attributes[2]->setVisible(FALSE);
+        $this->attributes[2]->setValue('');
+      }
+    }
+    $this->previousMethodInfo = $methodInfo;
+  }
+
+  function readValues (string $value): array
+  {
+    return $this->readUserPasswordValues($value, $this->plugin->is_template);
+  }
+
+  function readUserPasswordValues ($value, $istemplate)
+  {
+    global $config;
+    $pw_storage = $config->get_cfg_value('passwordDefaultHash', 'ssha');
+    $locked     = FALSE;
+    $password   = '';
+    if (!empty($value) || ($this->plugin->initially_was_account && !$istemplate)) {
+      if ($istemplate) {
+        if ($value == '%askme%') {
+          return ['%askme%', '', '', $value, 'FALSE'];
+        }
+        $parts = explode('|', $value, 3);
+        if ((count($parts) < 3) || !in_array($parts[1], ['TRUE','FALSE'])) {
+          /* Old format from FD<1.4 */
+          list($value, $password) = explode('|', $value, 2);
+        } else {
+          list($pw_storage, $locked, $password) = $parts;
+          return [$pw_storage, $password, $password, $this->attributes[3]->getValue(), $locked];
+        }
+      }
+      $tmp = passwordMethod::get_method($value);
+      if (is_object($tmp)) {
+        $pw_storage = $tmp->get_hash();
+        $locked     = $tmp->is_locked('', $value);
+      }
+      if ($istemplate && empty($password)) {
+        /* Do not store hash for templates,
+         * we have the password anyway, and this avoids problems with empty passwords */
+        $value = $this->attributes[3]->getValue();
+      }
+    }
+    return [$pw_storage, $password, $password, $value, ($locked ? 'TRUE' : 'FALSE')];
+  }
+
+  function writeValues (array $values)
+  {
+    if ($this->plugin->is_template && ($values[0] == '%askme%')) {
+      return '%askme%';
+    }
+    if (!$this->plugin->is_template && (!$this->attributes[0]->hasChanged()) && ($this->needPassword[$values[0]] || ($values[0] == 'empty')) && ($values[1] == '')) {
+      return $values[3];
+    }
+    $temp = passwordMethod::get_available_methods();
+    if (!isset($temp[$values[0]])) {
+      trigger_error('Unknown password method '.$values[0]);
+      return $values[3];
+    }
+    if ($this->plugin->is_template) {
+      return $values[0].'|'.$values[4].'|'.$values[1];
+    } else {
+      $test = new $temp[$values[0]]($this->plugin->dn, $this->plugin);
+      $test->set_hash($values[0]);
+      return $test->generate_hash($values[1]);
+    }
+  }
+
+  function check ()
+  {
+    $error = parent::check();
+    if (!empty($error)) {
+      return $error;
+    }
+    if (($this->attributes[1]->getValue() != '') || ($this->attributes[2]->getValue() != '')) {
+      $error = user::reportPasswordProblems($this->plugin->dn, $this->attributes[1]->getValue(), $this->attributes[2]->getValue());
+      if ($error !== FALSE) {
+        return new SimplePluginCheckError(
+          $this,
+          htmlescape($error)
+        );
+      }
+    }
+  }
+
+  function getMethod ()
+  {
+    return $this->attributes[0]->getValue();
+  }
+
+  function getClear ()
+  {
+    return $this->attributes[1]->getValue();
+  }
+
+  function isLocked ()
+  {
+    return $this->attributes[4]->getValue();
+  }
+
+  /*! \brief Apply value from RPC requests
+   *
+   *  \param mixed $value the value
+   */
+  function deserializeValue ($value)
+  {
+    if ($this->disabled) {
+      return parent::deserializeValue($value);
+    }
+    if (is_array($value)) {
+      if (count($value) > 5) {
+        return new SimplePluginError(
+          $this,
+          htmlescape(sprintf(_('Too many elements in array value: %d instead of %d'), $this->getLdapName(), count($value), 5))
+        );
+      } elseif (count($value) < 5) {
+        return new SimplePluginError(
+          $this,
+          htmlescape(sprintf(_('Not enough elements in array value: %d instead of %d'), $this->getLdapName(), count($value), 5))
+        );
+      } elseif (!isset($value[0])) {
+        return new SimplePluginError(
+          $this,
+          htmlescape(_('Array value for password field must have numeric keys'))
+        );
+      }
+      $this->setValue($value);
+    } elseif (is_string($value)) {
+      $this->setValue(['', $value, $value, '', FALSE]);
+    } else {
+      return new SimplePluginError(
+        $this,
+        htmlescape(_('Invalid value type for password field, must be array or string'))
+      );
+    }
+  }
+}
diff --git a/plugins/personal/generic/class_user.inc b/plugins/personal/generic/class_user.inc
index c35aafa2a20144cfc19477fe85c314a330ebf77c..08f4f2053bf3fe8230c6e64064b54c325b369f20 100644
--- a/plugins/personal/generic/class_user.inc
+++ b/plugins/personal/generic/class_user.inc
@@ -18,229 +18,6 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-/* Handle a password and its hash method */
-class UserPasswordAttribute extends CompositeAttribute
-{
-  protected $needPassword;
-  protected $previousMethod;
-
-  function __construct ($label, $description, $ldapName, $required = FALSE, $defaultValue = "", $acl = "")
-  {
-    $temp = passwordMethod::get_available_methods();
-
-    /* Create password methods array */
-    $pwd_methods = [];
-    $this->needPassword = [];
-    foreach ($temp['name'] as $id => $name) {
-      $this->needPassword[$name] = $temp[$id]['object']->need_password();
-      $pwd_methods[$name] = $name;
-      if (!empty($temp[$id]['desc'])) {
-        $pwd_methods[$name] .= " (".$temp[$id]['desc'].")";
-      }
-    }
-
-    parent::__construct(
-      $description, $ldapName,
-      [
-        new SelectAttribute(
-          _('Password method'), _('Password hash method to use'),
-          $ldapName.'_pwstorage', TRUE,
-          array_keys($pwd_methods), '', array_values($pwd_methods)
-        ),
-        new PasswordAttribute(
-          _('Password'), _('Password (Leave empty if you do not wish to change it)'),
-          $ldapName.'_password', $required
-        ),
-        new PasswordAttribute(
-          _('Password again'), _('Same password as above, to avoid errors'),
-          $ldapName.'_password2', $required
-        ),
-        new HiddenAttribute(
-          $ldapName.'_hash'
-        ),
-        new HiddenAttribute(
-          $ldapName.'_locked', FALSE,
-          FALSE
-        )
-      ],
-      '', '', $acl, $label
-    );
-    $this->attributes[0]->setSubmitForm(TRUE);
-  }
-
-  public function setParent (&$plugin)
-  {
-    global $config;
-    parent::setParent($plugin);
-    if (is_object($this->plugin)) {
-      $hash = $config->get_cfg_value('passwordDefaultHash', 'ssha');
-      $this->attributes[0]->setDefaultValue($hash);
-      if ($config->get_cfg_value('forcePasswordDefaultHash', 'FALSE') == 'TRUE') {
-        $this->attributes[0]->setValue($hash);
-        $this->attributes[0]->setDisabled(TRUE);
-      }
-      $this->checkIfMethodNeedsPassword();
-    }
-  }
-
-  /* We need to handle method select disabling manually */
-  function renderAttribute (&$attributes, $readOnly)
-  {
-    global $config;
-    if ($this->visible) {
-      if ($this->linearRendering) {
-        parent::renderAttribute($attributes, $readOnly);
-      } else {
-        foreach ($this->attributes as $key => &$attribute) {
-          if (is_object($this->plugin) && $this->plugin->is_template && ($key == 2)) {
-            /* Do not display confirmation field in template mode */
-            continue;
-          }
-          if (($key == 0) && ($config->get_cfg_value('forcePasswordDefaultHash', 'FALSE') == 'TRUE')) {
-            $attribute->setDisabled(TRUE);
-          } else {
-            $attribute->setDisabled($this->disabled);
-          }
-          $attribute->renderAttribute($attributes, $readOnly);
-        }
-        unset($attribute);
-      }
-    }
-  }
-
-  /*! \brief Loads this attribute value from the attrs array
-   */
-  protected function loadAttrValue ($attrs)
-  {
-    if (isset($attrs[$this->getLdapName()])) {
-      $this->setValue($this->inputValue($attrs[$this->getLdapName()][0]));
-      $this->setRequired(FALSE);
-      $this->attributes[1]->setRequired(FALSE);
-      $this->attributes[2]->setRequired(FALSE);
-    } else {
-      $this->setRequired(TRUE);
-      $this->attributes[0]->resetToDefault();
-      $this->attributes[1]->setRequired(TRUE);
-      $this->attributes[2]->setRequired(TRUE);
-      $this->checkIfMethodNeedsPassword();
-    }
-  }
-
-  function setValue ($value)
-  {
-    reset($value);
-    $key = key($value);
-    if ($this->attributes[0]->isDisabled() || ($value[$key] == '')) {
-      $value[$key] = $this->attributes[0]->getValue();
-    }
-    parent::setValue($value);
-    $this->checkIfMethodNeedsPassword();
-  }
-
-  function applyPostValue ()
-  {
-    parent::applyPostValue();
-    $this->checkIfMethodNeedsPassword();
-  }
-
-  function checkIfMethodNeedsPassword ()
-  {
-    $method = $this->attributes[0]->getValue();
-    if ($method != $this->previousMethod) {
-      if ($this->needPassword[$method]) {
-        $this->attributes[1]->setVisible(TRUE);
-        $this->attributes[2]->setVisible(TRUE);
-      } else {
-        $this->attributes[1]->setVisible(FALSE);
-        $this->attributes[1]->setValue('');
-        $this->attributes[2]->setVisible(FALSE);
-        $this->attributes[2]->setValue('');
-      }
-    }
-    $this->previousMethod = $method;
-  }
-
-  function readValues ($value)
-  {
-    global $config;
-    $pw_storage = $config->get_cfg_value('passwordDefaultHash', 'ssha');
-    $locked     = FALSE;
-    $password   = '';
-    if ($this->plugin->is_template) {
-      list($value, $password) = explode('|', $value, 2);
-    }
-    if (preg_match('/^{[^}]+}/', $value)) {
-      $tmp = passwordMethod::get_method($value);
-      if (is_object($tmp)) {
-        $pw_storage = $tmp->get_hash();
-        $locked     = $tmp->is_locked($this->plugin->dn);
-        if ($this->plugin->is_template) {
-          $value = $tmp->generate_hash($password);
-        }
-      }
-    } else {
-      if ($value != '') {
-        $pw_storage = 'clear';
-      }
-    }
-    return [$pw_storage, $password, $password, $value, $locked];
-  }
-
-  function writeValues ($values)
-  {
-    if ($this->needPassword[$values[0]] && ($values[1] == '')) {
-      if ($this->plugin->is_template) {
-        return '';
-      } else {
-        return $values[3];
-      }
-    }
-    $temp = passwordMethod::get_available_methods();
-    if (!isset($temp[$values[0]])) {
-      trigger_error('Unknown password method '.$values[0]);
-      return $values[3];
-    }
-    $test = new $temp[$values[0]]($this->plugin->dn, $this->plugin);
-    $test->set_hash($values[0]);
-    if ($this->plugin->is_template) {
-      return $test->generate_hash($values[1]).'|'.$values[1];
-    } else {
-      return $test->generate_hash($values[1]);
-    }
-  }
-
-  function check ()
-  {
-    $method = $this->attributes[0]->getValue();
-    if (!$this->needPassword[$method]) {
-      $this->attributes[1]->setRequired(FALSE);
-      $this->attributes[2]->setRequired(FALSE);
-    }
-    $error = parent::check();
-    if (!empty($error)) {
-      return $error;
-    }
-    if (($this->attributes[1]->getValue() != '') || ($this->attributes[2]->getValue() != '')) {
-      return user::reportPasswordProblems($this->plugin->dn, $this->attributes[1]->getValue(), $this->attributes[2]->getValue());
-    }
-  }
-
-  function getMethod ()
-  {
-    return $this->attributes[0]->getValue();
-  }
-
-  function getClear ()
-  {
-    return $this->attributes[1]->getValue();
-  }
-
-  function isLocked ()
-  {
-    return $this->attributes[4]->getValue();
-  }
-}
-
 class PostalAddressAttribute extends TextAreaAttribute
 {
   function inputValue ($ldapValue)
@@ -268,11 +45,9 @@ class PostalAddressAttribute extends TextAreaAttribute
 
 class user extends simplePlugin
 {
-  var $objectclasses  = ['inetOrgPerson','organizationalPerson','person'];
-
   private $was_locked;
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'   => _('User'),
@@ -280,10 +55,11 @@ class user extends simplePlugin
       'plIcon'        => 'geticon.php?context=applications&icon=user-info&size=48',
       'plSmallIcon'   => 'geticon.php?context=applications&icon=user-info&size=16',
       'plSelfModify'  => TRUE,
+      'plObjectClass' => ['inetOrgPerson','organizationalPerson','person'],
+      'plFilter'      => '(objectClass=inetOrgPerson)',
       'plObjectType'  => ['user' => [
         'name'        => _('User'),
         'description' => _('User account'),
-        'filter'      => '(objectClass=inetOrgPerson)',
         'mainAttr'    => 'uid',
         'nameAttr'    => 'cn',
         'icon'        => 'geticon.php?context=types&icon=user&size=16',
@@ -292,6 +68,7 @@ class user extends simplePlugin
       'plForeignKeys'  => [
         'manager' => ['user','dn','manager=%oldvalue%','*']
       ],
+      'plSearchAttrs' => ['uid','description'],
 
       'plProvidedAcls' => array_merge(
         parent::generatePlProvidedAcls(static::getAttributesInfo()),
@@ -300,8 +77,7 @@ class user extends simplePlugin
     ];
   }
 
-  // The main function : information about attributes
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     global $config;
     $languages = Language::getList(TRUE);
@@ -316,12 +92,17 @@ class user extends simplePlugin
           new StringAttribute(
             _('Last name'), _('Last name of this user'),
             'sn', TRUE,
-            '', '', '/[^,+"?()=<>;\\\\]/'
+            '', '', '/^[^,+"?()=<>;\\\\]+$/'
           ),
           new StringAttribute(
             _('First name'), _('First name of this user'),
-            'givenName', TRUE,
-            '', '', '/[^,+"?()=<>;\\\\]/'
+            'givenName', ($config->get_cfg_value('GivenNameRequired', 'TRUE') === 'TRUE'),
+            '', '', '/^[^,+"?()=<>;\\\\]+$/'
+          ),
+          new StringAttribute(
+            _('Initials'), _('The initials of some or all of the individual\'s names, but not the surname(s)'),
+            'initials', FALSE,
+            '', '', '/^[^,+"?()=<>;\\\\]+$/'
           ),
           new TextAreaAttribute(
             _('Description'), _('Short description of the user'),
@@ -330,7 +111,7 @@ class user extends simplePlugin
           new ImageAttribute(
             _('Picture'), _('The avatar for this user'),
             'jpegPhoto', FALSE,
-            150, 200, 'jpeg'
+            $config->get_cfg_value('MaxAvatarSize', 200), $config->get_cfg_value('MaxAvatarSize', 200), 'jpeg'
           ),
         ]
       ],
@@ -480,6 +261,10 @@ class user extends simplePlugin
   {
     parent::__construct($dn, $object, $parent, $mainTab);
 
+    if ($this->is_template && !$this->initially_was_account) {
+      $this->attributesAccess['userPassword']->setValue('%askme%');
+    }
+
     $this->attributesAccess['uid']->setUnique('whole');
     $this->attributesAccess['uid']->setAutocomplete(FALSE);
     $this->attributesAccess['uid']->setDisabled($this->initially_was_account && !$this->is_template);
@@ -491,12 +276,6 @@ class user extends simplePlugin
     $this->was_locked = $this->attributesAccess['userPassword']->isLocked();
   }
 
-  function is_this_account ($attrs)
-  {
-    /* Only inetOrgPerson is needed, it has the two others as SUP classes */
-    return (isset($attrs['objectClass']) && in_array_ics('inetOrgPerson', $attrs['objectClass']));
-  }
-
   function resetCopyInfos ()
   {
     parent::resetCopyInfos();
@@ -534,12 +313,12 @@ class user extends simplePlugin
     return templateHandling::parseString($pattern, $attrs);
   }
 
-  function compute_dn ()
+  function compute_dn (): string
   {
     global $config;
+
     if ($this->is_template) {
-      $dn = 'cn='.ldap_escape_dn($this->_template_cn).',ou=templates,'.get_ou('userRDN').$this->base;
-      return $dn;
+      return 'cn='.ldap_escape_dn($this->_template_cn).',ou=templates,'.get_ou('userRDN').$this->base;
     }
 
     $this->update_cn();
@@ -548,14 +327,14 @@ class user extends simplePlugin
     return $this->create_unique_dn($attribute, get_ou('userRDN').$this->base);
   }
 
-  function execute ()
+  public function render (): string
   {
     $smarty = get_smarty();
     $smarty->append('css_files', 'plugins/users/style/user_tab.css');
-    return parent::execute();
+    return parent::render();
   }
 
-  protected function shouldSave ()
+  protected function shouldSave (): bool
   {
     if ($this->attributesAccess['userPassword']->getClear() != '') {
       /* There may be hooks using this even if LDAP object is not modified */
@@ -564,7 +343,7 @@ class user extends simplePlugin
     return parent::shouldSave();
   }
 
-  protected function prepare_save ()
+  protected function prepare_save (): array
   {
     global $config;
     if ($config->get_cfg_value('SplitPostalAddress') == 'TRUE') {
@@ -577,7 +356,7 @@ class user extends simplePlugin
     return parent::prepare_save();
   }
 
-  function ldap_save ()
+  function ldap_save (): array
   {
     $errors = parent::ldap_save();
 
@@ -596,7 +375,7 @@ class user extends simplePlugin
 
   function post_save ()
   {
-    global $ui;
+    global $ui, $config;
 
     /* Update current locale settings, if we have edited ourselves */
     if (isset($this->attrs['preferredLanguage']) && ($this->dn == $ui->dn)) {
@@ -604,40 +383,71 @@ class user extends simplePlugin
       session::set('ui', $ui);
       session::set('Last_init_lang', 'update');
     }
-
+    // Verification is snapshot is enabled and automatic.
+    // Note : string values are stored in that array.
+    if (isset($config->current['ENABLEAUTOMATICSNAPSHOTS']) && isset($config->current['ENABLESNAPSHOTS'])) {
+      if (strtolower($config->current['ENABLEAUTOMATICSNAPSHOTS']) === 'true' && strtolower($config->current['ENABLESNAPSHOTS']) === 'true' ) {
+        $this->generateAutomaticSnapshot();
+      }
+    }
     return parent::post_save();
   }
 
-  function adapt_from_template ($attrs, $skip = [])
+  /*
+   * Create the snapshot object in case of automated snapshot.
+   */
+  public function generateAutomaticSnapshot ()
+  {
+    $snapshotHandler = new SnapshotHandler();
+    $snapshotHandler->createSnapshot($this->dn, 'automatic snapshot', 'USER', 'FD');
+    $snapshotHandler->verifySnapshotRetention($this->dn);
+  }
+
+  function adapt_from_template (array $attrs, array $skip = [])
   {
     if ($this->uid != '') {
       $skip[] = 'uid';
     }
-    parent::adapt_from_template($attrs, $skip);
-    if (isset($this->attrs['userPassword']) && !in_array('userPassword', $skip)) {
-      list($hash,$password) = explode('|', $this->attrs['userPassword'][0], 2);
-      if (preg_match('/^{[^}]+}/', $hash)) {
-        $tmp = passwordMethod::get_method($hash);
-        if (is_object($tmp)) {
-          $hash = $tmp->generate_hash($password);
-        }
-      }
-      $this->userPassword = [
-        '',
-        $password,
-        $password,
-        $hash,
-        $this->attributesAccess['userPassword']->isLocked()
-      ];
+
+    parent::adapt_from_template($attrs, array_merge($skip, ['userPassword']));
+
+    if (isset($attrs['userPassword']) && !in_array('userPassword', $skip)) {
+      $this->userPassword = $this->attributesAccess['userPassword']->readUserPasswordValues($attrs['userPassword'][0], TRUE);
     }
   }
 
-  function callHook ($cmd, array $addAttrs = [], &$returnOutput = [], &$returnCode = NULL)
+  function fillHookAttrs (array &$addAttrs)
   {
+    parent::fillHookAttrs($addAttrs);
     $addAttrs['passwordMethod'] = $this->attributesAccess['userPassword']->getMethod();
-    $addAttrs['userLocked']     = $this->attributesAccess['userPassword']->isLocked();
+    $addAttrs['userLocked']     = (int)($this->attributesAccess['userPassword']->isLocked());
     $addAttrs['passwordClear']  = $this->attributesAccess['userPassword']->getClear();
-    return parent::callHook($cmd, $addAttrs, $returnOutput, $returnCode);
+  }
+
+  static function fetchPpolicy (string $userdn): array
+  {
+    global $config;
+
+    $ldap = $config->get_ldap_link();
+    $ldap->cat($userdn, ['pwdPolicySubentry', 'pwdHistory', 'pwdChangedTime', 'userPassword']);
+    $attrs = $ldap->fetch(TRUE);
+    $ppolicydn = '';
+    if (isset($attrs['pwdPolicySubentry'][0])) {
+      $ppolicydn = $attrs['pwdPolicySubentry'][0];
+    } else {
+      $ppolicydn = $config->get_cfg_value('ppolicyDefaultDn', '');
+    }
+
+    $policy = NULL;
+    if (!empty($ppolicydn)) {
+      $ldap->cat($ppolicydn, ['pwdAllowUserChange', 'pwdMinLength', 'pwdMinAge', 'pwdSafeModify', 'pwdExpireWarning', 'pwdMaxAge']);
+      $policy = $ldap->fetch(TRUE);
+      if (!$policy) {
+        throw new NonExistingLdapNodeException($ppolicydn, sprintf(_('Ppolicy "%s" could not be found in LDAP!'), $ppolicydn));
+      }
+    }
+
+    return [$policy, $attrs];
   }
 
   static function reportPasswordProblems ($user, $new_password, $repeated_password, $current_password = NULL)
@@ -655,24 +465,13 @@ class user extends simplePlugin
     $check_length = ($config->get_cfg_value('passwordMinLength') != '');
     $length       = $config->get_cfg_value('passwordMinLength', 0);
 
-    $ldap = $config->get_ldap_link();
-    $ldap->cat($user, ['pwdPolicySubentry', 'pwdHistory', 'pwdChangedTime', 'userPassword']);
-    $attrs = $ldap->fetch();
-    $ppolicydn = '';
-    if (isset($attrs['pwdPolicySubentry'][0])) {
-      $ppolicydn = $attrs['pwdPolicySubentry'][0];
-    } else {
-      $ppolicydn = $config->get_cfg_value('ppolicyDefaultCn', '');
-      if (!empty($ppolicydn)) {
-        $ppolicydn = 'cn='.$ppolicydn.','.get_ou('ppolicyRDN').$config->current['BASE'];
-      }
+    try {
+      list($policy, $attrs) = static::fetchPpolicy($user);
+    } catch (NonExistingLdapNodeException $e) {
+      return $e->getMessage();
     }
-    if (!empty($ppolicydn)) {
-      $ldap->cat($ppolicydn, ['pwdAllowUserChange', 'pwdMinLength', 'pwdMinAge', 'pwdSafeModify']);
-      $policy = $ldap->fetch();
-      if (!$policy) {
-        return sprintf(_('Ppolicy "%s" could not be found in the LDAP!'), $ppolicydn);
-      }
+
+    if (isset($policy)) {
       if (isset($policy['pwdAllowUserChange'][0]) && ($policy['pwdAllowUserChange'][0] == 'FALSE') && ($ui->dn == $user)) {
         return _('You are not allowed to change your own password');
       }
@@ -688,10 +487,8 @@ class user extends simplePlugin
           return sprintf(_('You must wait %d seconds before changing your password again'), $policy['pwdMinAge'][0] - ($now->getTimeStamp() - $date->getTimeStamp()));
         }
       }
-      if (isset($policy['pwdSafeModify'][0]) && ($policy['pwdSafeModify'][0] == 'FALSE')) {
-        if (empty($current_password)) {
-          $current_password = NULL;
-        }
+      if (isset($policy['pwdSafeModify'][0]) && ($policy['pwdSafeModify'][0] == 'FALSE') && empty($current_password)) {
+        $current_password = NULL;
       }
       if (isset($attrs['pwdHistory'][0])) {
         unset($attrs['pwdHistory']['count']);
@@ -731,4 +528,3 @@ class user extends simplePlugin
     return FALSE;
   }
 }
-?>
diff --git a/plugins/personal/generic/main.inc b/plugins/personal/generic/main.inc
deleted file mode 100644
index a72352fdab93acc75b8b9ffff22feafc3e289721..0000000000000000000000000000000000000000
--- a/plugins/personal/generic/main.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2013-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-simplePlugin::mainInc('user', $ui->dn);
-?>
diff --git a/plugins/personal/roles/class_userRoles.inc b/plugins/personal/roles/class_userRoles.inc
index db3078c9ab8cb7b4cf9462c84cf50ccfa75faef6..60a004e0e02f7cb7aff7a2600367195ea6b4df00 100644
--- a/plugins/personal/roles/class_userRoles.inc
+++ b/plugins/personal/roles/class_userRoles.inc
@@ -27,7 +27,7 @@ class userRoles extends simplePlugin
   protected $templateGroups         = [];
   protected $templateRoles          = [];
 
-  static function plInfo ()
+  static function plInfo (): array
   {
     return [
       'plShortName'     => _('Groups and roles'),
@@ -42,15 +42,15 @@ class userRoles extends simplePlugin
     ];
   }
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'groups' => [
-        'name'  => _('Groups membership'),
+        'name'  => _('Group memberships'),
         'attrs' => [
           new SetAttribute(
             new SelectAttribute(
-              '', _('Groups membership'),
+              '', _('Group memberships'),
               'groupsMembership', FALSE
             )
           )
@@ -109,6 +109,8 @@ class userRoles extends simplePlugin
     }
     /* We might be in some groups we have no read ACL on, so merge them in the choices */
     $groups = array_merge($myGroups, $groups);
+    asort($groups);
+    asort($myGroups);
     $this->attributesAccess['groupsMembership']->attribute->setChoices(array_keys($groups), array_values($groups));
     $this->attributesAccess['groupsMembership']->setValue(array_keys($myGroups));
 
@@ -146,6 +148,8 @@ class userRoles extends simplePlugin
     }
     /* We might be in some roles we have no read ACL on, so merge them in the choices */
     $roles = array_merge($myRoles, $roles);
+    asort($roles);
+    asort($myRoles);
     $this->attributesAccess['rolesMembership']->attribute->setChoices(array_keys($roles), array_values($roles));
     $this->attributesAccess['rolesMembership']->setValue(array_keys($myRoles));
 
@@ -167,40 +171,94 @@ class userRoles extends simplePlugin
     return FALSE;
   }
 
-  protected function ldap_remove ()
+  /*! \brief This function removes the object from LDAP
+   */
+  function remove (bool $fulldelete = FALSE): array
+  {
+    if (!$fulldelete) {
+      /* We are not deleting the object it's just that there are no groups left
+       * Make sure memberships are empty to avoid surprises and call save. */
+      $this->rolesMembership  = [];
+      $this->groupsMembership = [];
+      return $this->save();
+    } else {
+      return parent::remove($fulldelete);
+    }
+  }
+
+  protected function ldap_remove (): array
   {
     if ($this->is_template) {
       return parent::ldap_remove();
     } elseif (($this->dn != '') && ($this->dn != 'new')) {
       /* Remove all groups */
-      foreach ($this->savedGroupsMembership as $ogroupdn) {
+      foreach ($this->savedGroupsMembership as $key => $ogroupdn) {
         try {
           $g = objects::open($ogroupdn, 'ogroup');
           $g->getBaseObject()->attributesAccess['member']->searchAndRemove($this->dn);
-          $g->save();
+          $msg = $g->save();
+          if (empty($msg)) {
+            unset($this->savedGroupsMembership[$key]);
+          } else {
+            /* We do not prevent user deletion on error, but still warn the user */
+            foreach ($msg as $error) {
+              $warning = new FusionDirectoryWarning(
+                htmlescape(sprintf(
+                  _('Could not remove membership to group %s: %s'),
+                  $ogroupdn,
+                  $error
+                )),
+                0,
+                ($error instanceof Throwable ? $error : NULL)
+              );
+              $warning->display();
+            }
+          }
         } catch (NonExistingLdapNodeException $e) {
+          /* Ignore deleted groups */
         }
       }
       /* Remove all roles */
-      foreach ($this->savedRolesMembership as $roledn) {
+      foreach ($this->savedRolesMembership as $key => $roledn) {
         try {
           $r = objects::open($roledn, 'role');
           $r->getBaseObject()->attributesAccess['roleOccupant']->searchAndRemove($this->dn);
-          $r->save();
+          $msg = $r->save();
+          if (empty($msg)) {
+            unset($this->savedRolesMembership[$key]);
+          } else {
+            /* We do not prevent user deletion on error, but still warn the user */
+            foreach ($msg as $error) {
+              $warning = new FusionDirectoryWarning(
+                htmlescape(sprintf(
+                  _('Could not remove membership to role %s: %s'),
+                  $roledn,
+                  $error
+                )),
+                0,
+                ($error instanceof Throwable ? $error : NULL)
+              );
+              $warning->display();
+            }
+          }
         } catch (NonExistingLdapNodeException $e) {
+          /* Ignore deleted roles */
         }
       }
     }
     return [];
   }
 
-  function save_object ()
+  public function update (): bool
   {
-    parent::save_object();
+    $res = parent::update();
+
     $this->is_account = ((count($this->rolesMembership) > 0) || (count($this->groupsMembership) > 0));
+
+    return $res;
   }
 
-  protected function shouldSave ()
+  protected function shouldSave (): bool
   {
     if (parent::shouldSave()) {
       return TRUE;
@@ -214,7 +272,7 @@ class userRoles extends simplePlugin
     return FALSE;
   }
 
-  function prepare_save ()
+  function prepare_save (): array
   {
     $errors = parent::prepare_save();
     if ($this->is_template) {
@@ -233,7 +291,7 @@ class userRoles extends simplePlugin
     }
   }
 
-  function ldap_save ()
+  function ldap_save (): array
   {
     $errors = parent::ldap_save();
 
@@ -257,7 +315,7 @@ class userRoles extends simplePlugin
           try {
             $g = objects::open($ogroupdn, 'ogroup');
             if (!in_array($ogroupdn, $this->templateGroups) && !$g->getBaseObject()->attrIsWriteable('member')) {
-              $errors[] = msgPool::permModify($ogroupdn, 'member');
+              $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($ogroupdn, 'member'));
               continue;
             }
             $g->getBaseObject()->attributesAccess['member']->addValue($this->dn, $fake_attrs);
@@ -265,10 +323,12 @@ class userRoles extends simplePlugin
             if (empty($msg)) {
               $this->savedGroupsMembership[] = $ogroupdn;
             } else {
-              $errors = array_merge($errors, $msg);
+              foreach ($msg as $error) {
+                $errors[] = new SimplePluginError($this, htmlescape(sprintf(_('Could not add membership to group %s: %s'), $ogroupdn, $error)));
+              }
             }
           } catch (NonExistingLdapNodeException $e) {
-            $errors[] = $e->getMessage();
+            $errors[] = new SimplePluginError($this, htmlescape($e->getMessage()), 0, $e);
           }
         }
       }
@@ -279,7 +339,7 @@ class userRoles extends simplePlugin
           try {
             $g = objects::open($ogroupdn, 'ogroup');
             if (!$g->getBaseObject()->attrIsWriteable('member')) {
-              $errors[] = msgPool::permModify($ogroupdn, 'member');
+              $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($ogroupdn, 'member'));
               continue;
             }
             $g->getBaseObject()->attributesAccess['member']->searchAndRemove($this->dn);
@@ -287,10 +347,12 @@ class userRoles extends simplePlugin
             if (empty($msg)) {
               unset($this->savedGroupsMembership[$key]);
             } else {
-              $errors = array_merge($errors, $msg);
+              foreach ($msg as $error) {
+                $errors[] = new SimplePluginError($this, htmlescape(sprintf(_('Could not remove membership to group %s: %s'), $ogroupdn, $error)));
+              }
             }
           } catch (NonExistingLdapNodeException $e) {
-            $errors[] = $e->getMessage();
+            $errors[] = new SimplePluginError($this, htmlescape($e->getMessage()), 0, $e);
           }
         }
       }
@@ -302,7 +364,7 @@ class userRoles extends simplePlugin
           try {
             $r = objects::open($roledn, 'role');
             if (!in_array($roledn, $this->templateRoles) && !$r->getBaseObject()->attrIsWriteable('roleOccupant')) {
-              $errors[] = msgPool::permModify($roledn, 'roleOccupant');
+              $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($roledn, 'roleOccupant'));
               continue;
             }
             $r->getBaseObject()->attributesAccess['roleOccupant']->addValue($this->dn, $fake_attrs);
@@ -310,10 +372,12 @@ class userRoles extends simplePlugin
             if (empty($msg)) {
               $this->savedRolesMembership[] = $roledn;
             } else {
-              $errors = array_merge($errors, $msg);
+              foreach ($msg as $error) {
+                $errors[] = new SimplePluginError($this, htmlescape(sprintf(_('Could not add membership to role %s: %s'), $roledn, $error)));
+              }
             }
           } catch (NonExistingLdapNodeException $e) {
-            $errors[] = $e->getMessage();
+            $errors[] = new SimplePluginError($this, htmlescape($e->getMessage()), 0, $e);
           }
         }
       }
@@ -324,7 +388,7 @@ class userRoles extends simplePlugin
           try {
             $r = objects::open($roledn, 'role');
             if (!$r->getBaseObject()->attrIsWriteable('roleOccupant')) {
-              $errors[] = msgPool::permModify($roledn, 'roleOccupant');
+              $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($roledn, 'roleOccupant'));
               continue;
             }
             $r->getBaseObject()->attributesAccess['roleOccupant']->searchAndRemove($this->dn);
@@ -332,10 +396,12 @@ class userRoles extends simplePlugin
             if (empty($msg)) {
               unset($this->savedRolesMembership[$key]);
             } else {
-              $errors = array_merge($errors, $msg);
+              foreach ($msg as $error) {
+                $errors[] = new SimplePluginError($this, htmlescape(sprintf(_('Could not remove membership to role %s: %s'), $roledn, $error)));
+              }
             }
           } catch (NonExistingLdapNodeException $e) {
-            $errors[] = $e->getMessage();
+            $errors[] = new SimplePluginError($this, htmlescape($e->getMessage()), 0, $e);
           }
         }
       }
@@ -344,7 +410,7 @@ class userRoles extends simplePlugin
     return $errors;
   }
 
-  function adapt_from_template ($attrs, $skip = [])
+  function adapt_from_template (array $attrs, array $skip = [])
   {
     parent::adapt_from_template($attrs, $skip);
 
@@ -354,6 +420,8 @@ class userRoles extends simplePlugin
       $myGroups = array_combine($this->attrs['userGroups'], $this->attrs['userGroups']);
       $groups   = $this->attributesAccess['groupsMembership']->attribute->getDisplayChoices();
       $groups   = array_merge($myGroups, $groups);
+      asort($groups);
+      asort($myGroups);
       $this->attributesAccess['groupsMembership']->attribute->setChoices(array_keys($groups), array_values($groups));
       $this->attributesAccess['groupsMembership']->setValue(array_keys($myGroups));
       $this->templateGroups = array_keys($myGroups);
@@ -367,6 +435,8 @@ class userRoles extends simplePlugin
       $myRoles = array_combine($this->attrs['userRoles'], $this->attrs['userRoles']);
       $roles   = $this->attributesAccess['rolesMembership']->attribute->getDisplayChoices();
       $roles   = array_merge($myRoles, $roles);
+      asort($roles);
+      asort($myRoles);
       $this->attributesAccess['rolesMembership']->attribute->setChoices(array_keys($roles), array_values($roles));
       $this->attributesAccess['rolesMembership']->setValue(array_keys($myRoles));
       $this->templateRoles = array_keys($myRoles);
diff --git a/plugins/personal/roles/main.inc b/plugins/personal/roles/main.inc
deleted file mode 100644
index 29d1acb652adf615ca56526090fff166010308bb..0000000000000000000000000000000000000000
--- a/plugins/personal/roles/main.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2015-2016  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-simplePlugin::mainInc('userRoles', $ui->dn);
-?>
diff --git a/setup/class_setup.inc b/setup/class_setup.inc
index a1b88112724b4074f3beab1440f4b3ab25633a34..980bd22c940fb20aac3ff30f3975f2c5830e4aef 100644
--- a/setup/class_setup.inc
+++ b/setup/class_setup.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -21,24 +21,7 @@
 
 require_once("class_setupStep.inc");
 
-class fake_userinfo extends userinfo
-{
-  function __construct ()
-  {
-    $this->cn   = 'fake_cn';
-    $this->dn   = 'fake_dn';
-    $this->uid  = 'fake_uid';
-    $this->ip   = $_SERVER['REMOTE_ADDR'];
-
-    /* This fake user have all rights */
-    $this->ignoreACL = TRUE;
-
-    /* Initialize ACL_CACHE */
-    $this->reset_acl_cache();
-  }
-}
-
-class setup
+class setup implements FusionDirectoryDialog
 {
   /* Number of setup steps */
   var $i_steps;
@@ -60,7 +43,7 @@ class setup
       new setupStepLanguage($this),
       new setupStepChecks($this),
       new setupStepLdap($this),
-      new setupStepConfig_before_init($this),
+      new setupStepConfigBeforeInit($this),
       new setupStepMigrate($this),
       new setupStepFinish($this),
     ];
@@ -68,20 +51,20 @@ class setup
     $this->i_steps = count($this->o_steps);
 
     /* Ensure that setup is not reachable if fusiondirectory.conf exist (CONFIG_FILE) */
-    if (file_exists(CONFIG_DIR."/".CONFIG_FILE)) {
-      session::destroy();
-      header("Location: index.php");
+    if (file_exists(CONFIG_DIR.'/'.CONFIG_FILE)) {
+      session::destroy('Invalid setup.php call');
+      header('Location: index.php');
       exit();
     }
   }
 
-  function execute ()
+  public function render (): string
   {
     /* Display phpinfo() dialog when $_GET['info'] is set,
      *  but only do this, if user is allowed to use the setup.
      * If setupsetupStepWelcome is_completed, we are allowed to view those infos-
      */
-    if (isset($_GET['info']) && preg_match("/setupStepWelcome/i", get_class($this->o_steps[1])) && $this->o_steps[1]->is_completed()) {
+    if (isset($_GET['info']) && preg_match('/setupStepWelcome/i', get_class($this->o_steps[0])) && $this->o_steps[0]->is_completed()) {
       phpinfo();
       exit();
     }
@@ -90,55 +73,27 @@ class setup
     $smarty->assign('usePrototype', 'true');
     $this->o_steps[$this->i_previous]->set_active(FALSE);
     $this->o_steps[$this->i_current]->set_active();
-    $content = $this->o_steps[$this->i_current]->execute();
-    return $content;
+    return $this->o_steps[$this->i_current]->render();
   }
 
 
   /* Save posted attributes  */
-  function save_object ()
+  public function readPost ()
   {
-    /* Call save_object for current setup step */
-    $this->o_steps[$this->i_current]->save_object();
-
-    /* Get attributes from setup step */
-    $tmp = $this->o_steps[$this->i_current]->get_attributes();
-    foreach ($tmp as $name => $value) {
-      $this->captured_values[$name] = $value;
-    }
-
-    /* Set parent */
-    foreach ($this->o_steps as $key => $value) {
-      $this->o_steps[$key]->parent = $this;
-    }
+    /* Call readPost for current setup step */
+    $this->o_steps[$this->i_current]->readPost();
 
     /* Check if image button requests next page */
     foreach ($_POST as $name => $value) {
-      if (preg_match("/^next_(x|y)/", $name)) {
+      if (preg_match('/^next_(x|y)/', $name)) {
         $_POST['next'] = TRUE;
       }
-      if (preg_match("/^last_(x|y)/", $name)) {
+      if (preg_match('/^last_(x|y)/', $name)) {
         $_POST['last'] = TRUE;
       }
     }
 
-    /* Display step error messages */
-    $msgs = $this->o_steps[$this->i_current]->check();
-    msg_dialog::displayChecks($msgs);
-
-    for ($i = 0; $i < $this->i_steps; $i++) {
-      if ($this->o_steps[$i]->is_completed()) {
-        /* If step is completed, activate the next step if possible */
-        if (isset($this->o_steps[($i + 1)])) {
-          $this->o_steps[($i + 1)]->set_enabled();
-        }
-      } else {
-        /* Disable all following steps, if one step isn't completed right now */
-        $this->disable_steps_from($i + 1);
-        break;
-      }
-    }
-
+    /* Detect target step */
     $step = -1;
 
     if (isset($_POST['setup_goto_step'])) {
@@ -160,10 +115,51 @@ class setup
       }
     }
 
-    if ($this->selectable_step($step)) {
-      $this->i_previous = $this->i_current;
-      $this->i_current  = $step;
+    $this->i_previous = $this->i_current;
+    $this->i_current  = $step;
+  }
+
+  public function update (): bool
+  {
+    $this->o_steps[$this->i_previous]->update();
+
+    /* Get attributes from setup step */
+    $tmp = $this->o_steps[$this->i_previous]->get_attributes();
+    foreach ($tmp as $name => $value) {
+      $this->captured_values[$name] = $value;
+    }
+
+    /* Set parent */
+    foreach ($this->o_steps as $key => $value) {
+      $this->o_steps[$key]->parent = $this;
+    }
+
+    /* Display step error messages */
+    $msgs = $this->o_steps[$this->i_previous]->check();
+    msg_dialog::displayChecks($msgs);
+
+    for ($i = 0; $i < $this->i_steps; $i++) {
+      if ($this->o_steps[$i]->is_completed()) {
+        /* If step is completed, activate the next step if possible */
+        if (isset($this->o_steps[($i + 1)])) {
+          $this->o_steps[($i + 1)]->set_enabled();
+        }
+      } else {
+        /* Disable all following steps, if one step isn't completed right now */
+        $this->disable_steps_from($i + 1);
+        break;
+      }
+    }
+
+    if (!$this->selectable_step($this->i_current)) {
+      $this->i_current = $this->i_previous;
+    }
+
+    if ($this->i_current != $this->i_previous) {
+      $this->o_steps[$this->i_current]->update();
     }
+
+    return TRUE;
   }
 
 
@@ -181,7 +177,6 @@ class setup
   {
     $str = '<ul class="menu"><li><a>FusionDirectory Setup</a><ul>';
     foreach ($this->o_steps as $key => $step) {
-
       $step->update_strings();
 
       $s_short_name   = $step->get_short_name();
@@ -254,7 +249,7 @@ class setup
 
 
   /* Check if the given step id is valid and selectable */
-  function selectable_step ($id)
+  protected function selectable_step ($id): bool
   {
     if (isset($this->o_steps[$id]) && $this->o_steps[$id]->is_enabled()) {
       return TRUE;
@@ -273,12 +268,11 @@ class setup
   }
 
   /* Called when LDAP is configured */
-  function read_ldap_config ()
+  public function read_ldap_config (array $captured_values)
   {
     global $config;
-    /* Get attributes from current ldap step */
-    $tmp = $this->o_steps[$this->i_current]->get_attributes();
-    foreach ($tmp as $name => $value) {
+    /* Get attributes from ldap step */
+    foreach ($captured_values as $name => $value) {
       $this->captured_values[$name] = $value;
     }
     $smarty = get_smarty();
@@ -294,7 +288,7 @@ class setup
     $config->parse_data($xml);
     $config->set_current($config->data['MAIN']['DEFAULT']);
     session::un_set('plist');
-    load_plist();
+    pluglist::load();
     $this->reBuildConfigStep();
   }
 
@@ -310,4 +304,25 @@ class setup
       $this->o_steps[$this->i_config]->is_completed = $completed;
     }
   }
+
+  static function mainInc ()
+  {
+    global $setup, $display;
+
+    $display = '';
+
+    /* Create a new setup class if necessary  */
+    if (!session::is_set('setup') || (isset($_GET['reset']) && ($_GET['reset'] == 1))) {
+      session::set('setup', new setup());
+    }
+    $setup = session::get('setup');
+
+    /* Execute formular */
+    $setup->readPost();
+    $setup->update();
+    $display = $setup->render();
+
+    /* Store changes  in session */
+    session::set('setup', $setup);
+  }
 }
diff --git a/setup/class_setupStep.inc b/setup/class_setupStep.inc
index 1d9017b9546d4260dc64dd2f4704ad3060775726..a357213aa4e53bf1a3e729a4a6bcd90cc02866de 100644
--- a/setup/class_setupStep.inc
+++ b/setup/class_setupStep.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2007 Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -31,7 +31,7 @@ class setupStep extends simplePlugin
 
   var $header_image = '';
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [];
   }
@@ -79,21 +79,21 @@ class setupStep extends simplePlugin
 
   function set_active ($value = TRUE)
   {
-    $this->is_active = ($value == TRUE);
+    $this->is_active = (bool) $value;
   }
 
   function set_enabled ($value = TRUE)
   {
-    $this->is_enabled = ($value == TRUE);
+    $this->is_enabled = (bool) $value;
   }
 
   function set_completed ($value = TRUE)
   {
-    $this->is_completed = ($value == TRUE);
+    $this->is_completed = (bool) $value;
   }
 
   /* Return attributes handled by this setup step */
-  public function get_attributes ()
+  public function get_attributes (): array
   {
     $tmp = [];
     foreach (array_keys($this->attributesAccess) as $attr) {
@@ -112,4 +112,3 @@ class setupStep extends simplePlugin
     }
   }
 }
-?>
diff --git a/setup/class_setupStepChecks.inc b/setup/class_setupStepChecks.inc
index f901d9e3231d46bcda4c7a12696dc83b4c7d5ecb..9c48022d88a1c9a1c68435a9801fd6a1f22d2919 100644
--- a/setup/class_setupStepChecks.inc
+++ b/setup/class_setupStepChecks.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2003  Cajus Pollmeier
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -23,7 +23,7 @@ class setupStepChecks extends setupStep
 {
   var $header_image = 'geticon.php?context=categories&icon=checks&size=48';
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'modules' => [
@@ -50,13 +50,6 @@ class setupStepChecks extends setupStep
     $this->s_description  = _('Basic checks for PHP compatibility and extensions');
   }
 
-  /* Execute and display template */
-  function execute ()
-  {
-    $this->run_checks();
-    return parent::execute();
-  }
-
   /* Execute all checks */
   function run_checks ()
   {
@@ -95,14 +88,6 @@ class setupStepChecks extends setupStep
     $M = TRUE;
     $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
 
-    /* Pseudo-random check */
-    $N = _('Checking cryptographically secure pseudo-random integers');
-    $D = _('You must use PHP>=7 or have openssl module activated so that FusionDirectory can generate cryptographically secure pseudo-random integers.');
-    $S = _('Please upgrade to PHP7 or activate openssl module.');
-    $R = (is_callable('random_int') || is_callable('openssl_random_pseudo_bytes'));
-    $M = TRUE;
-    $basic_checks[] = ['NAME' => $N , 'DESC' => $D , 'RESULT' => $R , 'SOLUTION' => $S , 'MUST' => $M ];
-
     /* Check for json support */
     $N = msgPool::checkingFor('json');
     $D = _('FusionDirectory requires this module to encode variables for javascript use.');
@@ -127,14 +112,6 @@ class setupStepChecks extends setupStep
     $M = TRUE;
     $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
 
-    /* Check for installed mhash module */
-    $N = msgPool::checkingFor("hash method");
-    $D = _("FusionDirectory requires either 'mhash' or the 'sha1' module to make use of SSHA encryption.");
-    $S = msgPool::installPhpModule("mhash/sha1");
-    $R = is_callable('mhash') || is_callable('sha1');
-    $M = FALSE;
-    $basic_checks[] = ["NAME" => $N , "DESC" => $D , "RESULT" => $R , "SOLUTION" => $S , "MUST" => $M ];
-
     /* Check if imap module is available */
     $N = msgPool::checkingFor("IMAP");
     $D = _("FusionDirectory requires this module to talk to an IMAP server.");
@@ -221,11 +198,14 @@ class setupStepChecks extends setupStep
     $this->config_checks  = $config_checks;
   }
 
-  function save_object ()
+  public function update (): bool
   {
-    parent::save_object();
-     /* If everything is fine, set this step to completed
-     *  and allow switching to next setup step */
+    parent::update();
+
+    $this->run_checks();
+
+    /* If everything is fine, set this step to completed
+    *  and allow switching to next setup step */
     $failed = FALSE;
     foreach (['basic_checks','config_checks'] as $type) {
       foreach ($this->$type as $obj) {
@@ -236,7 +216,7 @@ class setupStepChecks extends setupStep
       }
     }
     $this->is_completed = !$failed;
+
+    return TRUE;
   }
 }
-
-?>
diff --git a/setup/class_setupStepConfig.inc b/setup/class_setupStepConfig.inc
index d83c73764e8898d9cbeb45fc5bbf9364941c9fee..9a0afa6234a6394f3d4659d375726d8e1efd406a 100644
--- a/setup/class_setupStepConfig.inc
+++ b/setup/class_setupStepConfig.inc
@@ -1,8 +1,9 @@
 <?php
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
+
   Copyright (C) 2007 Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -19,7 +20,7 @@
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 */
 
-class setupStepConfig_before_init extends setupStep
+class setupStepConfigBeforeInit extends setupStep
 {
   function update_strings ()
   {
@@ -42,7 +43,9 @@ class setupStepConfig extends configInLdap
   var $is_completed = FALSE;
   var $header_image;
 
-  static function plInfo ()
+  protected $objectclasses = ['fusionDirectoryConf'];
+
+  static function plInfo (): array
   {
     return [];
   }
@@ -72,8 +75,7 @@ class setupStepConfig extends configInLdap
 
   function get_title ()
   {
-    $infos = parent::plInfo();
-    return $infos['plDescription'];
+    return $this->get_description();
   }
 
   function get_description ()
@@ -92,38 +94,40 @@ class setupStepConfig extends configInLdap
     return $tmp;
   }
 
-  function save_object ()
+  function update (): bool
   {
-    global $config;
-    parent::save_object();
+    global $config, $plist;
+    parent::update();
     $this->is_completed = FALSE;
     $tmp = $this->check();
     if (count($tmp) == 0) {
       /* Create root object if missing */
       $ldap = $config->get_ldap_link();
       $ldap->cd($config->current['BASE']);
-      $ldap->create_missing_trees($config->current['BASE'], FALSE);
-      if (!$ldap->success()) {
-        msg_dialog::display(
-          _('LDAP error'),
-          msgPool::ldaperror($ldap->get_error(), $config->current['BASE'], 'create_missing_trees', get_class()),
-          LDAP_ERROR
-        );
-        return;
+      try {
+        $ldap->create_missing_trees($config->current['BASE'], FALSE);
+      } catch (FusionDirectoryError $error) {
+        $error->display();
+        return TRUE;
       }
       /* Save in LDAP */
       $errors = $this->save();
       if (!empty($errors)) {
         msg_dialog::displayChecks($errors);
-        return;
+        return TRUE;
       }
+      /* Insert default config values, even for installed plugin */
+      session::un_set('plist');
+      pluglist::load();
+      $config->loadPlist($plist);
+      $config->checkLdapConfig(TRUE);
       /* Reload config from LDAP */
       $config->set_current($config->current['NAME']);
-      session::un_set('plist');
-      load_plist();
+      /* Set as completed and reload step */
       $this->is_completed = TRUE;
       $this->parent->reBuildConfigStep(TRUE);
     }
+    return TRUE;
   }
 
   function is_active ()
@@ -143,43 +147,48 @@ class setupStepConfig extends configInLdap
 
   function set_active ($value = TRUE)
   {
-    $this->is_active = ($value == TRUE);
+    $this->is_active = (bool) $value;
   }
 
   function set_enabled ($value = TRUE)
   {
-    $this->is_enabled = ($value == TRUE);
+    $this->is_enabled = (bool) $value;
   }
 
   function set_completed ($value = TRUE)
   {
-    $this->is_completed = ($value == TRUE);
+    $this->is_completed = (bool) $value;
   }
 
   /* bypass acl system as there is no user login */
-  function acl_is_writeable ($attribute, $skip_write = FALSE)
+  function acl_is_writeable ($attribute, bool $skip_write = FALSE): bool
   {
     return TRUE;
   }
-  function acl_is_readable ($attribute)
+  function acl_is_readable ($attribute): bool
   {
     return TRUE;
   }
-  function acl_is_createable ($base = "")
+  function acl_is_createable (string $base = NULL): bool
   {
     return TRUE;
   }
-  function acl_is_removeable ($base = "")
+  function acl_is_removeable (string $base = NULL): bool
   {
     return TRUE;
   }
-  function acl_is_moveable ($base = "")
+  function acl_is_moveable (string $base = NULL): bool
   {
     return TRUE;
   }
-  function aclGetPermissions ($attribute = '0', $base = NULL, $skipWrite = FALSE)
+  function aclGetPermissions ($attribute = '0', string $base = NULL, bool $skipWrite = FALSE): string
   {
     return 'cmdrw';
   }
+
+  /* We need static method to work as if we were configInLdap */
+  static function isAccount ($attrs)
+  {
+    return configInLdap::isAccount($attrs);
+  }
 }
-?>
diff --git a/setup/class_setupStepFinish.inc b/setup/class_setupStepFinish.inc
index ab93fab189da6d6163ff4f45ff2068343d239af0..14d3e81ca7414d240718c4515eab1cafe228c9c2 100644
--- a/setup/class_setupStepFinish.inc
+++ b/setup/class_setupStepFinish.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2007  Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -23,7 +23,7 @@ class setupStepFinish extends setupStep
 {
   var $header_image = 'geticon.php?context=devices&icon=server&size=48';
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'welcome' => [
@@ -52,34 +52,29 @@ class setupStepFinish extends setupStep
     return $smarty->fetch(CONFIG_TEMPLATE_DIR.CONFIG_FILE);
   }
 
-  function insertConfigDefaults ()
+  public function readPost ()
   {
-    /* Insert default config values, even for installed plugin */
-    global $config, $ui, $plist, $BASE_DIR;
-    $cv = $this->parent->captured_values;
+    parent::readPost();
 
-    /* Create config object */
-
-    $config = new config(CONFIG_DIR."/".CONFIG_FILE, $BASE_DIR);
-    $config->set_current($config->data['MAIN']['DEFAULT']);
-
-    /* Create ui object */
-
-    /* got user dn, fill acl's */
-    $ui = new userinfo($cv['valid_admin']);
-    /* Username is set, load subtreeACL's now */
-    $ui->loadACL();
+    $exists = file_exists(CONFIG_DIR.'/'.CONFIG_FILE);
 
-    /* We need the pluglist object */
-    load_all_classes();
-    $plist = new pluglist();
+    /* Redirect to FusionDirectory login, if :
+     *   - fusiondirectory.conf exists
+     *   - Permisssion are set correctly
+     */
+    if (isset($_POST['next']) && $exists && !$this->is_world_readable(CONFIG_DIR.'/'.CONFIG_FILE)) {
+      session::destroy();
+      header('Location: index.php');
+      exit();
+    }
 
-    /* Now we can save LDAP config */
-    $config->loadPlist($plist);
-    $config->checkLdapConfig(TRUE);
+    /* Download config */
+    if (isset($_POST['getconf'])) {
+      send_binary_content($this->get_conf_data(), CONFIG_FILE, 'text/plain');
+    }
   }
 
-  function execute ()
+  public function render (): string
   {
     /* Check if there is currently an active fusiondirectory.conf */
     $exists   = file_exists(CONFIG_DIR."/".CONFIG_FILE);
@@ -93,31 +88,9 @@ class setupStepFinish extends setupStep
 
     $smarty = get_smarty();
     $smarty->assign('err_msg',  $err_msg);
-    $smarty->assign('msg2',     sprintf(_('After downloading and placing the file under %s, please make sure that the user the webserver is running with is able to read %s, while other users shouldn\'t.'), CONFIG_DIR, CONFIG_FILE));
-
-    return parent::execute();
-  }
-
-  function save_object ()
-  {
-    parent::save_object();
-    $exists = file_exists(CONFIG_DIR.'/'.CONFIG_FILE);
-
-    /* Redirect to FusionDirectory login, if :
-     *   - fusiondirectory.conf exists
-     *   - Permisssion are set correctly
-     */
-    if (isset($_POST['next']) && $exists && !$this->is_world_readable(CONFIG_DIR.'/'.CONFIG_FILE)) {
-      $this->insertConfigDefaults();
-      session::destroy();
-      header('Location: index.php');
-      exit();
-    }
+    $smarty->assign('msg2',     sprintf(_('After downloading and placing the file under %s, please make sure that the user the web server is running with is able to read %s, while other users shouldn\'t.'), CONFIG_DIR, CONFIG_FILE));
 
-    /* Download config */
-    if (isset($_POST['getconf'])) {
-      send_binary_content($this->get_conf_data(), CONFIG_FILE, 'text/plain');
-    }
+    return parent::render();
   }
 
   /* check if given file is world readable */
@@ -125,7 +98,6 @@ class setupStepFinish extends setupStep
   {
     clearstatcache();
     $p = fileperms($file);
-    return (decbin($p & 4) == TRUE);
+    return (bool) decbin($p & 4);
   }
 }
-?>
diff --git a/setup/class_setupStepLanguage.inc b/setup/class_setupStepLanguage.inc
index de0fc609332ec22138e3bb7845044ca7f22dc89b..9ef9a9323682cfe94a68d1027fd99860fc957744 100644
--- a/setup/class_setupStepLanguage.inc
+++ b/setup/class_setupStepLanguage.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2007  Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -23,7 +23,7 @@ class setupStepLanguage extends setupStep
 {
   var $header_image = 'geticon.php?context=applications&icon=config-language&size=48';
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'lang' => [
@@ -62,26 +62,25 @@ class setupStepLanguage extends setupStep
     $this->msg            = _('At this point, you can select the site wide default language. Choosing "automatic" will use the language requested by the browser. This setting can be overriden per user.');
   }
 
-  function execute ()
+  public function update (): bool
   {
-    $languages = Language::getList(TRUE);
-    asort($languages);
-    $languages = array_merge(["" => _("Automatic")], $languages);
-    $this->attributesAccess['lang_selected']->setChoices(array_keys($languages), array_values($languages));
-    return parent::execute();
-  }
-
-  function save_object ()
-  {
-    parent::save_object();
+    parent::update();
     $this->is_completed   = TRUE;
 
-    if ($this->lang_selected != "") {
+    if ($this->lang_selected != '') {
       session::set('lang', $this->lang_selected);
     } else {
       session::set('lang', $this->lang);
     }
+    return TRUE;
   }
-}
 
-?>
+  public function render (): string
+  {
+    $languages = Language::getList(TRUE);
+    asort($languages);
+    $languages = array_merge(["" => _("Automatic")], $languages);
+    $this->attributesAccess['lang_selected']->setChoices(array_keys($languages), array_values($languages));
+    return parent::render();
+  }
+}
diff --git a/setup/class_setupStepLdap.inc b/setup/class_setupStepLdap.inc
index f931da121f53c1e2764a320e90a5bb04fbe8085f..92fe043539ad2f6e605b3cf9ffcc262f9a3d88e7 100644
--- a/setup/class_setupStepLdap.inc
+++ b/setup/class_setupStepLdap.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2007  Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -29,7 +29,7 @@ class setupStepLdap extends setupStep
   private $lastBase       = '';
   private $lastConnection = '';
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'connection' => [
@@ -135,9 +135,9 @@ class setupStepLdap extends setupStep
     $this->lastBase       = $this->base;
   }
 
-  function save_object ()
+  public function update (): bool
   {
-    parent::save_object();
+    parent::update();
     $this->connection = preg_replace('/\/$/', '', $this->connection);
     if (($this->base != $this->lastBase) || ($this->connection != $this->lastConnection)) {
       $this->parent->disable_steps_from(($this->parent->step_name_to_id(get_class($this))) + 1);
@@ -152,10 +152,12 @@ class setupStepLdap extends setupStep
     $this->status = $this->get_connection_status();
     if ($this->bind_id && !empty($this->admin) && !empty($this->base)) {
       $this->is_completed = TRUE;
-      $this->parent->read_ldap_config();
+      $this->parent->read_ldap_config($this->get_attributes());
     } else {
       $this->is_completed = FALSE;
     }
+
+    return TRUE;
   }
 
   function get_connection_status ()
@@ -167,10 +169,11 @@ class setupStepLdap extends setupStep
     $this->connect_id = ldap_connect($this->connection);
 
     if ($this->tls) {
-      if (@ldap_set_option($this->connect_id, LDAP_OPT_REFERRALS, 0)) {
-        if (@ldap_start_tls($this->connect_id)) {
-          $this->bind_id = @ldap_bind($this->connect_id, $this->admin, $this->password);
-        }
+      if (
+        @ldap_set_option($this->connect_id, LDAP_OPT_REFERRALS, 0) &&
+        @ldap_start_tls($this->connect_id)
+        ) {
+        $this->bind_id = @ldap_bind($this->connect_id, $this->admin, $this->password);
       }
       @ldap_set_option($this->connect_id, LDAP_OPT_PROTOCOL_VERSION, 3);
     } else {
@@ -199,29 +202,35 @@ class setupStepLdap extends setupStep
     }
   }
 
-  function check ()
+  function check (): array
   {
-    $error = parent::check();
-    if (!empty($error)) {
+    $errors = parent::check();
+    if (!empty($errors)) {
       $this->update_base_choices();
-      return $error;
     } elseif ($this->is_completed) {
       $checked  = check_schema($this->parent->captured_values);
-      $error    = [];
+      $errors   = [];
       foreach ($checked as $check) {
         if (!$check['STATUS']) {
           if ($check['IS_MUST_HAVE']) {
-            $error[] = sprintf(_("%s\nSchema \"%s\": %s"), $check['MSG'], $check['SCHEMA_FILE'], $check['INFO']);
+            $errors[] = sprintf(_("%s\nSchema \"%s\": %s"), $check['MSG'], $check['SCHEMA_FILE'], $check['INFO']);
           } else {
-            msg_dialog::display(_('Warning'), sprintf(_("%s\nSchema \"%s\": %s"), $check['MSG'], $check['SCHEMA_FILE'], $check['INFO']), WARNING_DIALOG);
+            $warning = new FusionDirectoryWarning(
+              nl2br(htmlescape(sprintf(
+                _("%s\nSchema \"%s\": %s"),
+                $check['MSG'],
+                $check['SCHEMA_FILE'],
+                $check['INFO']
+              )))
+            );
+            $warning->display();
           }
         }
       }
-      if (!empty($error)) {
+      if (!empty($errors)) {
         $this->is_completed = FALSE;
       }
-      return $error;
     }
+    return $errors;
   }
 }
-?>
diff --git a/setup/class_setupStepMigrate.inc b/setup/class_setupStepMigrate.inc
index f99ada78cb66c863fde29bd25b55f17e8fccb6d2..59c0d524ee4d7a7ff31db0095abad308e68de2b6 100644
--- a/setup/class_setupStepMigrate.inc
+++ b/setup/class_setupStepMigrate.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2007  Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2019  FusionDirectory
 
   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
@@ -38,8 +38,9 @@ get_user_list               - Get list of available users
 create_admin
 create_admin_user
 
-execute                     - Generate html output of this plugin
-save_object                 - Save posts
+readPost                    - Save posts
+update                      - Update state
+render                      - Generate html output of this plugin
 array_to_ldif               - Create ldif output of an ldap result array
 
  ****************/
@@ -60,7 +61,7 @@ class CheckFailedException extends FusionDirectoryException
   }
 }
 
-class StepMigrateDialog extends GenericDialog
+class StepMigrateDialog implements FusionDirectoryDialog
 {
   protected $post_cancel = 'dialog_cancel';
   protected $post_finish = 'dialog_confirm';
@@ -71,41 +72,50 @@ class StepMigrateDialog extends GenericDialog
 
   public function __construct (&$check, $tpl, $infos)
   {
-    $this->attribute  = NULL;
-    $this->dialog     = NULL;
     $this->infos      = $infos;
     $this->tplfile    = $tpl;
     $this->check      = $check;
   }
 
-  public function dialog_execute ()
+  public function readPost ()
   {
-    if (
+    if (isset($_POST[$this->post_cancel])) {
+      $this->handleCancel();
+    } elseif (isset($_POST[$this->post_finish]) || isset($_GET[$this->post_finish])) {
+      $this->handleFinish();
+    } elseif (
       isset($_POST['dialog_showchanges']) ||
       isset($_POST['dialog_hidechanges']) ||
       isset($_POST['dialog_refresh'])) {
       $this->infos = $this->check->dialog_refresh();
     }
+  }
+
+  public function update (): bool
+  {
+    return isset($this->check);
+  }
+
+  public function render (): string
+  {
     $smarty = get_smarty();
     $smarty->assign('infos', $this->infos);
     return $smarty->fetch(get_template_path($this->tplfile, TRUE, dirname(__FILE__)));
   }
 
-  function handle_finish ()
+  protected function handleFinish ()
   {
     if ($this->check->migrate_confirm()) {
-      return FALSE;
-    } else {
-      return $this->dialog_execute();
+      unset($this->check);
     }
   }
 
-  function handle_cancel ()
+  protected function handleCancel ()
   {
-    return FALSE;
+    unset($this->check);
   }
 
-  public function getInfos ()
+  public function getInfos (): array
   {
     return $this->infos;
   }
@@ -121,7 +131,7 @@ class StepMigrateCheck
   public $fnc;
   private $step;
 
-  public function __construct ($step, $name, $title)
+  public function __construct (setupStepMigrate $step, string $name, string $title)
   {
     $this->name   = $name;
     $this->title  = $title;
@@ -145,14 +155,14 @@ class StepMigrateCheck
     }
   }
 
-  public function save_object ()
+  public function readPost ()
   {
     if (isset($_POST[$this->name.'_create'])) {
-      $fnc = $this->fnc.'_create';
-      $this->step->$fnc($this);
+      $createFnc = $this->fnc.'_create';
+      $this->step->$createFnc($this);
     } elseif (isset($_POST[$this->name.'_migrate'])) {
-      $fnc = $this->fnc.'_migrate';
-      $this->step->$fnc($this);
+      $migrateFnc = $this->fnc.'_migrate';
+      $this->step->$migrateFnc($this);
     }
   }
 
@@ -166,8 +176,8 @@ class StepMigrateCheck
 
   public function migrate_confirm ()
   {
-    $fnc = $this->fnc.'_migrate'.'_confirm';
-    $res = $this->step->$fnc($this);
+    $migrateConfirmFnc = $this->fnc.'_migrate'.'_confirm';
+    $res = $this->step->$migrateConfirmFnc($this);
     if ($res) {
       $this->run();
     }
@@ -176,8 +186,8 @@ class StepMigrateCheck
 
   public function dialog_refresh ()
   {
-    $fnc = $this->fnc.'_migrate'.'_refresh';
-    return $this->step->$fnc($this);
+    $migrateRefreshFnc = $this->fnc.'_migrate'.'_refresh';
+    return $this->step->$migrateRefreshFnc($this);
   }
 }
 
@@ -189,21 +199,25 @@ class setupStepMigrate extends setupStep
   var $rootOC_details = [];
 
   /* Entries needing migration */
-  var $orgUnits_toMigrate       = [];
-  var $accounts_toMigrate       = [];
-  var $outsideUsers_toMigrate   = [];
-  var $outsideGroups_toMigrate  = [];
+  protected $orgUnits_toMigrate           = [];
+  protected $accounts_toMigrate           = [];
+  protected $outsideUsers_toMigrate       = [];
+  protected $outsideOGroups_toMigrate     = [];
+  protected $outsidePosixGroups_toMigrate = [];
 
   /* check for multiple use of same uidNumber */
-  var $check_uidNumbers = [];
+  var $check_uidNumber = [];
 
   /* check for multiple use of same gidNumber */
-  var $check_gidNumbers = [];
+  var $check_gidNumber = [];
 
   /* Defaults ACL roles */
   var $defaultRoles;
 
-  static function getAttributesInfo ()
+  /* Limit of objects to check/migrate at once to avoid timeouts or memory overflow */
+  static protected $objectNumberLimit = 5000;
+
+  static function getAttributesInfo (): array
   {
     return [
       'checks' => [
@@ -257,21 +271,25 @@ class setupStepMigrate extends setupStep
   function initialize_checks ()
   {
     global $config;
-    $config->get_departments();
+    $config->resetDepartmentCache();
 
     $checks = [
-      'baseOC'        => new StepMigrateCheck($this, 'baseOC',        _('Inspecting object classes in root object')),
-      'permissions'   => new StepMigrateCheck($this, 'permissions',   _('Checking permission for LDAP database')),
-      'accounts'      => new StepMigrateCheck($this, 'accounts',      _('Checking for invisible users')),
-      'adminAccount'  => new StepMigrateCheck($this, 'adminAccount',  _('Checking for super administrator')),
-      'defaultACLs'   => new StepMigrateCheck($this, 'defaultACLs',   _('Checking for default ACL roles and groups')),
-      'outsideUsers'  => new StepMigrateCheck($this, 'outsideUsers',  _('Checking for users outside the people tree')),
-      'outsideGroups' => new StepMigrateCheck($this, 'outsideGroups', _('Checking for groups outside the groups tree')),
-      'orgUnits'      => new StepMigrateCheck($this, 'orgUnits',      _('Checking for invisible departments')),
-      'uidNumber'     => new StepMigrateCheck($this, 'uidNumber',     _('Checking for duplicated UID numbers')),
-      'gidNumber'     => new StepMigrateCheck($this, 'gidNumber',     _('Checking for duplicated GID numbers')),
+      'baseOC'          => new StepMigrateCheck($this, 'baseOC',          _('Inspecting object classes in root object')),
+      'permissions'     => new StepMigrateCheck($this, 'permissions',     _('Checking permission for LDAP database')),
+      'accounts'        => new StepMigrateCheck($this, 'accounts',        _('Checking for invisible users')),
+      'adminAccount'    => new StepMigrateCheck($this, 'adminAccount',    _('Checking for super administrator')),
+      'defaultACLs'     => new StepMigrateCheck($this, 'defaultACLs',     _('Checking for default ACL roles and groups')),
+      'outsideUsers'    => new StepMigrateCheck($this, 'outsideUsers',    _('Checking for users outside the people tree')),
+      'outsideOGroups'  => new StepMigrateCheck($this, 'outsideOGroups',  _('Checking for groups outside the groups tree')),
+      'orgUnits'        => new StepMigrateCheck($this, 'orgUnits',        _('Checking for invisible departments')),
     ];
 
+    if (class_available('posixAccount')) {
+      $checks['outsidePosixGroups'] = new StepMigrateCheck($this, 'outsidePosixGroups', _('Checking for POSIX groups outside the groups tree'));
+      $checks['uidNumber']          = new StepMigrateCheck($this, 'uidNumber',          _('Checking for duplicate UID numbers'));
+      $checks['gidNumber']          = new StepMigrateCheck($this, 'gidNumber',          _('Checking for duplicate GID numbers'));
+    }
+
     $this->checks = $checks;
   }
 
@@ -297,24 +315,33 @@ class setupStepMigrate extends setupStep
     return preg_replace("/\n$/", '', $ret);
   }
 
-  function execute ()
+  public function readPost ()
   {
-    if (empty($this->checks) || isset($_POST['reload'])) {
-      $this->initialize_checks();
-      foreach ($this->checks as $check) {
-        $check->run();
-      }
+    if (ini_get('max_execution_time') < 180) {
+      set_time_limit(180);
+    }
+    $this->is_completed = TRUE;
+    parent::readPost();
+    if (isset($_POST['reload'])) {
+      $this->checks = [];
+    }
+    foreach ($this->checks as $check) {
+      $check->readPost();
     }
-    return parent::execute();
   }
 
-  function save_object ()
+  public function update (): bool
   {
-    $this->is_completed = TRUE;
-    parent::save_object();
-    foreach ($this->checks as $check) {
-      $check->save_object();
+    if (ini_get('max_execution_time') < 180) {
+      set_time_limit(180);
     }
+    if (empty($this->checks)) {
+      $this->initialize_checks();
+      foreach ($this->checks as $check) {
+        $check->run();
+      }
+    }
+    return parent::update();
   }
 
   /* Check if the root object includes the required object classes, e.g. gosaDepartment is required for ACLs.
@@ -336,7 +363,7 @@ class setupStepMigrate extends setupStep
       );
     }
 
-    $attrs = $ldap->fetch();
+    $attrs = $ldap->fetch(TRUE);
 
     /* Root object doesn't exists */
     if (!in_array("gosaDepartment", $attrs['objectClass'])) {
@@ -456,7 +483,8 @@ class setupStepMigrate extends setupStep
       if (isset($this->rootOC_details['mods'])) {
         $res = $ldap->modify($this->rootOC_details['mods']);
         if (!$res) {
-          msg_dialog::display(_('LDAP error'), msgPool::ldaperror($ldap->get_error(), $config->current['BASE'], LDAP_MOD, get_class()), LDAP_ERROR);
+          $error = new FusionDirectoryLdapError($config->current['BASE'], LDAP_MOD, $ldap->get_error(), $ldap->get_errno());
+          $error->display();
         }
         $this->checks['adminAccount']->run();
         return $res;
@@ -502,7 +530,7 @@ class setupStepMigrate extends setupStep
     $res = $ldap->add($testEntry);
     $ldap->cat($dn);
     if (!$ldap->count()) {
-      logging::log('view', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
+      logging::log('error', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
       throw new CheckFailedException(
         _('Failed'),
         sprintf(_('The specified user "%s" does not have full access to your LDAP database.'), $config->current['ADMINDN'])
@@ -513,7 +541,7 @@ class setupStepMigrate extends setupStep
     $res = $ldap->rmDir($dn);
     $ldap->cat($dn);
     if ($ldap->count()) {
-      logging::log('view', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
+      logging::log('error', 'setup/'.get_class($this), $dn, [], $ldap->get_error());
       throw new CheckFailedException(
         _('Failed'),
         sprintf(_('The specified user "%s" does not have full access to your ldap database.'), $config->current['ADMINDN'])
@@ -531,11 +559,12 @@ class setupStepMigrate extends setupStep
   {
     global $config;
     $ldap = $config->get_ldap_link();
+    $ldap->set_size_limit(static::$objectNumberLimit);
 
     /* Remember old list of invisible users, to be able to set
      *  the 'html checked' status for the checkboxes again
      */
-    $old    = $this->accounts_toMigrate;
+    $old                      = $this->accounts_toMigrate;
     $this->accounts_toMigrate = [];
 
     /* Get all invisible users */
@@ -549,39 +578,59 @@ class setupStepMigrate extends setupStep
         ')'.
         '(!(objectClass=inetOrgPerson))'.
         '(uid=*)'.
+        '(!(uid=*$))'.
       ')',
-      ['sn','givenName','cn','uid']
+      ['objectClass','sn','givenName','cn','uid']
     );
-
-    while ($attrs = $ldap->fetch()) {
-      if (!preg_match('/,dc=addressbook,/', $attrs['dn'])) {
-        $attrs['checked'] = FALSE;
-        $attrs['before']  = "";
-        $attrs['after']   = "";
-
-        /* Set objects to selected, that were selected before reload */
-        if (isset($old[base64_encode($attrs['dn'])])) {
-          $attrs['checked'] = $old[base64_encode($attrs['dn'])]['checked'];
-        }
-        $this->accounts_toMigrate[base64_encode($attrs['dn'])] = $attrs;
-      }
-    }
-
     if (!$res) {
       throw new CheckFailedException(
         _('LDAP query failed'),
         _('Possibly the "root object" is missing.')
       );
-    } elseif (count($this->accounts_toMigrate) == 0) {
+    }
+    $sizeLimitHit   = $ldap->hitSizeLimit();
+    $accountsCount  = $ldap->count();
+
+    while ($attrs = $ldap->fetch(TRUE)) {
+      $base = preg_replace('/^[^,]+,/', '', $attrs['dn']);
+
+      /* Build groupid depending on base and objectClasses */
+      $groupid = md5($base.implode('', $attrs['objectClass']));
+
+      if (!isset($this->accounts_toMigrate[$groupid])) {
+        $this->accounts_toMigrate[$groupid] = [
+          /* Set objects to selected, that were selected before reload */
+          'checked' => ($old[$groupid]['checked'] ?? FALSE),
+          'objects' => [],
+          'base'    => $base,
+          'classes' => $attrs['objectClass'],
+        ];
+      }
+
+      $attrs['before']  = '';
+      $attrs['after']   = '';
+
+      $this->accounts_toMigrate[$groupid]['objects'][base64_encode($attrs['dn'])] = $attrs;
+    }
+
+    if (count($this->accounts_toMigrate) == 0) {
       /* No invisible */
       return '';
     } else {
+      if ($sizeLimitHit) {
+        $message = sprintf(
+          _('Found more than %d user(s) that will not be visible in FusionDirectory or which are incomplete.'),
+          static::$objectNumberLimit
+        );
+      } else {
+        $message = sprintf(
+          _('Found %d user(s) that will not be visible in FusionDirectory or which are incomplete.'),
+          $accountsCount
+        );
+      }
       throw new CheckFailedException(
         "<div style='color:#F0A500'>"._("Warning")."</div>",
-        sprintf(
-          _('Found %s user(s) that will not be visible in FusionDirectory or which are incomplete.'),
-          count($this->accounts_toMigrate)
-        ).$checkobj->submit()
+        $message.$checkobj->submit()
       );
     }
   }
@@ -620,12 +669,9 @@ class setupStepMigrate extends setupStep
 
   function check_multipleGeneric_migrate (&$checkobj, $infos)
   {
-    $var = $checkobj->name.'_toMigrate';
-    /* Fix displayed dn syntax */
+    $var              = $checkobj->name.'_toMigrate';
     $infos['entries'] = $this->$var;
-    foreach ($infos['entries'] as $key => $data) {
-      $infos['entries'][$key]['dn'] = $data['dn'];
-    }
+
     $this->openDialog(new StepMigrateDialog($checkobj, 'setup_migrate_accounts.tpl', $infos));
   }
 
@@ -639,13 +685,10 @@ class setupStepMigrate extends setupStep
       /* Hide changes */
       $checkobj->run();
     }
-    /* Fix displayed dn syntax */
-    $var = $checkobj->name.'_toMigrate';
 
+    $var              = $checkobj->name.'_toMigrate';
     $infos['entries'] = $this->$var;
-    foreach ($infos['entries'] as $key => $data) {
-      $infos['entries'][$key]['dn'] = $data['dn'];
-    }
+
     return $infos;
   }
 
@@ -659,46 +702,54 @@ class setupStepMigrate extends setupStep
     foreach ($this->$var as $key => &$entry) {
       $entry['checked'] = isset($_POST['migrate_'.$key]);
       if ($entry['checked']) {
-        /* Get old objectClasses */
-        $ldap->cat($entry['dn'], array_merge(['objectClass'], array_keys($mandatory)));
-        $attrs = $ldap->fetch();
-
-        /* Create new objectClass array */
-        $new_attrs  = [];
-        $new_attrs['objectClass'] = $oc;
-        for ($i = 0; $i < $attrs['objectClass']['count']; $i++) {
-          if (!in_array_ics($attrs['objectClass'][$i], $new_attrs['objectClass'])) {
-            $new_attrs['objectClass'][] = $attrs['objectClass'][$i];
-          }
+        if (isset($entry['objects'])) {
+          $objects =& $entry['objects'];
+        } else {
+          $objects = [&$entry];
         }
+        foreach ($objects as &$object) {
+          /* Get old objectClasses */
+          $ldap->cat($object['dn'], array_merge(['objectClass'], array_keys($mandatory)));
+          $attrs = $ldap->fetch(TRUE);
+
+          /* Create new objectClass array */
+          $new_attrs  = [];
+          $new_attrs['objectClass'] = $oc;
+          for ($i = 0; $i < $attrs['objectClass']['count']; $i++) {
+            if (!in_array_ics($attrs['objectClass'][$i], $new_attrs['objectClass'])) {
+              $new_attrs['objectClass'][] = $attrs['objectClass'][$i];
+            }
+          }
 
-        /* Append mandatories if missing */
-        foreach ($mandatory as $name => $value) {
-          if (!isset($attrs[$name])) {
-            $new_attrs[$name] = $value;
+          /* Append mandatories if missing */
+          foreach ($mandatory as $name => $value) {
+            if (!isset($attrs[$name])) {
+              $new_attrs[$name] = $value;
+            }
           }
-        }
 
-        /* Set info attributes for current object,
-         *  or write changes to the ldap database
-         */
-        if ($only_ldif) {
-          $entry['before'] = $this->array_to_ldif($attrs);
-          $entry['after']  = $this->array_to_ldif($new_attrs);
-        } else {
-          $ldap->cd($attrs['dn']);
-          if (!$ldap->modify($new_attrs)) {
-            msg_dialog::display(
-              _('Migration error'),
-              sprintf(
-                _('Cannot migrate entry "%s":').'<br/><br/><i>%s</i>',
-                $attrs['dn'], $ldap->get_error()
-              ),
-              ERROR_DIALOG
-            );
-            return FALSE;
+          /* Set info attributes for current object,
+           *  or write changes to the ldap database
+           */
+          if ($only_ldif) {
+            $object['before'] = $this->array_to_ldif($attrs);
+            $object['after']  = $this->array_to_ldif($new_attrs);
+          } else {
+            $ldap->cd($attrs['dn']);
+            if (!$ldap->modify($new_attrs)) {
+              $error = new FusionDirectoryError(
+                nl2br(sprintf(
+                  htmlescape(_("Cannot migrate entry \"%s\":\n\n%s")),
+                  htmlescape($attrs['dn']), '<i>'.htmlescape($ldap->get_error()).'</i>'
+                ))
+              );
+              $error->display();
+              return FALSE;
+            }
           }
         }
+        unset($object);
+        unset($objects);
       }
     }
     unset($entry);
@@ -713,7 +764,7 @@ class setupStepMigrate extends setupStep
     /* Establish ldap connection */
     $ldap = $config->get_ldap_link();
     $ldap->cd($config->current['BASE']);
-    $res = $ldap->cat($config->current['BASE']);
+    $res = $ldap->cat($config->current['BASE'], ['gosaAclEntry']);
 
     if (!$res) {
       throw new CheckFailedException(
@@ -725,34 +776,12 @@ class setupStepMigrate extends setupStep
 
       $attrs = $ldap->fetch();
 
-      /* Collect a list of available FusionDirectory users and groups */
-      $users = [];
-      $ldap->search('(objectClass=inetOrgPerson)', ['uid','dn']);
-      while ($user_attrs = $ldap->fetch()) {
-        if (isset($user_attrs['uid'][0])) {
-          $users[$user_attrs['dn']]       = $user_attrs['uid'][0];
-          $rusers[$user_attrs['uid'][0]]  = $user_attrs['dn'];
-        } else {
-          $users[$user_attrs['dn']] = $user_attrs['dn'];
-        }
-      }
-      $groups = [];
-      $ldap->search('(objectClass=posixGroup)', ['cn','dn']);
-      while ($group_attrs = $ldap->fetch()) {
-        $groups[$group_attrs['dn']] = $group_attrs['cn'][0];
-      }
-      $roles = [];
-      $ldap->search('(objectClass=organizationalRole)', ['cn','dn']);
-      while ($role_attrs = $ldap->fetch()) {
-        $roles[$role_attrs['dn']] = $role_attrs['cn'][0];
-      }
-
       /* Check if a valid FusionDirectory admin exists
           -> gosaAclEntry for an existing and accessible user.
        */
-      $valid_users  = '';
-      $valid_groups = '';
-      $valid_roles  = '';
+      $valid_users  = [];
+      $valid_groups = [];
+      $valid_roles  = [];
       if (isset($attrs['gosaAclEntry'])) {
         $acls = $attrs['gosaAclEntry'];
         for ($i = 0; $i < $acls['count']; $i++) {
@@ -767,40 +796,39 @@ class setupStepMigrate extends setupStep
               foreach ($members as $member) {
                 $member = base64_decode($member);
 
-                if (isset($users[$member])) {
-                  $valid_users    .= $users[$member].', ';
-                  $FD_admin_found = TRUE;
-                }
-                if (isset($groups[$member])) {
-                  $ldap->cat($member);
-                  $group_attrs = $ldap->fetch();
-                  $val_users = '';
-                  if (isset($group_attrs['memberUid'])) {
-                    for ($e = 0; $e < $group_attrs['memberUid']['count']; $e ++) {
-                      if (isset($rusers[$group_attrs['memberUid'][$e]])) {
-                        $val_users .= $group_attrs['memberUid'][$e].', ';
+                $ldap->cat($member, ['dn','uid','cn','memberUid','roleOccupant','objectClass']);
+                if ($member_attrs = $ldap->fetch()) {
+                  if (in_array('inetOrgPerson', $member_attrs['objectClass'])) {
+                    $valid_users[]  = htmlescape(($member_attrs['uid'][0] ?? $member_attrs['dn']));
+                    $FD_admin_found = TRUE;
+                  } elseif (in_array('posixGroup', $member_attrs['objectClass'])) {
+                    $val_users = [];
+                    if (isset($member_attrs['memberUid'])) {
+                      for ($e = 0; $e < $member_attrs['memberUid']['count']; $e++) {
+                        $ldap->search('(&(objectClass=inetOrgPerson)(uid='.ldap_escape_f($member_attrs['memberUid'][$e]).'))', ['uid','dn']);
+                        if ($user_attrs = $ldap->fetch()) {
+                          $val_users[] = htmlescape(($user_attrs['uid'][0] ?? $user_attrs['dn']));
+                        }
                       }
                     }
-                  }
-                  if (!empty($val_users)) {
-                    $valid_groups .= $groups[$member].'(<i>'.trim($val_users, ', ').'</i>), ';
-                    $FD_admin_found  = TRUE;
-                  }
-                }
-                if (isset($roles[$member])) {
-                  $ldap->cat($member);
-                  $role_attrs = $ldap->fetch();
-                  $val_users = '';
-                  if (isset($role_attrs['roleOccupant'])) {
-                    for ($e = 0; $e < $role_attrs['roleOccupant']['count']; $e ++) {
-                      if (isset($users[$role_attrs['roleOccupant'][$e]])) {
-                        $val_users .= $users[$role_attrs['roleOccupant'][$e]].', ';
+                    if (!empty($val_users)) {
+                      $valid_groups[] = htmlescape($member_attrs['cn'][0]).'(<i>'.implode(', ', $val_users).'</i>)';
+                      $FD_admin_found = TRUE;
+                    }
+                  } elseif (in_array('organizationalRole', $member_attrs['objectClass'])) {
+                    $val_users = [];
+                    if (isset($member_attrs['roleOccupant'])) {
+                      for ($e = 0; $e < $member_attrs['roleOccupant']['count']; $e ++) {
+                        $ldap->cat($member_attrs['roleOccupant'][$e], ['uid','dn'], '(objectClass=inetOrgPerson)');
+                        if ($user_attrs = $ldap->fetch()) {
+                          $val_users[] = htmlescape(($user_attrs['uid'][0] ?? $user_attrs['dn']));
+                        }
                       }
                     }
-                  }
-                  if (!empty($val_users)) {
-                    $valid_roles .= $roles[$member].'(<i>'.trim($val_users, ', ').'</i>), ';
-                    $FD_admin_found  = TRUE;
+                    if (!empty($val_users)) {
+                      $valid_roles[]  = htmlescape($member_attrs['cn'][0]).'(<i>'.implode(', ', $val_users).'</i>)';
+                      $FD_admin_found = TRUE;
+                    }
                   }
                 }
               }
@@ -813,27 +841,23 @@ class setupStepMigrate extends setupStep
       if ($FD_admin_found) {
         $str = '';
         if (!empty($valid_users)) {
-          $str .= '<b>'._('Users').'</b>:&nbsp;'.trim($valid_users, ', ').'<br/>';
+          $str .= '<b>'._('Users').'</b>:&nbsp;'.implode(', ', $valid_users).'<br/>';
         }
         if (!empty($valid_groups)) {
-          $str .= '<b>'._('Groups').'</b>:&nbsp;'.trim($valid_groups, ', ').'<br/>';
+          $str .= '<b>'._('Groups').'</b>:&nbsp;'.implode(', ', $valid_groups).'<br/>';
         }
         if (!empty($valid_roles)) {
-          $str .= '<b>'._('Roles').'</b>:&nbsp;'.trim($valid_roles, ', ').'<br/>';
+          $str .= '<b>'._('Roles').'</b>:&nbsp;'.implode(', ', $valid_roles).'<br/>';
         }
         return $str;
       } else {
         throw new CheckFailedException(
           _('Failed'),
-          _('There is no FusionDirectory administrator account inside your LDAP.').'&nbsp;'.
+          _('There is no FusionDirectory administrator account in your LDAP directory.').'&nbsp;'.
           $checkobj->submit(_('Create'), 'create')
         );
       }
     }
-
-    // Reload base OC
-    $this->checks['baseOC']->run();
-    return '';
   }
 
   function check_adminAccount_create (&$checkobj)
@@ -848,8 +872,9 @@ class setupStepMigrate extends setupStep
 
   function check_adminAccount_migrate_confirm (&$checkobj)
   {
-    global $config;
-    session::set('CurrentMainBase', $config->current['BASE']);
+    global $config, $ui;
+
+    $ui->setCurrentBase($config->current['BASE']);
 
     /* Creating role */
     $ldap = $config->get_ldap_link();
@@ -871,12 +896,19 @@ class setupStepMigrate extends setupStep
     }
 
     /* Creating user */
-    $tabObject = objects::create('user');
-    $_POST['givenName']                   = 'System';
-    $_POST['sn']                          = 'Administrator';
-    $_POST[$tabObject->current.'_posted'] = TRUE;
-    $_POST['dialog_refresh']              = TRUE;
-    $tabObject->save_object();
+    $tabObject  = objects::create('user');
+    $baseObject = $tabObject->getBaseObject();
+    $baseObject->givenName    = 'System';
+    $baseObject->sn           = 'Administrator';
+    $baseObject->uid          = $_POST['uid'];
+    $baseObject->userPassword = [
+      '',
+      $_POST['userPassword_password'],
+      $_POST['userPassword_password2'],
+      '',
+      FALSE
+    ];
+    $tabObject->update();
     $errors = $tabObject->save();
     if (!empty($errors)) {
       msg_dialog::displayChecks($errors);
@@ -964,18 +996,21 @@ class setupStepMigrate extends setupStep
       $ldap->cat($dn);
       if ($ldap->count() == 0) {
         $ldap->cd($config->current['BASE']);
-        $ldap->create_missing_trees(get_ou('aclRoleRDN').$config->current['BASE']);
+        try {
+          $ldap->create_missing_trees(get_ou('aclRoleRDN').$config->current['BASE']);
+        } catch (FusionDirectoryError $error) {
+          $error->display();
+        }
         $ldap->cd($dn);
         $ldap->add($role);
         if (!$ldap->success()) {
-          msg_dialog::display(
-            _('Migration error'),
-            sprintf(
-              _('Cannot add ACL role "%s":').'<br/><br/><i>%s</i>',
-              $dn, $ldap->get_error()
-            ),
-            ERROR_DIALOG
+          $error = new FusionDirectoryError(
+            nl2br(sprintf(
+              htmlescape(_("Cannot add ACL role \"%s\":\n\n%s")),
+              htmlescape($dn), '<i>'.htmlescape($ldap->get_error()).'</i>'
+            ))
           );
+          $error->display();
           return FALSE;
         }
       }
@@ -986,6 +1021,24 @@ class setupStepMigrate extends setupStep
 
   /* Search for users outside the people ou */
   function check_outsideUsers (&$checkobj)
+  {
+    list($sizeLimitHit,$count) = $this->check_outsideObjects_generic($checkobj, '(&(objectClass=inetOrgPerson)(!(uid=*$)))', 'userRDN');
+
+    if ($count > 0) {
+      if ($sizeLimitHit) {
+        $message = sprintf(_('Found more than %d user(s) outside the configured tree "%s".'), static::$objectNumberLimit, trim(get_ou('userRDN')));
+      } else {
+        $message = sprintf(_('Found %d user(s) outside the configured tree "%s".'), $count, trim(get_ou('userRDN')));
+      }
+      throw new CheckFailedException(
+        "<div style='color:#F0A500'>"._("Warning")."</div>",
+        $message.
+        $checkobj->submit()
+      );
+    }
+  }
+
+  function check_outsideObjects_generic (&$checkobj, $filter, $ou)
   {
     global $config;
     $ldap = $config->get_ldap_link();
@@ -993,45 +1046,76 @@ class setupStepMigrate extends setupStep
     $ldap->cd($config->current['BASE']);
 
     /***********
-     * Search for all users
+     * Check if objects are within a valid department. (peopleou,gosaDepartment,base)
      ***********/
-    $res = $ldap->search('(&(objectClass=inetOrgPerson)(!(uid=*$)))', ['dn']);
-    if (!$res) {
-      throw new CheckFailedException(
-        _('LDAP query failed'),
-        _('Possibly the "root object" is missing.')
+    $sizeLimitHit = FALSE;
+    $var          = $checkobj->name.'_toMigrate';
+    $this->$var   = [];
+    $objects_ou   = trim(get_ou($ou));
+    $cookie       = '';
+    $count        = 0;
+
+    do {
+      $res = $ldap->search($filter, ['dn','objectClass'], 'subtree',
+        [['oid' => LDAP_CONTROL_PAGEDRESULTS, 'value' => ['size' => 500, 'cookie' => $cookie]]]
       );
-    }
-
-    /***********
-     * Check if returned users are within a valid department. (peopleou,gosaDepartment,base)
-     ***********/
-    $this->outsideUsers_toMigrate = [];
-    $people_ou = trim(get_ou('userRDN'));
+      if (!$res) {
+        throw new CheckFailedException(
+          _('LDAP query failed'),
+          _('Possibly the "root object" is missing.')
+        );
+      }
+      try {
+        list($errcode, $matcheddn, $errmsg, $referrals, $controls) = $ldap->parse_result();
+      } catch (FusionDirectoryException $e) {
+        throw new CheckFailedException(
+          _('LDAP result parsing failed'),
+          $e->getMessage()
+        );
+      }
+      if ($errcode !== 0) {
+        throw new CheckFailedException(
+          _('LDAP error'),
+          $errcode.' - '.ldap_err2str($errcode).(!empty($errmsg) ? ' ('.$errmsg.')' : '')
+        );
+      }
+      if (isset($controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'])) {
+        // You need to pass the cookie from the last call to the next one
+        $cookie = $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'];
+      } else {
+        $cookie = '';
+      }
 
-    while ($attrs = $ldap->fetch()) {
-      $people_db_base = preg_replace('/^[^,]+,'.preg_quote($people_ou, '/').'/i', '', $attrs['dn']);
+      while ($attrs = $ldap->fetch(TRUE)) {
+        $object_base  = preg_replace('/^[^,]+,'.preg_quote($objects_ou, '/').'/i', '', $attrs['dn'], 1, $pregCount);
+        $base         = preg_replace('/^[^,]+,/', '', $attrs['dn']);
+
+        /* Check if entry is in a valid department */
+        if (($pregCount === 0) || !in_array($object_base, $config->getDepartmentList())) {
+          /* Build groupid depending on base and objectClasses */
+          $groupid = md5($base.implode('', $attrs['objectClass']));
+
+          if (!isset($this->{$var}[$groupid])) {
+            $this->{$var}[$groupid] = [
+              'checked' => FALSE,
+              'objects' => [],
+              'base'    => $base,
+              'classes' => $attrs['objectClass'],
+            ];
+          }
 
-      /* Check if entry is not an addressbook only user
-       *  and verify that he is in a valid department
-       */
-      if (!preg_match('/dc=addressbook,/', $people_db_base) &&
-          !in_array($people_db_base, $config->departments)) {
-        $attrs['checked'] = FALSE;
-        $attrs['ldif']    = '';
-        $this->outsideUsers_toMigrate[base64_encode($attrs['dn'])] = $attrs;
+          $attrs['ldif'] = '';
+          $this->{$var}[$groupid]['objects'][base64_encode($attrs['dn'])] = $attrs;
+          if (++$count >= static::$objectNumberLimit) {
+            $sizeLimitHit = TRUE;
+            break 2;
+          }
+        }
       }
-    }
+      // Empty cookie means last page
+    } while (!empty($cookie));
 
-    if (count($this->outsideUsers_toMigrate)) {
-      throw new CheckFailedException(
-        "<div style='color:#F0A500'>"._("Warning")."</div>",
-        sprintf(_('Found %s user(s) outside the configured tree "%s".'), count($this->outsideUsers_toMigrate), $people_ou).
-        $checkobj->submit()
-      );
-    } else {
-      return '';
-    }
+    return [$sizeLimitHit, $count];
   }
 
   function check_outsideUsers_migrate (&$checkobj)
@@ -1042,7 +1126,7 @@ class setupStepMigrate extends setupStep
       [
         'title'       => _('Move users into configured user tree'),
         'outside'     => TRUE,
-        'ous'         => $config->departments,
+        'ous'         => $config->getDepartmentList(),
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
       ]
     );
@@ -1056,7 +1140,7 @@ class setupStepMigrate extends setupStep
       [
         'title'       => _('Move users into configured user tree'),
         'outside'     => TRUE,
-        'ous'         => $config->departments,
+        'ous'         => $config->getDepartmentList(),
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
       ]
     );
@@ -1072,33 +1156,37 @@ class setupStepMigrate extends setupStep
     if (isset($_POST['destination'])) {
       $destination_dep = get_ou($ou).$_POST['destination'];
     } else {
-      msg_dialog::display(_('LDAP error'), _('Cannot move entries to the requested department!'), ERROR_DIALOG);
+      $error = new FusionDirectoryError(htmlescape(_('Cannot move entries to the requested department!')));
+      $error->display();
       return FALSE;
     }
 
     $var = $checkobj->name.'_toMigrate';
     foreach ($this->$var as $b_dn => &$entry) {
       $entry['checked'] = isset($_POST['migrate_'.$b_dn]);
-      $entry['ldif']    = '';
       if ($entry['checked']) {
-        $dn = base64_decode($b_dn);
-        $d_dn = preg_replace('/,.*$/', ','.$destination_dep, $dn);
-        if ($only_ldif) {
-          $entry['ldif'] = _('Entry will be moved from').":<br/>\t".($ldap->fix($dn)).'<br/>'._('to').":<br/>\t".($ldap->fix($d_dn));
-
-          /* Check if there are references to this object */
-          $ldap->search('(&(member='.ldap_escape_f($dn).')(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))', ['dn']);
-          $refs = '';
-          while ($attrs = $ldap->fetch()) {
-            $ref_dn = $attrs['dn'];
-            $refs .= "<br/>\t".$ref_dn;
-          }
-          if (!empty($refs)) {
-            $entry['ldif'] .= '<br/><br/><i>'._('The following references will be updated').':</i>'.$refs;
+        foreach ($entry['objects'] as &$object) {
+          $dn   = $object['dn'];
+          $d_dn = preg_replace('/,.*$/', ','.$destination_dep, $dn);
+          if ($only_ldif) {
+            $object['ldif'] = nl2br(htmlescape(sprintf(_("Entry will be moved from:\n\t%s\nto:\n\t%s"), $dn, $d_dn)));
+
+            /* Check if there are references to this object */
+            $ldap->search('(&(member='.ldap_escape_f($dn).')(|(objectClass=gosaGroupOfNames)(objectClass=groupOfNames)))', ['dn']);
+            $refs = '';
+            while ($attrs = $ldap->fetch()) {
+              $ref_dn = $attrs['dn'];
+              $refs .= "<br/>\t".$ref_dn;
+            }
+            if (!empty($refs)) {
+              $entry['ldif'] .= '<br/><br/><i>'._('The following references will be updated').':</i>'.$refs;
+            }
+          } else {
+            $object['ldif']    = '';
+            $this->move($dn, $d_dn);
           }
-        } else {
-          $this->move($dn, $d_dn);
         }
+        unset($object);
       }
     }
     unset($entry);
@@ -1107,81 +1195,105 @@ class setupStepMigrate extends setupStep
   }
 
   /* Search for groups outside the group ou */
-  function check_outsideGroups (&$checkobj)
+  function check_outsideOGroups (&$checkobj)
   {
-    global $config;
-    $ldap = $config->get_ldap_link();
-
-    $group_ou = get_ou('groupRDN');
-    $ldap->cd($config->current['BASE']);
+    list($sizeLimitHit,$count) = $this->check_outsideObjects_generic($checkobj, '(objectClass=groupOfNames)', 'ogroupRDN');
 
-    /***********
-     * Get all groups
-     ***********/
-    $res = $ldap->search('(objectClass=posixGroup)', ['dn']);
-    if (!$res) {
+    if ($count > 0) {
+      if ($sizeLimitHit) {
+        $message = sprintf(_('Found more than %d groups outside the configured tree "%s".'), static::$objectNumberLimit, trim(get_ou('ogroupRDN')));
+      } else {
+        $message = sprintf(_('Found %d groups outside the configured tree "%s".'), $count, trim(get_ou('ogroupRDN')));
+      }
       throw new CheckFailedException(
-        _('LDAP query failed'),
-        _('Possibly the "root object" is missing.')
+        '<div style="color:#F0A500">'._('Warning').'</div>',
+        $message.
+        $checkobj->submit()
       );
     }
+  }
 
-    $this->outsideGroups_toMigrate = [];
-    while ($attrs = $ldap->fetch()) {
-      $group_db_base = preg_replace('/^[^,]+,'.preg_quote($group_ou, '/').'/i', '', $attrs['dn']);
+  function check_outsideOGroups_migrate (&$checkobj)
+  {
+    global $config;
+    $this->check_multipleGeneric_migrate(
+      $checkobj,
+      [
+        'title'       => _('Move groups into configured groups tree'),
+        'outside'     => TRUE,
+        'ous'         => $config->getDepartmentList(),
+        'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
+      ]
+    );
+  }
 
-      /* Check if entry is not an addressbook only user
-       *  and verify that he is in a valid department
-       */
-      if ( !preg_match('/'.preg_quote('dc=addressbook,', '/').'/', $group_db_base) &&
-          !in_array($group_db_base, $config->departments)
-        ) {
-        $attrs['checked'] = FALSE;
-        $attrs['ldif']    = '';
-        $this->outsideGroups_toMigrate[base64_encode($attrs['dn'])] = $attrs;
-      }
-    }
+  function check_outsideOGroups_migrate_refresh (&$checkobj)
+  {
+    global $config;
+    return $this->check_multipleGeneric_migrate_refresh(
+      $checkobj,
+      [
+        'title'       => _('Move groups into configured groups tree'),
+        'outside'     => TRUE,
+        'ous'         => $config->getDepartmentList(),
+        'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
+      ]
+    );
+  }
+
+  function check_outsideOGroups_migrate_confirm (&$checkobj, $only_ldif = FALSE)
+  {
+    return $this->check_outsideUsers_migrate_confirm($checkobj, $only_ldif, 'ogroupRDN');
+  }
+
+  /* Search for POSIX groups outside the group ou */
+  function check_outsidePosixGroups (&$checkobj)
+  {
+    list($sizeLimitHit,$count) = $this->check_outsideObjects_generic($checkobj, '(objectClass=posixGroup)', 'groupRDN');
 
-    if (count($this->outsideGroups_toMigrate)) {
+    if ($count > 0) {
+      if ($sizeLimitHit) {
+        $message = sprintf(_('Found more than %d POSIX groups outside the configured tree "%s".'), static::$objectNumberLimit, trim(get_ou('groupRDN')));
+      } else {
+        $message = sprintf(_('Found %d POSIX groups outside the configured tree "%s".'), $count, trim(get_ou('groupRDN')));
+      }
       throw new CheckFailedException(
-        "<div style='color:#F0A500'>"._("Warning")."</div>",
-        sprintf(_("Found %s groups outside the configured tree '%s'."), count($this->outsideGroups_toMigrate), $group_ou).
-        '&nbsp;'.$checkobj->submit()
+        '<div style="color:#F0A500">'._('Warning').'</div>',
+        $message.
+        $checkobj->submit()
       );
-    } else {
-      return '';
     }
   }
 
-  function check_outsideGroups_migrate (&$checkobj)
+  function check_outsidePosixGroups_migrate (&$checkobj)
   {
     global $config;
     $this->check_multipleGeneric_migrate(
       $checkobj,
       [
-        'title'       => _('Move groups into configured groups tree'),
+        'title'       => _('Move POSIX groups into configured groups tree'),
         'outside'     => TRUE,
-        'ous'         => $config->departments,
+        'ous'         => $config->getDepartmentList(),
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
       ]
     );
   }
 
-  function check_outsideGroups_migrate_refresh (&$checkobj)
+  function check_outsidePosixGroups_migrate_refresh (&$checkobj)
   {
     global $config;
     return $this->check_multipleGeneric_migrate_refresh(
       $checkobj,
       [
-        'title'       => _('Move groups into configured groups tree'),
+        'title'       => _('Move POSIX groups into configured groups tree'),
         'outside'     => TRUE,
-        'ous'         => $config->departments,
+        'ous'         => $config->getDepartmentList(),
         'destination' => (isset($_POST['destination']) ? $_POST['destination'] : ''),
       ]
     );
   }
 
-  function check_outsideGroups_migrate_confirm (&$checkobj, $only_ldif = FALSE)
+  function check_outsidePosixGroups_migrate_confirm (&$checkobj, $only_ldif = FALSE)
   {
     return $this->check_outsideUsers_migrate_confirm($checkobj, $only_ldif, 'groupRDN');
   }
@@ -1191,6 +1303,7 @@ class setupStepMigrate extends setupStep
   {
     global $config;
     $ldap = $config->get_ldap_link();
+    $ldap->set_size_limit(static::$objectNumberLimit);
 
     $old                      = $this->orgUnits_toMigrate;
     $this->orgUnits_toMigrate = [];
@@ -1198,8 +1311,7 @@ class setupStepMigrate extends setupStep
     /* Skip FusionDirectory internal departments */
     $skip_dns = [
       '/ou=fusiondirectory,'.preg_quote($config->current['BASE']).'$/',
-      '/dc=addressbook,/',
-      '/ou=systems,'.preg_quote($config->current['BASE']).'$/',
+      '/^ou=systems,/',
       '/ou=snapshots,/'
     ];
     foreach (objects::types() as $type) {
@@ -1218,7 +1330,22 @@ class setupStepMigrate extends setupStep
         _('Possibly the "root object" is missing.')
       );
     }
-    while ($attrs = $ldap->fetch()) {
+    if ($ldap->hitSizeLimit()) {
+      throw new CheckFailedException(
+        _('Size limit hit'),
+        sprintf(_('Size limit of %d hit. Please check this manually'), static::$objectNumberLimit)
+      );
+    }
+    $sizeLimitHit = FALSE;
+
+    while ($attrs = $ldap->fetch(TRUE)) {
+      foreach ($skip_dns as $skip_dn) {
+        /* Filter out FusionDirectory internal departments */
+        if (preg_match($skip_dn, $attrs['dn'])) {
+          continue 2;
+        }
+      }
+
       $attrs['checked'] = FALSE;
       $attrs['before']  = '';
       $attrs['after']   = '';
@@ -1228,23 +1355,9 @@ class setupStepMigrate extends setupStep
         $attrs['checked'] = $old[base64_encode($attrs['dn'])]['checked'];
       }
       $this->orgUnits_toMigrate[base64_encode($attrs['dn'])] = $attrs;
-    }
-
-    /* Filter returned list of departments and ensure that
-     *  FusionDirectory internal departments will not be listed
-     */
-    foreach ($this->orgUnits_toMigrate as $key => $attrs) {
-      $dn   = $attrs['dn'];
-      $skip = FALSE;
-
-      foreach ($skip_dns as $skip_dn) {
-        if (preg_match($skip_dn, $dn)) {
-          $skip = TRUE;
-          break;
-        }
-      }
-      if ($skip) {
-        unset($this->orgUnits_toMigrate[$key]);
+      if (count($this->orgUnits_toMigrate) >= static::$objectNumberLimit) {
+        $sizeLimitHit = TRUE;
+        break;
       }
     }
 
@@ -1254,10 +1367,15 @@ class setupStepMigrate extends setupStep
     if (count($this->orgUnits_toMigrate) == 0) {
       return '';
     } else {
+      if ($sizeLimitHit) {
+        $message = sprintf(_('Found more than %d department(s) that will not be visible in FusionDirectory.'), static::$objectNumberLimit);
+      } else {
+        $message = sprintf(_('Found %d department(s) that will not be visible in FusionDirectory.'), count($this->orgUnits_toMigrate));
+      }
       throw new CheckFailedException(
-        '<font style="color:#FFA500">'._("Warning").'</font>',
-        sprintf(_('Found %s department(s) that will not be visible in FusionDirectory.'), count($this->orgUnits_toMigrate)).
-        '&nbsp;'.$checkobj->submit()
+        '<font style="color:#FFA500">'._('Warning').'</font>',
+        $message.
+        $checkobj->submit()
       );
     }
   }
@@ -1284,7 +1402,7 @@ class setupStepMigrate extends setupStep
     );
   }
 
-  function check_orgUnits_migrate_confirm (&$checkobj, $only_ldif)
+  function check_orgUnits_migrate_confirm (&$checkobj, $only_ldif = FALSE)
   {
     return $this->check_multipleGeneric_migrate_confirm(
       $checkobj,
@@ -1297,55 +1415,26 @@ class setupStepMigrate extends setupStep
   /* Check if there are uidNumbers which are used more than once */
   function check_uidNumber (&$checkobj)
   {
-    global $config;
-    $ldap = $config->get_ldap_link();
-
-    $ldap->cd($config->current['BASE']);
-    $res = $ldap->search("(&(objectClass=posixAccount)(uidNumber=*))", ["dn","uidNumber"]);
-    if (!$res) {
-      throw new CheckFailedException(
-        _('LDAP query failed'),
-        _('Possibly the "root object" is missing.')
-      );
-    }
-
-    $this->check_uidNumbers = [];
-    $tmp = [];
-    while ($attrs = $ldap->fetch()) {
-      $tmp[$attrs['uidNumber'][0]][] = $attrs;
-    }
-
-    foreach ($tmp as $entries) {
-      if (count($entries) > 1) {
-        foreach ($entries as $entry) {
-          $this->check_uidNumbers[$entry['dn']] = $entry;
-        }
-      }
-    }
-
-    if ($this->check_uidNumbers) {
-      $list = '<ul>';
-      foreach ($this->check_uidNumbers as $dn => $entry) {
-        $list .= '<li>'.$dn.' ('.$entry['uidNumber'][0].')</li>';
-      }
-      $list .= '</ul>';
-      throw new CheckFailedException(
-        "<div style='color:#F0A500'>"._("Warning")."</div>",
-        sprintf(_('Found %s duplicate values for attribute "uidNumber":%s'), count($this->check_uidNumbers), $list)
-      );
-    } else {
-      return '';
-    }
+    $this->check_duplicatesGeneric($checkobj, 'posixAccount');
   }
 
   /* Check if there are duplicated gidNumbers present in ldap */
   function check_gidNumber (&$checkobj)
+  {
+    $this->check_duplicatesGeneric($checkobj, 'posixGroup');
+  }
+
+  /* Generic function to check duplicated values */
+  function check_duplicatesGeneric (&$checkobj, $oc)
   {
     global $config;
     $ldap = $config->get_ldap_link();
 
+    $attribute  = $checkobj->name;
+    $duplicates = 'check_'.$checkobj->name;
+
     $ldap->cd($config->current['BASE']);
-    $res = $ldap->search("(&(objectClass=posixGroup)(gidNumber=*))", ["dn","gidNumber"]);
+    $res = $ldap->search('(&(objectClass='.$oc.')('.$attribute.'=*))', ['dn',$attribute]);
     if (!$res) {
       throw new CheckFailedException(
         _('LDAP query failed'),
@@ -1353,33 +1442,32 @@ class setupStepMigrate extends setupStep
       );
     }
 
-    $this->check_gidNumbers = [];
+    $this->$duplicates = [];
     $tmp = [];
     while ($attrs = $ldap->fetch()) {
-      $tmp[$attrs['gidNumber'][0]][] = $attrs;
+      $tmp[$attrs[$attribute][0]][] = $attrs['dn'];
     }
 
-    foreach ($tmp as $entries) {
-      if (count($entries) > 1) {
-        foreach ($entries as $entry) {
-          $this->check_gidNumbers[$entry['dn']] = $entry;
+    foreach ($tmp as $value => $dns) {
+      if (count($dns) > 1) {
+        foreach ($dns as $dn) {
+          $this->{$duplicates}[$dn] = $value;
         }
       }
     }
 
-    if ($this->check_gidNumbers) {
+    if (count($this->$duplicates) == 0) {
+      return '';
+    } else {
       $list = '<ul>';
-      foreach ($this->check_gidNumbers as $dn => $entry) {
-        $list .= '<li>'.$dn.' ('.$entry['gidNumber'][0].')</li>';
+      foreach ($this->$duplicates as $dn => $value) {
+        $list .= '<li>'.$dn.' ('.$value.')</li>';
       }
       $list .= '</ul>';
       throw new CheckFailedException(
-        "<div style='color:#F0A500'>"._("Warning")."</div>",
-        sprintf(_('Found %s duplicate values for attribute "gidNumber":%s'), count($this->check_gidNumbers), $list)
+        '<div style="color:#F0A500">'._('Warning').'</div>',
+        sprintf(_('Found %d duplicate values for attribute "'.$attribute.'":%s'), count($this->$duplicates), $list)
       );
-    } else {
-      return '';
     }
   }
 }
-?>
diff --git a/setup/class_setupStepWelcome.inc b/setup/class_setupStepWelcome.inc
index d73e23a4652382a428a50dc348e6ff1e91bcaed3..09b6b89a91edf37a28d4500e446b051a36268cdd 100644
--- a/setup/class_setupStepWelcome.inc
+++ b/setup/class_setupStepWelcome.inc
@@ -2,7 +2,7 @@
 /*
   This code is part of FusionDirectory (http://www.fusiondirectory.org/)
   Copyright (C) 2007  Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
+  Copyright (C) 2011-2016  FusionDirectory
 
   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
@@ -23,7 +23,7 @@ class setupStepWelcome extends setupStep
 {
   var $header_image = 'geticon.php?context=applications&icon=config-welcome&size=48';
 
-  static function getAttributesInfo ()
+  static function getAttributesInfo (): array
   {
     return [
       'welcome' => [
@@ -52,19 +52,11 @@ class setupStepWelcome extends setupStep
     $this->s_description  = _('The welcome message');
   }
 
-  function execute ()
+  public function update (): bool
   {
-    $smarty = get_smarty();
-    $smarty->assign('auth_id', session_id());
-
-    $smarty->assign('path', $this->authPath);
-    return parent::execute();
-  }
+    parent::update();
 
-  function save_object ()
-  {
-    parent::save_object();
-    $id = "";
+    $id = '';
 
     /* Get auth ID from file */
     if (file_exists($this->authPath) && is_readable($this->authPath)) {
@@ -78,7 +70,16 @@ class setupStepWelcome extends setupStep
     } else {
       $this->is_completed = FALSE;
     }
+
+    return TRUE;
   }
-}
 
-?>
+  public function render (): string
+  {
+    $smarty = get_smarty();
+    $smarty->assign('auth_id', session_id());
+
+    $smarty->assign('path', $this->authPath);
+    return parent::render();
+  }
+}
diff --git a/setup/main.inc b/setup/main.inc
deleted file mode 100644
index 46c11e770a974c1f46f784a0effefb1eea3510de..0000000000000000000000000000000000000000
--- a/setup/main.inc
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/*
-  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
-  Copyright (C) 2007  Fabian Hickert
-  Copyright (C) 2011-2018  FusionDirectory
-
-  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-/* Create a new setup class if necessary  */
-if (!session::is_set('setup') || (isset($_GET['reset']) && $_GET['reset'] == 1)) {
-  session::set('setup', new setup());
-}
-$setup = session::get('setup');
-
-/* Execute formular */
-$setup->save_object();
-$display = $setup->execute();
-
-/* Store changes  in session */
-session::set('setup', $setup);
-
-?>
diff --git a/setup/setup_checks.tpl b/setup/setup_checks.tpl
index d9d208fbc0298b296194aeaa48119b6de83ed678..a0c2070ec8859a5315601fafecd006c37105ce06 100644
--- a/setup/setup_checks.tpl
+++ b/setup/setup_checks.tpl
@@ -1,6 +1,6 @@
 <div id="{$sectionId}" class="plugin-section">
   <span class="legend">
-    {$section}
+    {if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
     -
     <a href="?info" target="_blank">{t}show information{/t}</a>
   </span>
diff --git a/setup/setup_finish.tpl b/setup/setup_finish.tpl
index cd1c04c91d2204b7972d2847af3500c4c3be49c6..eaaa753c50cef85b488cc94b04bd4379b876f1bd 100644
--- a/setup/setup_finish.tpl
+++ b/setup/setup_finish.tpl
@@ -6,7 +6,7 @@
     {$msg2}
   </p>
   <p>
-    {t escape=no 1="<strong>fusiondirectory-setup --check-config</strong>"}Run %1 to put the correct right on fusiondirectory.conf{/t}
+    {t escape=no 1="<strong>fusiondirectory-configuration-manager --check-config</strong>"}Run %1 to put the correct right on fusiondirectory.conf{/t}
   </p>
   <p>
     <input type="submit" name="getconf" value="{t}Download configuration{/t}"/>
diff --git a/setup/setup_frame.tpl b/setup/setup_frame.tpl
index a2245442857a1412014e1a5a49e7168314d38b0a..6016c45be7be54fff61e262b67ec4906aea2b85c 100644
--- a/setup/setup_frame.tpl
+++ b/setup/setup_frame.tpl
@@ -6,7 +6,7 @@
       <div id="header-left">
         <img id="fd-logo" class="optional" src="geticon.php?context=applications&amp;icon=fusiondirectory&amp;size=48" alt="FusionDirectory logo"/>
         <a class="plugtop">
-          <img src="{$headline_image|escape}" alt=""/>{t}{$headline}{/t}
+          <img src="{$headline_image|escape}" alt=""/>{$headline|escape}
         </a>
       </div>
       <div id="header-right">
@@ -36,7 +36,6 @@
       </tbody>
     </table>
 
-    {$errors}
     {$focus}
     <input type="hidden" name="setup_goto_step" value=""/>
     <input type="hidden" name="CSRFtoken" value="{$CSRFtoken}"/>
diff --git a/setup/setup_migrate.tpl b/setup/setup_migrate.tpl
index 346595123a707c7d598b5513d5283c4f38eb940f..a165e2e906820bca8ba1154083b5027ebe35cc87 100644
--- a/setup/setup_migrate.tpl
+++ b/setup/setup_migrate.tpl
@@ -1,6 +1,6 @@
 <div id="{$sectionId}" class="plugin-section{$sectionClasses}">
   <span class="legend">
-    {$section}
+    {if !empty($sectionIcon)}<img src="{$sectionIcon|escape}" alt=""/>{/if}{$section|escape}
   </span>
   <div>
     {foreach from=$attributes item=checks}
diff --git a/setup/setup_migrate_accounts.tpl b/setup/setup_migrate_accounts.tpl
index a2ebcdd4795042ad22aa069b060976d440c9fcfa..8b74b8e544104df86307e9c5b4754bea4dc571d1 100644
--- a/setup/setup_migrate_accounts.tpl
+++ b/setup/setup_migrate_accounts.tpl
@@ -21,10 +21,45 @@
     {/if}
 
     {foreach from=$infos.entries item=entry key=key}
-      {if $entry.checked}
+      {if isset($entry.objects)}
+        <input type="checkbox" name="migrate_{$key}" id="migrate_{$key}"
+          {if $entry.checked}checked="checked"{/if} />
+        <label for="migrate_{$key}">{$entry.base}</label>
+        <ul>
+          {foreach from=$entry.objects item=object}
+            <li>{$object.dn}</li>
+            {if $entry.checked}
+              {if !empty($object.after)}
+                <div class="step2-entry-container-info">
+                  {t}Current{/t}
+                  <div style="padding-left:20px;">
+<pre>
+dn: {$object.dn}
+{$object.before}
+</pre>
+                  </div>
+                  {t}After migration{/t}
+                  <div style="padding-left:20px;">
+<pre>
+dn: {$object.dn}
+{$object.after}
+</pre>
+                  </div>
+                </div>
+              {elseif !empty($object.ldif)}
+                <div class="step2-entry-container-info">
+                  <div style="padding-left:20px;">
+                    <pre>{$object.ldif}</pre>
+                  </div>
+                </div>
+              {/if}
+            {/if}
+          {/foreach}
+        </ul>
+      {elseif $entry.checked}
         <input type="checkbox" name="migrate_{$key}" checked="checked" id="migrate_{$key}"/>
         <label for="migrate_{$key}">{$entry.dn}</label>
-        {if $entry.after != ""}
+        {if !empty($entry.after)}
           <div class="step2-entry-container-info">
             {t}Current{/t}
             <div style="padding-left:20px;">
@@ -41,7 +76,7 @@ dn: {$entry.dn}
 </pre>
             </div>
           </div>
-        {elseif $entry.ldif != ""}
+        {elseif !empty($entry.ldif)}
           <div class="step2-entry-container-info">
             <div style="padding-left:20px;">
               <pre>{$entry.ldif}</pre>
@@ -65,7 +100,7 @@ dn: {$entry.dn}
     <div style="width:99%; text-align:right; padding-top:5px;">
       <input type="submit" name="dialog_confirm" value="{t}Apply{/t}"/>
       &nbsp;
-      <input type="submit" name="dialog_cancel" value="{t}Cancel{/t}"/>
+      <input type="submit" formnovalidate="formnovalidate" name="dialog_cancel" value="{t}Cancel{/t}"/>
     </div>
   </div>
 </div>
diff --git a/setup/setup_migrate_adminAccount.tpl b/setup/setup_migrate_adminAccount.tpl
index ae5ca8bbc5e9b05c22e6d7cc290f11359098d245..8cdf83296760d2d82e4b832c19a9016da38756e2 100644
--- a/setup/setup_migrate_adminAccount.tpl
+++ b/setup/setup_migrate_adminAccount.tpl
@@ -42,7 +42,7 @@
     </table>
 
     <!-- Place cursor -->
-    <script type="text/javascript">
+    <script>
       <!-- // First input field on page
       focus_field('new_user_password');
       -->
@@ -51,7 +51,7 @@
     <hr/>
     <div style='width:99%; text-align:right; padding:5px;'>
       <input type='submit' name='dialog_confirm' value='{t}Apply{/t}'/>
-      <input type='submit' name='dialog_cancel' value='{t}Cancel{/t}'/>
+      <input type='submit' formnovalidate="formnovalidate" name='dialog_cancel' value='{t}Cancel{/t}'/>
     </div>
   </div>
 </div>
diff --git a/setup/setup_migrate_baseOC.tpl b/setup/setup_migrate_baseOC.tpl
index 4a85846dff236694f76c63d6a5d104d290a971fc..bec45cc2f90c31c2a097eaaafddead5e1124adf9 100644
--- a/setup/setup_migrate_baseOC.tpl
+++ b/setup/setup_migrate_baseOC.tpl
@@ -22,7 +22,7 @@
 
     <hr/>
     <div style='width:100%; text-align:right; padding:5px;'>
-      <input type='submit' name='dialog_cancel' value='{t}Close{/t}'>
+      <input type='submit' formnovalidate="formnovalidate" name='dialog_cancel' value='{t}Close{/t}'>
     </div>
   </div>
 </div>
diff --git a/setup/setup_welcome.tpl b/setup/setup_welcome.tpl
index 11492f6ecd7ba76c1a66527a9a6af2d2eb6c271b..43fa901202f88d37070305a4a468253da8bc813c 100644
--- a/setup/setup_welcome.tpl
+++ b/setup/setup_welcome.tpl
@@ -1,6 +1,6 @@
 <div class="default">
   <p>
-    {t}This seems to be the first time you start FusionDirectory - we didn't find any configuration right now. This simple wizard intends to help you while setting it up.{/t}
+    {t}This seems to be the first time you start FusionDirectory - we cannot find any configuration right now. This simple wizard intends to help you while setting it up.{/t}
   </p>
 
   <hr/>
@@ -26,12 +26,12 @@
     <b>{t}To continue:{/t}</b>
   </p>
   <p>
-    {t 1=$path}For security reasons you need to authenticate for the installation by creating the file '%1', containing the current session ID on the servers local filesystem. This can be done by executing the following command:{/t}
+    {t 1=$path}For security reasons you need to authenticate for the installation by creating the file '%1', containing the current session ID on the server's local filesystem. This can be done by executing the following command:{/t}
   </p>
   <tt>
     echo -n <b>{$auth_id}</b> &gt; {$path}
   </tt>
   <p>
-    {t}Click the 'Next' button when you've finished.{/t}
+    {t}Click the 'Next' button when you are done.{/t}
   </p>
 </div>